ShellcodeEmulator 借助 windbg 进程内存转储来模拟 Windows shellcode。你可以提供任意 Windows 进程转储镜像随同 shellcode 一起分析。该工具将利用 shellcode 字节和提供的转储镜像,尽可能模拟用户态代码。
你可以在 shellcode 调用的 API 与内核层之间添加自定义系统调用处理程序或任何处理程序。这样可以提供用户栈的完整视图。它将使你能够调查绕过高层调用栈中宽松 API 钩子的 shellcode。
安装 WinDbg
安装 ShellcodeEmulator
pip install git+https://github.com/ohjeongwook/ShellcodeEmulator --upgrade
python -m pykdfix.fix_windbg_files
> python -m shellcode_emulator.run
Usage: run.py [options] args
Options:
-h, --help show this help message and exit
-b IMAGE_BASE, --image_base=IMAGE_BASE
Image base to load the shellcode inside process memory
-d DUMP_FILENAME, --dump_filename=DUMP_FILENAME
A process dump file from normal Windows process
-l LIST_FILENAME, --list_filename=LIST_FILENAME
A list filename generated by IDA (this can be used
instead of shellcode filename)
python -m shellcode_emulator.run wincalc.bin -d notepad.dmp