3分钟从零构建BlobRunnerWindows下编译Shellcode调试加载器的分步指南【免费下载链接】BlobRunnerQuickly debug shellcode extracted during malware analysis项目地址: https://gitcode.com/gh_mirrors/bl/BlobRunnerBlobRunner 是一款开源的 Shellcode 调试加载器专为恶意软件分析场景设计它把你提取出的 shellcode 文件读入内存、分配可执行内存区域然后直接跳转到 shellcode 入口让分析人员在调试器中零配置地进入目标代码。下面这份 Windows 编译教程将带你用 Visual C 命令行在 3 分钟内从零构建 BlobRunner 调试加载器并快速上手调试你的第一段 shellcode。一、认识 BlobRunnerShellcode 调试加载器解决什么痛点调试从恶意样本中提取的 shellcode通常要手动建内存、写跳板代码繁琐易错。BlobRunner 用约 200 行的 blobrunner.c 把这些步骤全做了读取文件把你提供的 shellcode 二进制文件读入缓冲区分配内存通过VirtualAlloc申请 RWX可读写可执行内存并复制数据跳转入口32 位版本直接jmp到 shellcode 入口64 位版本创建一个挂起线程供你先下断点整个工具只有一个 C 源文件无第三方依赖编译即得。二、环境准备安装 Visual C 编译工具最快方法在 Windows 上编译 BlobRunner 只需要 Microsoft 的 C 编译器cl准备步骤如下下载并安装Microsoft Visual C Build Tools或直接安装 Visual Studio勾选C 桌面开发工作负载从开始菜单打开Visual Studio Command Promptx86 与 x64 两个版本都可用输入cl验证编译器可用 小技巧不要使用普通 cmd 窗口Developer Command Prompt 已自动配置好编译器环境变量省去 PATH 折腾。三、克隆仓库并查看源码git clone https://gitcode.com/gh_mirrors/bl/BlobRunner cd BlobRunner项目结构非常精简核心就两个文件blobrunner.c—— 全部逻辑文件读取、内存分配、参数解析、跳转/建线程changelog.txt—— 版本记录当前版本 0.0.5新增了--jitJIT 调试支持并修复了--offset默认按十六进制解析的问题四、一键编译最快编译 BlobRunner 的步骤编译 32 位版本推荐新手先跑通这个在x86 版本的 Visual Studio Command Prompt中依次执行cl blobrunner.c完成后当前目录会生成blobrunner.exe全程不到 10 秒。编译 64 位版本x64x64 版本用的是x64 Native Tools Command Prompt命令只多两个输出参数cl /Feblobrunner64.exe /Foblobrunner64.out blobrunner.c/Fe指定生成的 exe 名为blobrunner64.exe。由于 x64 编译器不支持内联汇编64 位版本改用CreateThread创建挂起线程的方式进入 shellcode方便你在恢复线程前于线程入口下断点。五、快速上手调试你的第一段 Shellcode拿到编译好的blobrunner.exe后用法只有一个核心形式——把 shellcode 文件作为第一个参数BlobRunner.exe shellcode.bin标准调试流程用你喜欢的调试器x64dbg、WinDbg、IDA Pro 等打开blobrunner.exe以shellcode.bin为参数运行在跳转到 shellcode 之前下断点单步进入开始分析常用参数速查表参数作用示例--offset 偏移从指定偏移处进入 shellcode支持0x十六进制BlobRunner.exe shellcode.bin --offset 0x0100--nopause跳转前不暂停⚠️ 务必提前下好断点BlobRunner.exe shellcode.bin --nopause--jit移除执行权限触发 AccessViolation交由系统配置的 JIT 调试器接管BlobRunner.exe shellcode.bin --jit--debug输出详细调试日志—--version查看版本并退出—没有参数时会打印帮助信息说明缺少必需的文件参数。六、进阶玩法JIT 调试与 x64 Shellcode用 --jit 让 JIT 调试器自动接管加--jit后BlobRunner 会把 shellcode 入口处的页保护改为不可执行VirtualProtect程序执行到该处时触发0xC0000005访问违例异常Windows 随即拉起你预先配置的 JIT 调试器。调试器附加后把该区域权限改回可读写可执行即可继续单步例如在 x64dbg 中使用setpagerights region, ExecuteReadWrite。调试 x64 Shellcode 的原理x64 版本会在跳转前提示你到线程入口下断点按任意键恢复线程。挂起线程 入口断点的组合正是绕过 x64 无内联汇编限制的经典做法也是changelog.txt中 0.0.2 版本引入的重要能力。七、常见问题速答找不到 cl 命令请确认是在 Visual Studio Command Prompt 中执行而不是普通终端。x64 编译产物名不对加上/Feblobrunner64.exe参数显式指定输出名。哪里找测试用的 shellcode可用 Metasploit 的 msfvenom 快速生成例如生成一个 x86 的windows/exec计算器载荷存为test2.bin即可拿来练手。远程调试怎么办流程与本地一致只需把 shellcode 文件拷到远程机器并把远程路径作为参数传入。八、总结你现在已经掌握了 BlobRunner 从源码到可执行文件的完整链路安装 Visual C Build Tools → 克隆仓库 → 一条cl命令完成 32 位或 64 位编译 → 配合--offset、--jit等参数进入调试实战。作为一个单文件、零依赖的 Shellcode 调试加载器BlobRunner 值得放进每一位恶意软件分析人员的工具箱里 ️【免费下载链接】BlobRunnerQuickly debug shellcode extracted during malware analysis项目地址: https://gitcode.com/gh_mirrors/bl/BlobRunner创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考