/EVeilM

Primary LanguagePython

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
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.

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

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.