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.
- Parse and disassemble EVM bytecode 🔍
- Obfuscate EVM bytecode 🦹♂️
To install EVeilM, follow these steps:
- Clone the repository:
git clone https://github.com/tit0uanf/eveilm.git
- Navigate to the project directory:
cd eveilm
- Install the required dependencies:
pip install -r requirements.txt
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
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
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
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.