Skip to content

kgretzky/python-x86-obfuscator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

X86 Shellcode Obfuscator

This is a WIP tool that performs shellcode obfuscation in x86 instruction set. If you want to learn more, check out my blog where I explain how it works:

X86 Shellcode Obfuscation - Part 1

X86 Shellcode Obfuscation - Part 2

X86 Shellcode Obfuscation - Part 3

Requirements

Tool requires distorm3 library, which you can easily install with pip:

pip install distorm3 

Usage

usage: x86obf.py [-h] -i INPUT -o OUTPUT [-r RANGE] [-p PASSES] [-f MIXFLOW] optional arguments: -h, --help show this help message and exit -i INPUT, --input INPUT Input binary shellcode file -o OUTPUT, --output OUTPUT Output obfuscated binary shellcode file -r RANGE, --range RANGE Ranges where code instructions reside (e.g. 0-184,188-204) -p PASSES, --passes PASSES How many passes should the obfuscation process go through (def. 1) -f MIXFLOW, --mixflow MIXFLOW Specify level of execution flow mixing (0-10) (def. 5) 

Example 1:

python x86obf.py -i shellcode\test1.bin -o output.bin 

Example 2:

python x86obf.py -i shellcode\exec_calc.bin -o output.bin -r 0-184 python x86obf.py -i shellcode\exec_calc.bin -o output.bin -r 0-184 -p 4 python x86obf.py -i shellcode\exec_calc.bin -o output.bin -r 0-184 -p 2 -f 10 

Example 3:

python x86obf.py -i shellcode\msg_box.bin -o output.bin -r 0-196 

If you want to run and test any obfuscated or not obfuscated shellcode, you can use the attached run_shell.py script:

python run_shell.py -i shellcode\exec_calc.bin 

About

This is a **WIP** tool that performs shellcode obfuscation in x86 instruction set.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published