Burp Suite extension for encoding/decoding EVM calldata
- Burp Suite
- Java 8+
- Python 2.7
- clone this repository
- in Burp, go to Extender->Options
- in the Java Environment section add
<install_dir>/unblocker/
as "Folder for loading library JAR files" - in the Python Environment section:
- add
<install_dir>/unblocker/jython-standalone-2.7.2.jar
as "Location of Jython standalone JAR file" - add
<install_dir>/unblocker/src/lib
as "Folder for loading modules"
- in the Java Environment section add
- in Burp, go to Extender->Extensions
- click "Add" in the Burp Extensions section and select
<install_dir>/unblocker/unblocker.py
as "Extension file (.jar)"--Burp will detect the filetype automatically - confirm the installation by approving all subsequent modal windows
- click "Add" in the Burp Extensions section and select
Unblocker features ABI-less EVM calldata decoding but you can also provide the ABI yourself if you know it. Encoding does require you to provide some ABI.
- ABI has to be provided like so:
transfer(address, uint256)
. - Input data (for decoding) can be provided with or without
0x
prepended. - Input data strings (for encoding) have to be provided like so:
"s'hello, world'"
- Input data bytes (for encoding) have to be provided like so:
"b'deadbeef'"
- Input data structs (for encoding) have to be provided with square brackets instead of parenthesis, like so:
["s'some string'", true, 123]