使用 [AsmResolver] 将 shellcode 转换为 PE 的简单 dotnet Native AOT 应用。
同时支持 32 位和 64 位(x86、x64)shellcode -> 生成 32 位或 64 位 PE。
[发布] 同时为 linux-x64 和 win-x64 编译。
它被编译为 Native AOT 格式,以展示它有多出色(不过,由于某些依赖项使用了反射,如果我们不设法骗过它,这些反射就会被裁剪,所以还是很麻烦 :D)。可下载的 [发布] 二进制文件是不依赖任何 dotnet 的原生二进制文件!(所以直接运行并享受吧)
采用 Native AOT 编译,使用 dotnet SDK 8.0.100-preview.3.23178.7
选择 dotnet SDK 8+ 是因为它生成的二进制文件小得多。
从 dotnet 7 版本开始支持 Native AOT 编译。
如果你想使用 dotnet 7 进行构建,请修改项目文件以面向 net7.0 -> 使用 dotnet 7 构建要容易得多。
非常简单:
-p, --path [必填。shellcode 文件的路径]
-a, --architecture [必填。架构:32 或 64(取决于 shellcode)]
-o, --offset [可选。shellcode 的起始偏移量(默认 0)]
--help [显示此帮助屏幕]
--version [显示版本信息]
将 shellcode 转换为 32 位 PE(shellcode 起始偏移量设置为第 66 个字节):
sc2pe -a 32 -o 66 -p C:\shellcode.bin