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
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 will be saved in the resources/obfuscated/<obfuscation_type>
directory.
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
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.