该程序旨在加载 32 位或 64 位 shellcode 并允许执行或调试。此外,它还可以根据所需的 shellcode 生成可执行 PE 文件。这可以简化测试,因为输出二进制文件可以由标准逆向工程工具(即 IDA Pro(甚至免费)和调试器)使用。
发布二进制文件可用。您可以在 YouTube 上观看该工具的演示
该程序提供了多个用于处理 shellcode 的选项,按其用途进行组织。
全局论点
调试 shellcode
创建PE文件
唯一需要的参数是提供包含 shellcode 的文件的路径。您可以通过使用-f
参数来做到这一点。这将被复制到内存中并执行。此外,您可以使用-ep
参数将入口点调整 X 字节。这允许 shellcode 不在二进制 blob 的开头开始执行。最后, -bp
确定是否应在 shellcode 之前插入断点。这将通过0xCC
字节(一个 INT3)来完成。这允许您在调试器下运行程序,并根据需要定义命令行参数。插入断点将允许调试器在执行 shellcode 之前中断执行。如果您不在调试器下运行,请勿插入断点,因为这会导致程序崩溃。
您可以使用-pe
参数来生成实质上包装 shellcode 的 PE 文件。 shellcode 放置在.text
部分中。除非使用-ep
参数,否则入口点定义为节的开头。该参数将定义距该节开头的偏移量,并用于更新 PE 文件入口点(即 AddressOfEntry 字段)。此外, -64
参数可用于生成 64 位 PE 文件,可能用于 64 位 shellcode。生成的 PE 文件可以通过常见的逆向工程工具(例如 IDA Pro、Ghidra)或调试器(例如 x32dbg/WinDbg/etc)进行分析。
如果使用-d参数,SCLauncher 将创建一个名为.content 的新节,并将文件的内容复制到该节中。此部分将位于.text部分之后。
如果您的 shellcode 尚未处于二进制状态,则可以使用 CyberChef 转换该 shellcode 并将其作为文件下载。
以下是来自 Exploit-DB 的 shellcode 示例,该代码在 CyberChef 上转换为二进制内容。
该程序旨在使用 Microsoft 的 C/C++ 编译器进行编译。安装免费/社区版本后,您可以使用Developer Command Prompt
来使用cl
进行编译。该命令的一个示例是:
cl sclauncher.c
这将生成可执行的sclauncher.exe
。