首页/新闻资讯/正文详情

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

发布时间:2026/9/25 4:36:05 来源:云帆数科 栏目:资讯中心
逆向工程好帮手: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),仅供参考

相关推荐

RFSoC核心板硬件设计实战:ZU47DR多通道ADC/DAC时钟电源与数据路径避坑指南
RFSoC核心板硬件设计实战:ZU47DR多通道ADC/DAC时钟电源与数据路径避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:36:05

树莓派SD卡格式化指南:SD Card Formatter解决启动失败与分区问题
树莓派SD卡格式化指南:SD Card Formatter解决启动失败与分区问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 4:36:05

从丢文件到上架:Grimmory BookDrop监听、解析与元数据富化源码全流程剖析
从丢文件到上架:Grimmory BookDrop监听、解析与元数据富化源码全流程剖析

从丢文件到上架:Grimmory BookDrop监听、解析与元数据富化源码全流程剖析 【免费下载链接】grimmory A self-hosted library for your ebooks, comics, and audiobooks 项目地址: https://gitcode.com/gh_mirrors/gr/grimmory Grimmory 是一款自托管的电子图… · 2026/9/25 4:35:52

恶意代码检测分类平台毕设源码包:从特征工程到Web部署全流程
恶意代码检测分类平台毕设源码包:从特征工程到Web部署全流程

简介:这份本科毕业设计资源聚焦恶意代码检测与分类方向,面向计算机、信息安全等专业需要完成毕设或课程设计的学生,以及希望了解机器学习在安全领域落地实践的开发者。资源以完整项目工程形式组织,涵盖数据预处理、特征提取、模型… · 2026/9/25 5:19:36

量子安全哈希QSHA深度解析:从SHA-256到抗量子区块链的迁移之路
量子安全哈希QSHA深度解析:从SHA-256到抗量子区块链的迁移之路

1. 量子计算机的刀,具体砍在哈希的哪一层先聊一个很多人误解的地方:量子计算对哈希的威胁,不是"跑得更快"那么简单,而是攻击复杂度的量级被结构性压低了。经典世界里,SHA-256的安全性建立在两个基本支柱上&a… · 2026/9/25 5:19:36

自建CRM系统实操全解:数据模型、权限设计与部署要点
自建CRM系统实操全解:数据模型、权限设计与部署要点

做过客户管理的朋友,应该都懂那种抓狂感:客户信息散在 Excel、微信聊天记录、纸质笔记本里,想找一条半年前的报价记录,得翻几个晚上。更别提人一多,谁跟过哪个客户、跟进到哪一步,全凭记忆。我一开始做 Des… · 2026/9/25 5:19:30

微软面试100题:从PDF题库到算法思维靶场的工程化训练
微软面试100题:从PDF题库到算法思维靶场的工程化训练

简介:本资源是面向程序员、应届生及技术求职者打造的微软等一线科技公司算法面试核心备考资料,聚焦数据结构、算法设计与海量数据处理三大高频考点,系统覆盖数组、链表、树、图等数据结构,排序、查找、动态规划、贪心、回溯等经典… · 2026/9/25 5:19:30

如何让AI自己“积累经验“:Kiro Crew自进化技能与Markdown知识包完整指南
如何让AI自己“积累经验“:Kiro Crew自进化技能与Markdown知识包完整指南

如何让AI自己"积累经验":Kiro Crew自进化技能与Markdown知识包完整指南 【免费下载链接】KiroCrew A persistent workspace for development work that self-improves and continues beyond one session. 项目地址: https://gitcode.com/gh_mirrors/ki/… · 2026/9/25 5:19:24

open-code-review:可审计的AI代码审查工程实践
open-code-review:可审计的AI代码审查工程实践

1. 这不是又一个“代码审查工具”,而是一次开发协作范式的重新定义“open-code-review”这个词乍看像某个开源项目名,但拆开来看——open 是态度,code 是载体,review 是动作。它不指向某款具体软件,而是一种正在快速落… · 2026/9/25 5:19:24

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码