
将PE转换为shellcode
将PE转换为可以像普通Shellcode一样注入的格式。
(同时,输出文件仍然是一个有效的PE)。
支持32位和64位PE文件
作者:@hasherezade 和 @hh86
本项目的目标是提供一种生成PE文件的方法,使其能够以最小的努力进行注入。 它的灵感来自Stephen Fewer的ReflectiveDLLInjection - 但不同之处在于,使用pe2shc可以在编译后添加反射加载存根。 此外,PE文件的头部被修改,使得您可以从头开始执行注入的缓冲区 - 就像处理Shellcode一样。 它将自动找到存根,并继续加载完整的PE。
🟢 该存根仅支持PE格式的基本结构,例如:
请记住,尽管对于大多数PE文件来说这已经足够,但您遇到的一些可执行文件可能使用了PE格式的其他更复杂的方面。 这意味着,并非每个PE都能成功转换为Shellcode。
🚫 目前不支持的元素的示例:
📦 ⚙️ 下载最新发布版。
使用递归克隆获取仓库及其所有子模块:
git clone --recursive https://github.com/hasherezade/pe_to_shellcode.git
pe2shc.exe <path to your PE> [output path*]
* - 可选
如果PE成功转换,pe2shc 会告知您输出文件的保存位置:
[+] Saved to file: <converted file>
例如:
[+] Saved to file: test_file.shc.exe
runshc.exe <converted file>
(*)警告:请记得使用与您的转换应用程序位数相匹配的 runshc 版本(32位或64位)——否则应用程序将崩溃!