尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

逆向工程好帮手:QuickBMS的Capstone反汇编与ASM类型多架构解析指南

发布时间:2026/9/25 4:36:00

资讯中心
01
ARTICLE

逆向工程好帮手:QuickBMS的Capstone反汇编与ASM类型多架构解析指南

逆向工程好帮手:QuickBMS的Capstone反汇编与ASM类型多架构解析指南
逆向工程好帮手QuickBMS的Capstone反汇编与ASM类型多架构解析指南【免费下载链接】QuickBMSQuickBMS by aluigi - Github Mirror项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMSQuickBMS 是一款由 aluigi 开发的开源跨平台逆向提取引擎除了海量解包脚本外它还内置了基于Capstone 反汇编框架的汇编指令解析能力。只需在 BMS 脚本中声明ASM等数据类型QuickBMS 就能自动把文件中的机器码翻译成人类可读的汇编指令并覆盖 x86、ARM、MIPS、PPC 等13 种多架构指令集。本文带你快速看懂它的反汇编引擎架构与 ASM 类型用法。上图展示了 Capstone 反汇编引擎解析 x86 指令的效果上方面板可切换 x86 16/32/64 位、Arm、Arm 64 模式下方还列出了操作数、SIB、前缀等指令细节。为什么提取工具里要内置反汇编引擎逆向游戏资源和二进制文件时我们常常需要回答这些问题 这段文件里的代码片段是什么指令是jmp跳转还是call调用压缩包内嵌的可执行代码是 16 位还是 64 位是大端还是小端能否在脚本里自动识别指令类型再决定不同的解包分支QuickBMS 的解包脚本语言BMS把读取一个字段的类型抽象成了一条get VAR TYPE命令而它的类型系统里内置了一整组ASM 汇编类型——用类型代替独立工具一条命令即可完成反汇编这对批量处理数百种文件格式的逆向工程师来说非常高效。三套引擎协作Capstone 是默认选择核心实现在 src/types.c#L514-L642 的quickbms_disasm()函数中按编译宏分三层Capstone默认多架构反汇编框架源码完整内嵌在 src/libs/capstone/ 目录官方说明见 src/libs/capstone/README.md主程序通过 src/quickbms.c#L68 引入capstone/capstone.hOllyDbg 引擎ENABLE_OLLYDBGx86 32 位专用的高速反汇编器支持 FPU、MMX、3DNow、SSE1–SSE4.1 与 AVX源码见 src/disasm/disasm.c 和 src/disasm/disasm.hBEA 引擎ENABLE_BEAENGINE可选的备用方案。配套的汇编器位于 src/disasm/assembl/assembl.c由 src/types.c#L494-L510 的quickbms_asm()调用——也就是说 QuickBMS 不仅能反汇编读指令还能把汇编文本汇编回机器码写回文件这对修改嵌入式代码段的逆向场景很有用。13 种 ASM 类型与架构映射一览所有 ASM 类型常量集中定义在 src/defs.h#L175-L187脚本中的分派逻辑见 src/file.c#L4207-L4223。类型到 Capstone 架构/模式的映射如下 ⚙️BMS 脚本类型Capstone 架构运行模式典型用途asmX8632 位默认解析 DOS/Win32 代码段asm16X8616 位老游戏、DOS 可执行文件asm64X8664 位Win64/Linux x86_64 代码armARMARM 模式移动端/嵌入式代码arm_thumbARMThumb 模式16 位压缩指令arm64ARM64ARM 模式64 位 ARMAARCH64mips/mips64MIPS32 / 64 位PS2、路由器等 MIPS 设备ppc/ppc64PPC32 / 64 位Xbox、老款 Apple 设备sparcSPARC—Sun 系服务器代码syszSystemZ—IBM 大型机xcoreXCore—嵌入式多核场景两个值得注意的细节 ✅字节序自动处理quickbms_disasm()会根据脚本当前的Endian状态自动给模式加上CS_MODE_LITTLE_ENDIAN或CS_MODE_BIG_ENDIAN见 src/types.c#L614-L618解析大端平台如 PPC代码时无需手动转换句柄复用只有当 ASM 类型发生变化时才会重新调用cs_open()打开新句柄循环解析时性能损耗很小。在 BMS 脚本中一行读取指令实际使用非常直观以判断文件当前偏移处是否为 x86 跳转指令为例get INSN asm # 反汇编当前偏移处的第一条指令存入 INSN print 指令: %INSN% if INSN blike jmp* print 发现跳转指令可能需要分析跳转目标 endif把asm换成arm、arm64、mips等任意类型即可切换到对应架构。解析失败的边界由引擎内部处理脚本无需额外判空。适合用 Capstone 反汇编的 3 类逆向场景代码段识别从游戏 PAK/ARC 包中解出的未知数据先用get读几条指令验证它到底是不是可执行代码架构探测对同一份文件分别用asm16/asm64/arm试探配合输出结果快速锁定目标平台与位宽补丁定位结合 OllyDbg 引擎的 x86 32 位能力与汇编器写回能力在脚本内完成定位 → 反汇编 → 替换 → 汇编回写的闭环。总结QuickBMS 把 Capstone 反汇编框架、OllyDbg x86 引擎和轻量汇编器整合进统一的 BMS 类型系统用 13 种 ASM 类型覆盖了主流硬件架构让在解包脚本里做反汇编变成了一条get命令的事。想要深入了解引擎细节可以从 src/types.c、src/disasm/disasm.c 和 src/libs/capstone/cstool/cstool.c 三个入口入手它们分别对应类型分派、x86 引擎、Capstone 官方命令行示例工具。【免费下载链接】QuickBMSQuickBMS by aluigi - Github Mirror项目地址: https://gitcode.com/gh_mirrors/qui/QuickBMS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。