Skip to content
forked from tit0uanf/EVeilM

EVeilM helps you analyze and obfuscate EVM bytecode, enhancing the security of your contracts and protecting your intellectual property.

Notifications You must be signed in to change notification settings

quapsale/EVeilM

 
 

Repository files navigation

EVeilM 🦹‍♂️🔗

EVeilM is a PoC EVM Bytecode Obfuscator.

This tool helps you analyze and obfuscate EVM bytecode, enhancing the security of your contracts and protecting your intellectual property.

Table of Contents

  1. Features
  2. Installation
  3. Usage
  4. Obfuscation Techniques
  5. License

Features ⚡

  • Parse and disassemble EVM bytecode 🔍
  • Obfuscate EVM bytecode 🦹‍♂️

Installation ⚙️

To install EVeilM, follow these steps:

  1. Clone the repository:
git clone https://github.com/tit0uanf/eveilm.git
  1. Navigate to the project directory:
cd eveilm
  1. Install the required dependencies:
pip install -r requirements.txt

Usage 🛠️

To use the EVM Bytecode Obfuscator, follow these steps:

Choose an input method:

$ python eveilm.py
Choose input method:
❯ Paste Bytecode
  Select File

If you choose "Paste Bytecode", paste the bytecode and enter the contract name:

Please paste the bytecode (might get truncated): 6080604052...
What is the name of the contract ? MyContract

Important

Make sure that the bytecode input contains both Creation and Runtime Bytecode

If you choose "Select File", select the file containing the bytecode under /resources/original:

Choose a file to obfuscate:
  USDC.evm
❯ USDT.evm
  WETH.evm

Note

The obfuscated bytecode are saved in resources/obfuscated/MyContract.obf

Obfuscation Techniques 🎭

These techniques are PoC obfuscation methods.

ADD Opcode Stack Manipulation: Obfuscates ADD opcodes by introducing additional manipulations.

Function Signature Transformer: Transforms function signatures to hide their name from decompilers.

Control Flow Graph Spammer: Insert random fake control flow paths.

Jump Address Transformer: Obfuscate JUMP and JUMPI opcodes PC destination

Master Thesis Report 📝

EVeilM is the outcome of a master's thesis project conducted at KTH Royal Institute of Technology. The project aimed to explore and develop techniques for obfuscating Ethereum smart contract bytecode. Throughout the research, various obfuscation methods were studied, analyzed, and implemented to create a comprehensive tool. The report is available here : EVeilM: EVM Bytecode Obfuscation

Disclaimer ⚠️

The author of the EVeilM is not responsible for any vulnerabilities or issues that may be introduced in the obfuscated smart contract bytecode. Users are advised to thoroughly test and audit their contracts before deploying them on the EVM compatible network. The tool is provided as-is, without any warranties or guarantees.

About

EVeilM helps you analyze and obfuscate EVM bytecode, enhancing the security of your contracts and protecting your intellectual property.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%