简单的 dotnet Native AOT 应用程序,使用 [LibObjectFile] 将 shellcode 转换为 ELF。
同时支持 32 位和 64 位(x86、x64)shellcode -> 生成 32 位或 64 位 ELF。
[发布版] 同时为 linux-x64 和 win-x64 编译提供。
它被编译为 Native AOT 格式,以展示它有多么棒(不过,这仍然很痛苦,因为某些依赖项使用了反射,如果我们不设法绕过,它就会被裁剪 :D)。可下载的 [发布版] 二进制文件是原生的,不依赖任何 dotnet!(所以直接运行并享受吧)
使用 dotnet SDK 8.0.100-preview.3.23178.7 进行 Native AOT 编译。
选择 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 位 ELF(shellcode 起始偏移量设置为第 66 字节):
sc2elf -a 32 -o 66 -p C:\shellcode.bin