Python versions between 3.6.0 and 3.10 are supported, more to come!
Clone this repository and install requirements :
Linux
git clone https://github.com/Njord0/BNPYC ~/.binaryninja/plugins/BNPyc
Windows
git clone https://github.com/Njord0/BNPYC %APPDATA%/Binary Ninja/plugins/BNPyc
Darwin
git clone https://github.com/Njord0/BNPYC ~/Library/Application Support/Binary Ninja/plugins/BNPyc
Then install requirements with pip :
cd BNPyc/
python3 -m pip install -r requirements.txt
Choose any .pyc
file and open it with binary ninja.
Example with a simple pyc file, doing a for loop and a print using a f-string.
- Recursive functions detections and analysis
- Convert to nop / Never branch / Invert branch patches
- Branchs annotations
- co_consts / co_names / co_varnames annotations
- Comparisons annotations (COMPARE_OP)
- Objects mapping