REA 的教学案例检查 HTTP 版 t-rex-runner,并重建其速度更新规则。单独进行的受控原游戏检查与新演示对比更新次数,包含浮点递增越过名义速度阈值的一步。
逆向工程资源集合
精选逆向工程资源
1,253 项工具、项目、集成、案例与参考资源,覆盖网站、游戏、应用、原生二进制、固件及通信协议。每个条目都保留一手来源链接、使用要求与复核日期。
来源复核与验证范围
“来源已复核”表示说明已依据一手文档核对。完整的使用条件与来源列在各条目页面,本页显示其数量和复核日期。
90 项带“网站”标签 · 查看全部 90 项 →
案例
13 个案例
记录 website-rebuild-skill 的一个案例:解码浏览器收到的 React 服务端组件 Flight 流,重建可构建的 Next 项目,再与捕获站点的输出比较。作者报告的 rauchg.com 重建过程采用路由树比较与模块引用映射;新服务端源码由可观察输出推断。
记录 BaoCut 交互式幻灯片编辑器,作者称其实现借鉴自 Claude Slides。它为浏览器与桌面宿主加入本地文稿存储、HTML/CSS 编译器及标注到智能体的桥接;设计说明报告了 Web 流程检查,但未确立原有后端恢复或完整行为一致性。
一篇日文实践报告在单独的项目目录中把 REA 6.4.0 接入 Claude Code,屏蔽其 170 个工具中的 43 个以及常见的命令行启动方式,并在两个真实任务上比较启用与禁用 REA 的运行:一个 Electron 终端的分发文件,以及一份保存的 HAR 通信记录。两组都给出正确答案,而启用 REA 的一组耗时最多为 2.00 倍、按 API 计价的费用最多为 1.67 倍。这是分析评估与安全配置案例,而非重建案例。
作者使用 REA 的 MCP 浏览器工具被动捕获 wayou 开源 T-Rex Runner 页面已加载的 JavaScript,再由 Codex 在一个自包含的 HTML5 Canvas 游戏中重建其加速规则。报告以 SHA-256 标识所捕获的脚本,并区分已核实的源码事实与重建选择;只主张速度规则一致,不主张完整玩法等价。
独立 Rust 市场界面参考 REA 对公开、未登录 TradingView 图表交互的场景研究;笔记保留观察、文档、推断及未知标签,产物使用自己的图表引擎和数据源,而非恢复 TradingView 或 Bloomberg 服务端软件。
记录 BaoCut 的设计稿(画布)与设计系统编辑器;项目称其按 1:1 移植自 Claude Design 编辑器的 TypeScript 重建,并在智能体会话中提供标注与导出。运行时说明记录了对照原脚本修正的标识符,以及画布主页面 20463 个函数中有 19111 个结构完全一致的比对结果。未审阅的差异、未公开的重建记录及复用权利仍待确认;不主张恢复任何托管后端。
记录并重新实现 WhatsApp Web 在浏览器会话镜像已配对手机时期使用的 WebSocket 协议:二维码配对、Curve25519/HKDF 密钥建立、经 AES/HMAC 保护的二进制报文、基于字符串令牌表的节点编码,以及端到端媒体加密。Python 后端、Node.js 中继和浏览器前端把已登录会话的报文解码成可查看的 JSON,README 还列出了 Baileys、go-whatsapp 等独立再实现。这是 WhatsApp 2021 年多设备架构之前的旧一代协议,不能当作对当前 WhatsApp Web 的描述。
用 Rust 重新实现 Adobe Flash Player,使从 ActionScript 1/2(AVM1)到 ActionScript 3(AVM2)的 SWF 内容能在原生桌面播放器中运行,或通过 WebAssembly 以自托管脚本或浏览器扩展的形式在浏览器中运行。其贡献指南称,行为依据对 Flash Player 输出的观察或 Adobe 开源的 avmplus 等许可兼容来源确定,并禁止反编译 Flash Player、Flash Professional 或 Animate。回归测试运行贡献者自制的 SWF,将其 trace 输出(以及可选的渲染图像)与官方调试版 Flash Player 的记录进行比较。
依据捕获的标记与资源,用原生 HTML/CSS/JavaScript 重建 Littlebird.ai 首页;源码实现移动导航、FAQ 展开、滚动显现及随操作系统变化的按钮展示。它是范围明确的网页重建案例,不涵盖未捕获路由或产品本身的功能。
Sheypoor MCP 根据浏览器流量记录的接口行为,为 Sheypoor 分类信息网站实现客户端和 MCP 服务器。其文档列出已观察到的接口、请求头、Cookie 和手机短信验证码登录流程。服务器向 MCP 客户端提供信息搜索与详情、账户功能,以及聊天会话列表和未读消息数。
ZCode-Android 根据官方远程控制网页的抓包与逆向结果,在 Android 上重建 ZCode 会话控制。Kotlin 客户端实现 WebSocket 中继、HMAC 配对、IPC 编解码、RPC 分片帧和 Conversation V4 会话消息。
Power BI API Scraper 还原公开报表所用的网页客户端查询与响应格式。程序发送 SemanticQueryDataShapeCommand 请求,使用重启令牌翻页,并将位集和 ValueDicts 还原为 CSV 行;附带示例固定针对俄亥俄州酒类许可证报表。
工具、项目与集成
48 项资源
webcrack
工具识别支持的 JavaScript 混淆模式,并拆解 webpack/Browserify 打包文件,改善代码可读性。
借助 LLM 为压缩后的 JavaScript 标识符建议名称,并通过遵循作用域的 AST 改写完成重命名,程序结构保持不变。新名称是模型给出的推测,并非恢复出的原始标识符。
WABT
工具WebAssembly 二进制与文本转换、节区检查、验证、解释执行及 C 转换工具集。
Bytecode Alliance 提供的 CLI 与 Rust 库,用于检查 WebAssembly 模块、元数据、组件和 WIT 接口。
连接智能体与 Chrome,检查实时页面、调试网络并记录性能轨迹。
通过交互代理、Web 界面或可脚本化命令行检查和记录 HTTP 流量。
通过结构化无障碍快照驱动浏览器交互,调查可复现的网页行为。
PortSwigger 官方 Burp Suite 扩展,提供 MCP 端点并附带 stdio 代理,使智能体可以查询代理中的 HTTP 与 WebSocket 历史记录、发送 HTTP/1.1 或 HTTP/2 请求,并打开 Repeater 或 Intruder 标签页。
Wakaru
工具通过还原已识别的压缩与转译模式,从发布后的 JavaScript 包中恢复可读模块,支持拆包与现代语法恢复,便于分析生产环境前端代码。
Spectral
集成用 LLM 分析捕获的应用 HTTP 流量,生成 MCP 工具、OpenAPI 3.1 规范或 GraphQL 模式;完成抓包与认证配置后,生成的工具可直接调用已观察到的 API。
在查看 JavaScript AST 和变量作用域的同时,可视化编排 Babel 转换链;保存分析项目与可复用插件,逐步简化混淆脚本。
采集浏览器会话证据,在持久 Chromium 会话中抓取网站,并根据已保存的捕获数据生成离线架构/API 报告,以及 OpenAPI、SDK 和模拟服务器草稿。
借助多模态模型,根据截图、设计稿、Figma 设计或屏幕录像生成 HTML/CSS、Tailwind、React、Vue、Bootstrap 或 Ionic 前端代码;可选的无头浏览器预览可让模型渲染并自查输出。结果是对界面外观的视觉重建,并非恢复原始源码或后端行为。
Node.js 命令行工具,通过 Playwright 驱动 Chromium 或 Firefox 渲染网站,并从 DOM 读取计算样式来提取其设计系统:标志、附带判定依据的颜色角色、字体排版、间距、边框、阴影、动效、断点,以及按钮、输入框等组件样式。结果可导出为 W3C 设计令牌(DTCG)、Tailwind v4 或 shadcn/ui 主题、DESIGN.md、HTML 报告或品牌指南 PDF,还能对页面中实际的前景与背景组合做 WCAG 对比度检查,并在 CI 中与已提交的基线比较、拦截设计漂移。它也能作为 MCP 服务器供智能体客户端调用。
命令行工具,可把源映射(source map)中内嵌的原始 JavaScript 和 CSS 源码重新写出为文件。它能读取 .map 文件,也能读取 sourceMappingURL 中内联了 Base64 或 URL 编码映射、或指向同一目录下映射文件的 JavaScript 和 CSS 文件,并可按正则表达式筛选、递归遍历目录。默认只按文件名平铺输出,使用 --preserve 则保留映射中的目录结构。
专门处理 Obfuscator.io(javascript-obfuscator)所生成 JavaScript 的反混淆工具,README 称也能处理其大部分分支版本。它在 Babel AST 上进行静态处理,可还原隐藏在经过轮转、Base64 或 RC4 编码的字符串数组中的字符串,内联代理函数,化简对象、算术表达式和字符串拼接,删除死代码和混淆器的防篡改包装代码,并还原控制流平坦化。配置会自动检测,作者另提供在线版本。
通用的 JavaScript 反混淆工具,针对常见混淆手法,以 js-deobfuscator 之名发布在 npm 上,可作为库或命令行工具使用。它能展开字面量数组并替换对其的引用,移除简单代理函数、数组代理函数和算术代理函数,化简算术表达式和字符串拼接,删除死分支,把计算属性访问转为静态属性,重命名 _0xca830a 这类十六进制标识符,并美化输出代码。作者另提供在线版本,并单独维护一个针对 Obfuscator.io 输出的反混淆工具。
命令行工具,从捕获的流量还原未公开的 REST API。它读取 mitmproxy 流文件或浏览器 DevTools 导出的 HAR,生成描述所观察端点的 OpenAPI 3.0 规范。对更多捕获再次运行时,会将新数据安全合并到已有规范中。
面向 Adobe Flash SWF 文件的 Java 桌面反编译与编辑工具。它可反编译 ActionScript 1/2 和 AS3,并与对应的 P-code 对照显示;既能以源码形式(实验性)编辑脚本,也能通过汇编视图编辑,还可导出或替换图像、形状、声音、视频、字体和文本,支持 SWF 转 FLA、SWF 与 XML 互转,以及输出 SVG 或 HTML5 Canvas。它还能打开 SWC、ABC 文件以及 Scaleform GFx 和 64 位 Iggy 文件,内置 ActionScript 调试器和针对混淆 AS3 的反混淆处理,并以 ffdec_lib Java 库和命令行形式提供其解析与反编译功能。
提供 WebAssembly 区段与函数签名检查、WAT 风格指令列表和有限 C 风格伪代码重建的 Python CLI。所收录的是面向受支持模块的探索性静态分析路径,不代表恢复原始源码或实现完整 WebAssembly 运行时。
主要面向 javascript-obfuscator(obfuscator.io)输出的 JavaScript 清理与反混淆工具。它用 acorn 解析脚本,再运行一组固定的 AST 转换器:折叠表达式、整理成员访问、删除死分支、拆分逗号表达式、还原基于 switch 的控制流平坦化,并解码字符串数组;其中 base64 和 RC4 解码器以 TypeScript 重新实现,而不是执行输入代码。它以 deobfuscator 之名发布在 npm 上,提供 synchrony 命令行工具和库 API;可选的重命名会把标识符换成生成的单词名,并不能恢复原名。
Go 编写的命令行工具,可根据 webpack 等打包工具生成的源映射(source map)重建网站前端原有的 JavaScript 源码目录树,并把映射中内嵌的每个源文件写到其记录的路径下。它可通过 URL 或本地路径读取 .map 文件,递归处理整个目录中的 .map 文件,也可抓取 JavaScript 文件并跟随其中的 sourceMappingURL 注释或 SourceMap 响应头,内联的 data: 映射同样支持。
一款 Electron 桌面应用,对 Angular 项目的 TypeScript 源码做静态分析,以交互式图形展示其中的 NgModule、组件、指令、管道和服务提供者及其依赖关系,无需运行该应用。通过项目的 tsconfig 文件载入后,可从模块树逐层查看单个模块、模板和提供者,支持符号模糊搜索,并可将当前图形导出为 PNG。
Bishop Fox 推出的 Go 库与命令行工具,借助 tree-sitter 解析 JavaScript,还原脚本所调用的接口地址;它依据代码如何使用某个值来判断,而不仅仅依靠正则表达式。URL 提取会跟踪 location 赋值、window.open、fetch、XMLHttpRequest 和 jQuery 请求调用,保留 HTTP 方法、请求头以及查询或请求体参数,并以占位符代替只有运行时才能确定的值。其他模式可标记形似凭据的值、打印语法树、运行 tree-sitter 查询以及格式化压缩代码。
HUMAN Security 推出的 Node.js JavaScript 反混淆工具。它先识别混淆类型,针对 obfuscator.io、Caesar Plus 和基于数组的混淆模式运行相应处理器,再迭代执行 40 多个 AST 模块,重建字符串、求解表达式和函数调用并简化控制流;其中不安全模块会在沙箱中求值代码。可作为命令行工具或库使用。
Rob Wu 开发的浏览器扩展及网页版工具,无需安装即可查看已打包的浏览器扩展。在 Chrome 网上应用店、Opera、Firefox、Thunderbird 和 Microsoft Edge 的扩展页面上,它会添加一个按钮,可将扩展包下载为 zip 或在查看器中打开;托管在其他位置的扩展包链接也能打开。查看器支持 CRX、NEX、XPI 和 ZIP 文件:可列出并筛选文件,按字符串或正则表达式搜索内容,格式化代码并高亮语法,预览图片,打开嵌套的 zip,显示各文件的哈希值,还能根据扩展包的公钥、签名或 manifest 推算扩展 ID。
TypeScript 库及命令行工具,可根据 HTTP 流量的 HAR 抓包记录推断 OpenAPI 3.0 或 3.1 文档,大致基于 har2openapi 改写。请求按域名分别生成文档,可选择把路径中的 ID 转为参数,根据观测值推断查询参数、表单和 JSON 请求体的结构,并把多份抓包合并到相同的操作中。可选设置还能提取可复用的组件模式、保留多个经脱敏的示例、仅在所有样本都包含某字段时才将其标为必填、附加逐字段的观测计数作为依据,并应用 OpenAPI Overlay,使手工补充的名称和修正在重新生成后得以保留。
基于 Babel AST 的处理工具,可把混淆过的 JavaScript 还原为可读源码,每次运行选择一个目标:javascript-obfuscator(obfuscator.io)、JS-Confuser 2.x(直至 high 预设)、sojson 及其面向 jsjiami.com.v7 的 v7 变体、sojson 风格的 jjencode,以及处理不可达代码、嵌套代码块和常量表达式的通用目标。另一个按版本区分的 obfuscator.io 目标会报告检测到的编码器版本区间;遇到无法读取的字符串数组层时,它不输出结果并说明原因,而不是给出解了一半的程序。JS-Confuser 文档逐项列出可还原的变换,以及变量重命名等会丢失信息、无法恢复的变换。
基于浏览器的 Vue 应用,用于还原 Obfuscator.io 藏在字符串数组查找背后的 JavaScript 字符串。用户粘贴混淆脚本,并填写其中的字符串数组或解码函数名(如 _0x439c);工具会把调用识别为直接数组下标、单参数解码函数或双参数 RC4 式解码函数,借助脚本自带的解码函数把每次调用替换为字符串字面量,再把方括号属性访问改写为点号形式并美化输出。作者在 deo.sigr.io 提供演示站点。
Airbus CERT 开发的 Rust 脚本去混淆引擎:用 tree-sitter 解析 PowerShell 或 JavaScript,应用一组推断语法树节点取值的规则,再输出化简后的脚本。PowerShell 规则可折叠算术与字符串运算、类型转换、-join、-replace 和格式化运算符、Base64 与 UTF 解码、可预测的变量和循环;当数据和密钥都在脚本中时,还能还原 Gzip 或 Deflate 流以及 AES 解密。较新的 JavaScript 规则涵盖字面量、运算符、字符串与数组内置方法、atob 与 btoa、Buffer 调用、可预测的函数调用以及 JSFuck 写法。命令行工具可列出、选用或跳过规则,并把每一步改写导出为 HTML 或 JSON;Python 和 WebAssembly 绑定可嵌入该引擎,README 中链接的在线版本即基于此。
面向 Timofey Kachalov 的 javascript-obfuscator(亦以 obfuscator.io 提供)所生成 JavaScript 的 Node.js 反混淆工具。它用 esprima 解析样本,依次运行十一个与该混淆器同名的阶段:移除注入的自我防护和调试保护代码,还原控制流平坦化和死代码注入,恢复被转换的字面量和对象键,把字符串数组调用替换为解码后的字符串,化简结果,并对传给 eval 的代码递归处理。字符串数组相关代码可自动识别,也可拆成单独文件输入;Examples 目录收录了原始、混淆后和反混淆后的成对样本。
面向 Windows、Linux 和 macOS 的开源 HTTP(S) 调试代理,可为浏览器、终端、后端运行时、Electron 应用和 Android 设备配置拦截,并完整展示每个请求与响应的头部和正文,提供正文解码、标准头部内联说明和过滤功能。其透明代理在同一端口处理明文 HTTP、HTTPS、HTTP/2 和 WebSocket;断点可改写实时请求或响应,内置客户端可发送自定义请求。本仓库是项目的总说明与问题追踪仓库,界面、服务端、Mockttp 代理库、Android 应用和桌面外壳位于同一组织的其他仓库。
一个在浏览器中手动反混淆 JavaScript 的工作台,也部署在 GitHub Pages 上,以 Monaco 编辑器搭配逐步改写和求值命令,而非一键式流程。格式化命令可美化代码,并对选区或整个文件解码转义字符串、转换十六进制数字、把方括号属性访问改为点号形式、把 _0x 式标识符改为短名称;求值命令可把声明压入代码栈,在其基础上对选中的表达式求值并用 JSON 结果替换,自动替换捕获到的变量,以及合并层层别名。README 说明这一过程并非自动完成,要求分析者熟悉 JavaScript。
一个用 Go 编写的库,用于解析、遍历、转换和重新生成 JavaScript 抽象语法树,README 将其定位于代码分析以及混淆与反混淆。其解析器基于 goja 的解析代码,自动生成的 SWC 式访问者 API 支持深度优先地改写和克隆节点,解析器(resolver)跟踪作用域与绑定,ext 包提供删除节点、判断副作用和推断取值的辅助函数,代码生成器则从语法树输出 JavaScript。文档称它是比 Babel 更轻、更快的替代品,并刻意省去了父节点、兄弟节点和引用映射以及自动化的修改辅助功能。
用于安全研究的开源 HTTP 工具包,作者希望把它做成 Burp Suite Pro 的替代品。单个 Go 程序即可运行一个使用自生成根 CA 的中间人 HTTP 代理,把经过代理的请求和响应记录到按项目划分的数据库中,支持搜索过滤和范围规则,并提供 Web 管理界面。分析者可在界面中拦下请求和响应进行人工检查,再编辑、放行或取消;也可把已记录的请求复制到 Sender 模块,修改后重新发送。
Node.js 命令行工具,可把 Browserify 或 Webpack 生成的 JavaScript 打包文件还原为按模块拆分的文件树,便于逐个文件阅读,而不必面对一整个脚本。JSON 配置文件指定打包类型、入口模块,以及可选的 knownPaths(把数字模块 ID 映射为输出文件或 node_modules 中的包路径);它还能以内联或变量方式改写被压缩工具重命名的 require 标识符,使输出可重新打包或在 Node 中运行。README 称该工具是作者为一个逆向工程项目了解打包结构而编写的,并指出拆包是有损的:无法恢复 package.json 设置和 Webpack 模块名称,压缩过的代码拆出后仍是压缩状态。
Minded Security 的 JavaScript 反混淆工具,由 Stefano Di Paola 于 2015 年从 esdeobfuscate 分支而来,在 esprima 语法树上通过部分求值简化脚本。它会折叠常量和字符串表达式,经由变量和纯函数调用传播已知值,对内置 String、Array、Number 方法以及 atob/btoa 的调用求值,并把传给 eval 的字符串参数重新解析为代码。它可作为命令行工具处理文件或标准输入,也可作为带网页界面和 REST 接口的 Express 服务运行,或作为经 browserify 打包的库使用。
用于研究恶意 JavaScript 的 Node.js 工具:在模拟的 Windows JScript 环境中运行样本,模拟 WScript、ActiveX、文件系统、注册表、WMI 和 HTTP 对象,并通过改写源码暴露 eval 调用和条件编译代码。每次分析都会生成结果文件夹,记录请求过的 URL 及其中导致可执行载荷的 URL、执行过的每段代码(JavaScript、cmd.exe 和 PowerShell 命令)、写入的文件及其类型和哈希,以及 IOC 列表;默认情况下,下载请求会收到模拟的 404 错误,以暴露样本的备用站点。支持批量分析、可选预置的浏览器对象桩代码文件、Docker 镜像、REST API,以及导出到 VirusTotal 或 Cuckoo,便于大规模初筛。
breakinggood 采集网站截图、清理后的 DOM、计算得到的设计参数、图片和 XHR/fetch 响应,再生成 Vite、React、Tailwind 重建项目,并用模拟 API 重放观察到的 JSON。命令行和 MCP 服务器也提供独立的 Git 仓库准备功能。
Facebook BitMap Codec 按项目还原的位图、游程编码和自定义 Base64 规则,对 Facebook 网页 API 参数进行编解码。Python 模块提供 FacebookCodec 类,可在 ID 列表与 __dyn、__csr 等参数值之间转换。
DevLens Ultra 是用于检查和提取网页组件结构的 Chrome 扩展。它分析所选 DOM 元素、计算样式及 React Fiber 属性等框架状态,生成 React JSX 与 Tailwind 类;用户还可配置 AI 服务进一步整理所选片段。
wasm-tools 是纯 Python 编写的 WebAssembly 核心模块及 Component Model 二进制文件解析、反汇编工具。它输出段表、指令、带内存来源的字符串、导入导出项和静态调用图,并在 JSON 中加入启发式能力与风险判断。
web-crawler 内的 ReverseAgent 用于研究网站 JavaScript 和请求签名。它在浏览器中挂钩 fetch、XHR、cookie、crypto.subtle 和 webpack 活动,采集通信并拆分模块,再借助大语言模型用 Python 重实现签名算法。
Mirrorframe 使用 Playwright 采集网页,并将观察到的布局和行为重建为独立的 React 应用。它记录计算样式、资源、动效和部分交互状态,再通过图像差异,将重建后的节点和重放状态与原网页比对。
unwebpack-sourcemap 是一个 Python 脚本,可从 Webpack 源映射中恢复 TypeScript、JSX 等源文件。它可处理本地或远程源映射,也可检查网页脚本以查找源映射。
Wirebrowser 是一款通过 Chrome DevTools Protocol 对浏览器 JavaScript 进行运行时插桩的桌面工具。它可以挂钩函数、追踪值的来源、查找和修改运行时对象,以及拦截或重放 HTTP 流量。
Thug 是一款用 Python 编写的低交互蜜罐客户端,通过模拟网页浏览器来检测和仿真恶意内容。它可用于研究针对客户端的攻击。
spy-debugger 是一款远程调试手机浏览器和应用 WebView 页面、抓取 HTTP 与 HTTPS 流量的工具。它会在 HTML 响应中注入 weinre 调试代码,并可使用内置代理或外部代理。
377 项带“游戏”标签 · 查看全部 377 项 →
案例
239 个案例
根据指令与常量重建单个声像函数;上游报告 3,205 例与 63 字节匹配。
检查 PC-98 DOS 的 16 位弹幕角度辅助函数,并关联固定版本重建与历史编译器检查。
将 Super Mario 64 DS 函数重建为 C/C++ 和规则允许的汇编原语,并将编译结果与用户提供的卡带转储对比。独立的重定位目标核对强化匹配检查;PC 移植中的集成进度另行统计。
在已有 GoldenEye 007 反编译成果之上构建原生 PC 移植,提供宿主平台适配层,并从用户自己的 ROM 提取资产。项目记录智能体协作、渲染对比、试玩范围和尚未解决的平台支持。
将 Super Smash Bros. Ultimate 13.0.4 的 AArch64 代码提前转换,并提供带 Vulkan/OpenGL 渲染的 Windows 运行时。项目还将部分角色脚本重建为可编辑 C++,通过差分与确定性测试对比转换代码和源码行为。
围绕 WiiCompiled 对 Mario Kart Wii 的提前转换实现 Apple 与 Android 平台集成,提供原生图形、输入及可选 Retro Rewind 支持。状态和权利文档区分平台验收、未解决的设备缺陷及游戏内容要求。
使用 libultraship 和 Torch 移植已有的 Super Smash Bros. N64 反编译成果。作者早期的 README 介绍了智能体构建的图形、音频对比工具和对照模拟器行为的差分调试,并未将其说成脱离社区既有成果、仅靠卡带自动恢复游戏。
Maurice Heumann 介绍如何用基于编译器的函数、重定位、数据和类型检查,取代看似合理的智能体输出。复盘报告 99% 的函数已进入重建源码,全部函数中 83% 达到字节一致;重建代码仍不公开。
N64 游戏 Snowboard Kids 2 的公开匹配反编译项目,2024 年借助社区反编译工具启动。作者在按日期发布的文章中记录了 Claude、Codex 和 GLM 的使用流程,包括无界面的一次性匹配循环、按函数相似度安排任务,以及由钩子约束、经哈希校验的构建,直至报告全部函数完成匹配。
将 The Binding of Isaac 的 Flash AVM1 字节码转换为 C++ 函数,并提供原生渲染与输入运行时。项目从用户自己的原游戏读取图像和音频,并记录了确定性输入、无界面运行和截图回归检查。
用 Go 重实现兼容 Total Annihilation 的策略游戏引擎,公开文件格式研究并提供不同玩法配置。项目区分拟复现的零售版3.1行为、社区补丁研究和有意加入的现代改动,也区分合成检查与依赖原始游戏数据的测试。
依据原二进制和原编译器重建日版 Touhou 8 的 1.00d 版本,再将恢复的代码适配到其他平台。项目分别记录源码存在、严格函数匹配、完整可执行文件一致性和移植可玩性里程碑。
通过 N64Recomp 将《姆吉拉的假面》转为原生应用,并使用 RT64 渲染。项目区分静态重编译与源码反编译,同时借用反编译项目的头文件和部分函数实现补丁与增强功能。
从 Jak 原二进制重建可读的 GOAL 代码,再用新编写的 GOAL 编译器为现代 PC 编译。流程结合专用反编译器、人工补充的类型信息、素材提取和交互式开发运行时。
针对英文版 LEGO Island 1.1 的原始 32 位 Windows 目标重建源码。项目区分函数对比报告、ReproBit 报告的零售版逐字节一致重构建,以及普通开发构建;现代跨平台适配位于另一仓库。
作者通过 REA 的 Ghidra 工作流调查 DOS 版 Ski or Die 二进制,记录 Snowball War 的规则,再用 Rust 与 SDL2 重建这一小游戏。公开笔记区分恢复的数据表和机制、近似实现以及有意调整的表现效果。
将逆向分析后的 Space Cadet 弹球游戏转为可编译的 C++,面向桌面平台。README 标明 Windows XP 可执行文件及公开 PDB、Full Tilt 可执行文件,并描述恢复结构、命名变量和适配反编译例程的工作。
为日版、北美版、欧洲版、Shindou 版和 iQue 版 Super Mario 64 重建源码。构建文件区分原 ROM 哈希比较与非匹配或修改配置;源码命名和文档工作仍在推进。
使用 XenonRecomp 静态重编译 Xbox 360 PowerPC 代码,并用 XenosRecomp 转换 Xenos 着色器,构建非官方 Sonic Unleashed PC 移植。项目增加现代显示与模组选项,同时记录原引擎限制和仍存在的兼容性问题。
提供用于运行 Morrowind 的独立引擎和替代编辑器 OpenMW-CS,通过自己的运行时加载原游戏内容,并记录脚本及模组兼容性差异。这是引擎替代实现,而非恢复出的 Bethesda 源码树。
将逆向分析的 Driver 2 MIPS 例程转为 C/C++,并用 Psy-X/Psy-Cross 将 PlayStation 接口适配到桌面系统。项目记录借助符号的 Ghidra/IDA 分析,同时明确包含有意修复的错误和玩法改动。
基于 Devilution 重建成果提供现代平台上的 Diablo 与 Hellfire 移植,加入平台支持、错误修复及可选便利功能。项目记录了早期借助符号信息的重建过程,并包含特定地牢生成与存档回归检查。
REA 网站发表的一篇文章及其固定版本的证据说明,介绍一位作者以智能体驱动重建 TH08、TH095 与 TH04 的过程。文章依据公开提交与进度记录标注里程碑,区分精确比对与可游玩构建两类判定依据,并记录 TH08 一项检查漏查错误浮点字面量数据的问题。项目结果仍为作者报告;REA 的作用是为智能体提供分析证据,而非完成重建本身。
作者的 REA 分叉(发帖时名为 rea-engine,后更名为 RE-Agent)反编译 GPL 许可的 TicTacToe-AI 游戏所发布的 .NET 可执行文件,重新编译恢复出的 C# 与资源,并依据原始 IL 修复一处反编译错误。差分探针在一个状态判定方法的全部 19,683 种棋盘赋值上运行原版与重建代码,并比较六张窗体渲染图。报告只判定该方法通过,整个游戏仍属部分重建。
作者使用固定版本的 REA 与 Ghidra,分析使用者自备的《宝可梦 究极之日》基础版可执行文件,由拆分出的对象逐字节重建该文件,并替换进两个编译后的小型 C 运行时例程。两处替换均经行为测试但与原字节不一致,其余字节均保持原样;同一段录制输入在 Azahar 模拟器中让原版与混合构建到达相同的卧室移动场景。零售编译器识别、精确匹配、模块加载及更广泛的游戏行为仍待解决。
作者让 Codex 通过 REA 的 Ghidra 工具检查英文版 DX-Ball 1.07 可执行文件并恢复为带类型的 C/C++,再用同时代的 Visual C++ 4.0 编译每个函数,在映射重定位后与原文件逐字节比较。同一套源码还可构建 MinGW Windows 游戏和可移植核心库。精确重建仍在进行中;REA 另行发布的声像展示只覆盖其中一个函数。
在原生 Nintendo DS 引擎中重新实现 Resident Evil 2 PS1 版的游戏规则,并用转换工具把使用者自有光盘中的数据转为 DS 格式。辅助脚本把 PS1 可执行文件包装成 ELF,供 REA 的 Ghidra 通道分析;分析笔记注明各部分所依据的 PS1 函数与数据表,链接该项目的 Reddit 帖称其借助 REA 和 Claude Code 完成。据报告 Leon 第一张光盘已可游玩,Claire 光盘、多数敌人类型和部分菜单仍未完成。
以原生 Rust 客户端、专用服务器和启动器重写 Minecraft: Java Edition 26.3,资源均由使用者自有的游戏副本生成。项目要求贡献者先阅读原版代码,tools/rea_vanilla.py 会调用固定版本的 REA,配合无界面 JADX 引擎分析官方发布的客户端与服务器 jar,查询类、方法及调用方。差分测试工具分别对真实游戏运行 Java 对照程序、对 Horizon 运行 Rust 探针;README 称全部 281 个测试通过,但这只涵盖它们所比较的内容。
作者记录了以 REA/Ghidra 调查已发布的 Untangle Windows 二进制,产出单页可玩重建与逐项判定的证据收据,并分开保留冻结发现、后取的源码答案及先验知识审计。
C++20 重实现 Battlefield 2 的 Refractor 2 引擎,读取原始游戏数据,记录菜单渲染、关卡载入及服务器互通;公开的准星研究引用 REA/Ghidra 证据 ID 和二进制地址,主要玩法系统仍未完成。
Linux 原生与浏览器移植面向 Commander Keen 第一章,作者记录以 REA/Ghidra 对 KEEN1.EXE 逐函数研究并重建 C/SDL2 游戏,附带公开分析资料;范围仅为第一章,并非全系列。
REA/Ghidra 调查将 SA-MP 0.3.DL-R1 客户端子系统映射到新的 C++ DLL、加载器和冒烟测试程序,产物属于架构重建,网络与图形行为仍有明确未知项,未建立零售版兼容性。
Swift/macOS 与 JavaScript/浏览器移植在截图上重现 Desktop Games 的桌面破坏玩具;作者记录 Claude 与 REA/Ghidra 对 Peter 解释器的研究、反编译程序树及提取素材,并明确列出视觉差异和未提供项目许可。
Rust/Bevy 移植从用户安装中读取 GunZ: The Duel 数据,提供原生发布包、浏览器构建工具、截图及 REA/Ghidra 调查框架;自有局域网协议和推断的移动行为不代表兼容零售服务器或已证明玩法一致。
REA 网站上 N0zoM1z0 的一篇文章(2026 年 10 月 13 日)依据注明日期的东方 Project 重建提交,探讨精确的函数匹配究竟需要更大的通用模型、针对编译器的专用模型,还是更好的检索。文章逐一介绍 TH09、TH095、TH04 与 TH08 中较晚的 GPT-6 系列会话攻克难以匹配函数的案例,以及 TH08 一次审计发现部分已接受函数含有错误浮点常量的经过。专用模型与强化学习的对比被作为未来实验提出,并未评估任何经过训练的专用模型。
sh23ds 以 C 为 Nintendo 3DS 重建《寂静岭 2:导演剪辑版》的原生引擎,游戏数据由玩家自己的 PC 版本转换。项目从 PC 可执行文件还原逻辑、镜头、光照和事件;研究笔记记载使用 Ghidra 与 REA。作者报告在 Azahar 中可通关,但实体主机测试和部分 PC 行为仍待完善。
通过静态重编译,将 2019 年 Switch 版《塞尔达传说:织梦岛》重建为原生桌面程序。作者称大部分代码、工具与逆向工作由 Claude Code 完成,人类负责指导和复核。
同时运行《漫威蜘蛛侠:重制版》与《蝙蝠侠:阿卡姆骑士》,将哥谭碰撞数据传入蜘蛛侠的物理世界,再将其渲染画面合成到阿卡姆中。这是实验性的运行时桥接,并非恢复出的独立游戏或新引擎。
重建 Perfect Dark 的 Nintendo 64 代码,并提供生成一致 ROM 的构建流程。项目将重建源码与使用者自备原 ROM 中的素材结合,再检查各版本产物的哈希。这是可复现构建研究案例,与独立的原生 PC 移植不同;此处的一致性结果仍为项目报告。
以固定版本的一致性反编译分支为基础,构建 Super Mario Sunshine 北美版的原生 PC 移植,并为图形、光盘、音频、输入和系统服务提供宿主平台层。该分支的 README 称,其代码的重建与匹配大量借助 AI;移植项目记录了脚本化回归哈希,以及与原版捕获数据的逐步对照。尚未匹配的函数仍可能与原版行为不同,游戏数据须来自使用者自己的光盘镜像。
依据游戏内信息和静态或动态分析,为《塞尔达传说:姆吉拉的假面》重建 C 源码库,并重新构建美版 Nintendo 64 ROM。构建流程从使用者自备的 ROM 中取得素材和汇编,再用仓库保存的 MD5 校验输出。团队声明不会制作 PC 移植;另行收录的 Zelda 64: Recompiled 只注明借用了其头文件和部分函数。
将 NVIDIA DLSS 5 库中的神经渲染网络重新实现为面向 AMD RX 9000(RDNA4)显卡的 Vulkan 计算着色器,并通过兼容 NGX 的核心模块以及 ReShade 或 Vulkan 层等途径提供给游戏。项目不分发权重:安装程序从使用者自己的 nvngx_dlssnr.dll 310.9.16 或 310.8.0 中提取权重并核对哈希。项目将输出与 NVIDIA DLL 在 RTX 5090 上的结果对比,报告画面接近但并非逐位一致。
以 C++ 重新实现《塞尔达传说 旷野之息》Switch v1.5.0 主程序的部分代码,并逐个函数与原始机器码比对。项目自称是反编译与重新实现的混合体:不含游戏素材,生成的 ELF 仅包含已重新实现的函数、无法运行游戏,移植到其他平台也明确不是目标。
以使用者自备的 NTSC-U 1.0(SOUE01)光盘文件为起点,为《塞尔达传说 天空之剑》Wii 版的 main.dol 和 REL 模块重建 C++ 源码。标为一致的对象由源码编译,再与从原文件拆分出的其余对象链接,并以 SHA-1 哈希校验结果;仓库不含素材或汇编,也不是移植。
以改编自 zeldaret/mm 反编译的源码为基础,构建《塞尔达传说:姆吉拉的假面》的原生 Windows、Linux 和 macOS 版本,并由 libultraship 重新实现 N64 SDK 函数。游戏数据来自使用者自备的 ROM,打包为可被自定义素材包覆盖的存档文件。它面向带增强功能的可玩 PC 移植,而不是逐字节一致的 ROM。
以《时之笛》反编译项目的源码为基础,将游戏构建为原生 PC 程序,用 libultraship 替代 N64 的 libultra SDK,并以 DirectX 11、OpenGL 或 Metal 渲染。不随附游戏素材,而是从使用者自备的受支持 ROM 转换生成 .o2r 归档;移植版还加入了即时存档、替换与自定义素材等增强功能。
依据游戏内信息和静态或动态分析,为《塞尔达传说:缩小帽》重建 C 源码库,可构建美版、欧版、日版及两个演示版共五个 Game Boy Advance ROM。每个版本的素材都来自使用者自备的原始 ROM,常规构建会核对产物的 SHA-1 哈希。项目仍在进行中,ROM 的部分内容可能尚不能移动。
借助游戏本身的信息以及静态与动态分析,为《时之笛》重建 C 源码库,可重新构建 Nintendo 64、GameCube 和 iQue Player 共 16 个 ROM 版本。素材取自使用者自备的 ROM,默认构建会以对应版本的 MD5 校验;README 说明项目不制作 PC 移植,并仍称仓库处于开发中。
依据运行覆盖率和递归下降反汇编 Star Fox 的 65816 与 SuperFX 代码,重新汇编出与原 ROM 一致的文件,再静态翻译为 C,运行于从零编写的 SNES 运行时,支持 Windows、macOS 和 Linux。录制会话中未执行到的代码,以及与 ROM 不再一致的 RAM 代码,回退到解释器执行;README 报告两条路径的逐帧哈希一致。生成的 C 是机械翻译而非手工反编译的源码,结果仍为项目报告。
从以运行覆盖率为种子的 65816 与 SuperFX 反汇编重建 Star Fox 2:反汇编可重新汇编为与原 ROM 一致的文件,再静态翻译为 C,生成原生 Windows、macOS 和 Linux 版本。未执行到的代码及与 ROM 不一致的 RAM 代码由解释器执行,README 报告其与解释运行的逐帧哈希一致。项目接受 SNES Classic 版映像,不支持 1995 年的原型版;结果仍为项目报告。
依据运行覆盖率和递归下降,反汇编 Sonic CD 光盘上的全部可执行文件并逐字节一致地重新汇编,再将代码静态翻译为 C,运行于从零编写、以高层实现替代 BIOS 的 Mega-CD 运行时。重编译代码块只在内存仍为其来源代码时执行,并有脚本以 96 段关卡运行逐帧对照解释器。项目还以补丁加入宽屏和逐区存档;结果仍为项目报告。
将 Virtua Fighter 2 Version 2.1 的 Sega Model 2A i960 程序恢复为可移植、非一致性的 C17 代码,每条恢复路径须在受控边界上与参考 i960 执行器一致才被接受。仓库还提供 ROM 校验、i960 与 68000 分析工具、有限范围的 Model 2A 硬件模型,以及基于快照的差分运行器。README 说明它尚不是可游玩的移植;对战流程、格斗、物理、AI、光栅化及大部分音频仍未完成。
以 Rust 重建 NES 游戏《塞尔达传说 II:林克的冒险》,逐个替换游戏的 6502 例程,可运行于桌面、浏览器和 Android。内置解释器仍执行使用者的 ROM,并把已移植例程交给 Rust 实现;验证工具将 RAM、精灵、调色板和画面与参考模拟器逐帧比较。它是参考社区反汇编、以行为为准的类净室重建,而不是反编译,也还不是独立完整的引擎。
基于反编译源码构建原生 Super Mario 64 可执行文件,在 n64decomp 重建成果的 sm64-port 分支之上,增加渲染器、输入、视角、存档格式和外部数据等选项。游戏素材在构建时从使用者自备的 ROM 中提取。这是非一致性的增强移植,而不是逐字节一致的 ROM 重建。
将反编译风格的游戏源码编译到 libultraship 平台库上,把 Super Mario 64 构建为原生 PC、Switch 和 Android 程序。附带的提取工具会在首次启动或构建时,把使用者自备的美版或日版 ROM 转换为 O2R 存档。项目提供现代渲染器、配置菜单和模组存档加载,而不是生成一致的 ROM。
重建 Super Mario Sunshine 的 C++ 源码,目标是让原版 Metrowerks 编译器为四个 GameCube 发行版本及 Switch 版 3D All-Stars 生成逐字节一致的目标文件。目标二进制取自使用者自备的光盘镜像,objdiff 按函数比对重建出的目标文件。工作尚未完成,仓库在人工流程之外还发布了面向 AI 智能体的贡献规则。
以 zeldaret/tp 反编译项目和 Aurora GameCube/Wii 兼容层为基础,将《塞尔达传说 黄昏公主》重新实现为桌面与移动平台的原生应用。程序读取使用者自备的光盘镜像运行,不附带任何素材;项目力求忠于原作,同时加入新选项、增强功能和模组。
Metaforce 于 2015 年作为《密特罗德 Prime》引擎的逆向重实现项目启动,现已在 PrimeDecomp 一致性反编译之上重写。其原生应用借助 Aurora GameCube 兼容层,将这些游戏代码以非一致模式编译为桌面和移动端程序,并读取使用者选择的光盘镜像。README 表示重写稳定之前暂不提供构建版本。
将 doldecomp 的 Super Mario Sunshine 反编译工作扩展到北美 GMSE01 版本。README 称大量使用了 AI,仓库中的智能体规则、工作顺序和进度文件也记录了按批次编排 Claude 与 Codex 的方式。项目报告重建的 DOL 逐字节一致,但尚未完成的目标文件仍取自使用者光盘中提取的代码。
使用 N64Recomp 将美版 Nintendo 64《大金刚 64》静态重编译为原生移植版,并以 RT64 作为渲染器。该移植并非基于反编译源码构建,但借用仍在进行中的 DK64 反编译项目的头文件和部分函数来实现补丁与增强。其重编译配置读取仓库内的符号转储和 ROM,而非反编译生成的 ELF。
重建《塞尔达传说 黄昏公主》的源码,使其能重新编译出与原版一致的二进制文件;GameCube、Wii 与 Nvidia Shield 各版本通过条件编译共用同一套代码。README 报告 GameCube 版代码已完全一致,但尚未链接全部翻译单元,调试版与 Wii 版的对齐仍在进行;仓库不含素材或汇编,也不会制作移植。
从《恶魔城 月下夜想曲》的 PlayStation、PSP 和 Saturn 版二进制重建 C 源码,目标是逐字节编译出与原游戏文件一致的产物。这一进行中的构建将已反编译代码与从使用者自备光盘镜像提取的素材和汇编结合,再按版本检查 SHA-1 哈希。同一仓库中的原生 PC 实验被文档说明为尚未完成,并不是已发布的移植。
将 LEGO Island 反编译源码改造为可在桌面、移动设备、游戏主机、DOS 及 Web 上构建的移植版本。项目以 SDL3、miniaudio、iniparser 和自行重新实现的 Direct3D Retained Mode 替代仅限 Windows 的子系统,并力求保持核心玩法不变。它移植的是重建源码,而不校验与原版逐字节一致的二进制文件,因此有别于精确重构建的反编译案例。
将 PlayStation 版《古惑狼》的原始游戏代码逐函数移植为 C 语言;其编码规范要求为函数标注原实现的地址。目前只有基于 OpenGL、SDL2 和 FluidSynth 的 PC 构建可用;它读取用户自备游戏光盘中的素材文件,仅能部分游玩。
将 PrimeDecomp 对《密特罗德 Prime》游戏与引擎代码的反编译结果编译为原生 C++20 程序,支持 Linux、Windows 和 Android,另有实验性 macOS 版本。Aurora 提供 GameCube SDK 兼容层和渲染,移植版在运行时读取使用者自备的光盘镜像。作者声明部分代码是在其监督下借助 AI 编程助手编写的。
为《塞尔达传说 风之杖》GameCube 版的可执行文件和 REL 模块重建源码,涵盖美版/韩版、PAL 版、日版及日本体验版。已匹配的单元由源码编译,再与从使用者光盘中拆分出的对象链接,并按各版本的 SHA-1 哈希校验;仓库不含素材或汇编,范围是 GameCube 版而非 HD 重制版。
以 C 重建《索尼克狂欢》的游戏代码,并与另行反编译的 RSDKv5 或 RSDKv5U 引擎一起构建,支持 Windows、Linux、Switch 和 Android。素材必须来自官方发行的 Sonic Mania (Plus);项目加入了模组加载器,并可构建多个零售版本。其许可证称代码大多在功能上与原作相同,而不是逐字节一致。
使用 RecompOne 重编译器及运行时,将北美版 PlayStation《MediEvil》静态重编译为 C# 代码。运行时代为提供 BIOS、GPU、CD-ROM 等硬件服务,项目补丁则修改渲染、宽屏和地形表现。README 强调这是重编译而非反编译,并将其标为公开测试版。
一个 Windows 启动器,借助 PSXRecomp 重编译器与运行时,将用户自备的《古惑狼 2》光盘转换为 C 代码并在本地编译,使游戏以原生代码配合模拟的 PlayStation 硬件层运行。仓库包含启动器、打过补丁的内置运行时以及详细的调试记录,不分发任何游戏代码或数据。
将 Super Mario Galaxy 的 Wii 代码重建为 C++,并以使用者从自有日版、北美版、PAL 版或韩版光盘中提取的 main.dol 为目标,逐个目标文件重建。已匹配的目标文件由源码链接,并通过 objdiff 和目标哈希检查。项目自称仍在进行中,与任何 PC 移植无关,并表示不接受 AI 生成的反编译代码。
将《塞尔达传说 风之杖 HD》Wii U 版的 PowerPC 代码预先静态重编译为 C,原生重新实现游戏所用的 Cafe OS 库,并在 Metal 或 Vulkan 上实现 GX2 图形,生成无需 Cemu 运行时的 macOS、Linux、Windows 和 Android 原生版本。所有游戏代码和数据都由使用者自己的转储在本地生成;另有仅限 macOS 的实验性构建,可改为运行独立的 ZeldaWWHDDecomp/wwhd 反编译中的函数。
使用 N64Recomp 将 Nintendo 64 版 Castlevania 美版 1.0 静态重编译为原生 PC 移植,并以 RT64 渲染。游戏专用的 C 补丁基于另一个 Castlevania 64 反编译项目的头文件构建。在所审提交上标记的测试版发布报告构建可用并列出已知问题,而同一提交的 README 仍称项目尚未完成。
重建 Retro Engine(RSDK)v5 及 v5 Ultimate 运行时,即运行《索尼克狂欢》游戏代码的引擎,可构建 Windows、Linux、Switch 和 Android 版本。RSDKv5U 还能运行 RSDKv3 与 RSDKv4 游戏,例如 Sonic CD 和 Sonic 1 & 2。项目增加了模组加载器、着色器编译器和额外的 Windows 后端,且不附带任何游戏数据。
一个早期的 PlayStation《古惑狼 2》逆向工程项目:把引擎的 MIPS 机器码直接转换为一个体量巨大的 C 文件,并调用改造后的 PCSX-R 模拟器库处理硬件 I/O。转换出的函数计划逐个手工反编译为普通 C 代码,逐步替换机械转换的部分。
将美版 PlayStation《MediEvil》逐步反编译为 C 源码,目标是重新生成其主程序、游戏程序及 26 个覆盖模块。splat 拆分使用者自备的光盘文件,默认构建会将全部 28 个产物与 SHA-1 校验值比较。README 称项目仍在进行中,未公布进度数据。
使用 N64Recomp 将美版 Nintendo 64《Conker's Bad Fur Day》静态重编译为基于 N64ModernRuntime 和 RT64 的原生 Windows、Linux 与 macOS 移植版。函数名称与边界来自仓库内置、仍以汇编为主的反编译项目,而重编译的代码取自用户的 ROM,因此尚未匹配的反编译 C 代码不会改变游戏行为。作者称整个项目大量使用了 Claude Code。
将 PlayStation 2 版《Sly Cooper and the Thievius Raccoonus》美版重建为 Windows 和 Linux 上的原生 C++ 游戏,运行时使用从玩家自有光盘镜像中提取的数据。README 报告整部游戏均可游玩,同时仍在改进准确性并处理与原版的剩余差异。项目未说明其逆向工程方法,也未说明与另一个 sly1 反编译项目的关系。
Eric S. Raymond 将 Eben Sprinsock 于 1985 年发布的 DOS 共享软件游戏 Firefighter 移植为终端游戏。项目历史记载,ChatGPT 5.5 先将 DOS 二进制反编译为 Borland Pascal,再译为 Rust;之后 Raymond 改进了界面,并修正一处计分不符。玩法未变是作者的说法;中间 Pascal 代码及任何对照运行均未公开。
将 khdays-decomp 一致性反编译的 C 代码编译为 Windows x64 程序,并以原生平台层替代 Nintendo DS 硬件、SDK 服务及声音驱动。README 报告整款游戏无需 ARM 解释器即可运行;渲染、操作、模组支持与网络联机均为移植自身新增。这是基于反编译的移植,与其所依托的逐字节一致 DS 重建并非同一产物。
将 PlayStation 2 游戏《ICO》的反编译 C 源码原生编译到 Windows、Linux、Android、iPhone 及 Apple 芯片 Mac 上,并以宿主代码替代 PS2 硬件和 Sony 函数库。项目不解释执行或重编译任何 PS2 代码,程序在首次启动时读取玩家自备的 PAL 光盘镜像。它是另一个逐字节匹配的反编译项目的原生移植,记录了与原版的差异,并提供可选增强功能。
将《Sly Cooper and the Thievius Raccoonus》PlayStation 2 美版可执行文件 SCUS_971.98 重建为源码,属于进行中的一致性反编译。尚未匹配的函数仍由从使用者自备可执行文件中拆分出的汇编构建,构建会检查链接后 ELF 的 SHA-1。产物需在 PCSX2 中配合原版光盘素材运行,并不是原生 PC 移植。
为 Game Boy Advance 版《宝可梦 绿宝石》重建可构建的 C 源码,游戏脚本和数据以汇编指令形式保存。默认的 agbcc 构建生成 pokeemerald.gba,make compare 将其与英文原版 ROM 的 SHA-1 比对;可选的现代 GCC 构建不做哈希校验。图像和音频源文件已提交在仓库中,因此文档所述的构建流程不读取原 ROM。
将 Paper Mario 的 Nintendo 64 代码重建为 C 源码,可重新构建美版、日版、PAL 版和 iQue 版 ROM。构建流程从使用者自备的原 ROM 取得素材和比较输入,再将每个产物与记录的 SHA-1 比对。项目可变的进度报告显示已无未匹配函数,但 README 仍称反编译在进行中;该项目与 PaperBoat 原生移植不同。
将 Dragon Ball Z: Budokai Tenkaichi 3(PS2 美版 SLUS-21678)的反编译代码编译到 PC,运行在新的渲染、音频、输入和平台层上,而非借助模拟器。游戏代码来自独立的 BT3-Decompiled 一致性反编译项目,游戏数据从使用者自备的光盘镜像读取。README 报告完整游戏流程可运行、联网对战处于实验阶段,并称项目借助 AI 完成;这些结果仍为项目报告。
在 iPhone、iPad 和 Apple 芯片 Mac 上原生运行 Nintendo Switch 版自身的 aarch64 程序,仅改写依赖 Horizon 内核的指令,并以 Metal 提供其系统服务与 NVN 图形 API。着色器由使用者自有文件离线转译,项目另行加入触控界面与终局玩法。这是重新托管的兼容层,不是反编译或重编译出的源码。
为 2002 年《Ratchet & Clank》PlayStation 2 欧版 v2.00 可执行文件 SCES_509.16 重建 C 源码,每个函数都链接在零售版的原地址。尚未反编译的函数仍由从使用者自备可执行文件生成的反汇编构建,构建会对照零售版审核函数、布局和整个映像。项目记录了由 LLM 代理执行匹配的流程,并以成文的构建保真规则界定何为匹配。
使用 N64Recomp 将美版 1.0 Nintendo 64《Banjo-Kazooie》静态重编译为基于 N64ModernRuntime 的原生移植版,由 RT64 渲染并加入模组支持。与 Zelda 64: Recompiled 一样,它并非基于反编译源码构建;由《Banjo-Kazooie》反编译项目生成的符号仓库提供函数名称,用于在 ROM 中定位代码和编写补丁。
为 Game Boy Advance 英文版《宝可梦 火红/叶绿》重建可构建的 C 源码,游戏脚本和数据以汇编指令形式保存。默认的 agbcc 构建可生成六个 ROM 镜像,涵盖两款游戏的 1.0 与 1.1 版本及两个标为 switch 的变体,并分别按各自的 SHA-1 清单校验。图像和音频源文件已提交在仓库中,因此文档所述的构建流程不读取原 ROM。
以 pmret 和 Paper Mario DX 项目为基础,将 Paper Mario 反编译源码编译为基于 libultraship 的原生美版应用。Torch 把使用者自己的 ROM 转换为本地素材归档,移植另加入多种渲染后端、增强功能和归档式模组。桌面版已有正式发布;Android、iOS 和网页构建则在开发分支中有文档说明。
Halo 2(初代 Xbox)的进行中一致性反编译:贡献者编写 C 与 C++ 代码,由原时代编译器以链接时代码生成方式构建整个程序,须逐函数还原出零售版可执行文件的字节。README 报告游戏函数字节的匹配比例接近一半,原生移植留待后续阶段。项目披露维护者的大量工作在 Claude 与 Codex 编程智能体流水线中进行。
将社区重建 Diablo 原始源码的 Devilution 精简分支编译为 WebAssembly,并配合 React 前端,使 Diablo 可在网页浏览器中运行。该分支移除了 Storm、DiabloUI、DirectX 和 Windows 依赖,并为浏览器改写事件处理。这是基于重建成果的移植,本身未报告一致性或行为等价检查。
以 RGBDS 汇编重建 Game Boy 游戏《精灵宝可梦 红/蓝》,图像和数据以可编辑的源文件保存。同一源码树可构建美版/欧版红、蓝 ROM、一个蓝版调试构建以及 Virtual Console 版本的补丁,并逐一与记录的 SHA-1 比对。它是完整的反汇编项目,而非反编译为高级语言的源码。
一个面向 Windows、Linux 和 macOS 的《Banjo-Kazooie》原生移植,将游戏 C 源码(其中许多标注了《Banjo-Kazooie》反编译项目中的文件路径)与重新实现 N64 SDK 的 libultraship 一起编译。Torch 将用户的 ROM 提取为素材归档;移植版还加入了 Anchor 联机、ROM 修改版与语言包支持以及随机器。与 Banjo: Recompiled 不同,它基于反编译源码构建,而非对 ROM 代码进行静态重编译。
使用打过补丁的 XenonRecomp 工具转换 Lost Odyssey 的 Xbox 360 PowerPC 可执行文件,并在原生运行时上运行生成代码,经 Direct3D 12、Vulkan 或 Metal 渲染。Windows、Linux、macOS 和 Android 安装包导入使用者自己的光盘数据。维护者记录了借助 Claude Code 与 Codex CLI 的开发过程,并把每次发布与验证、验收分开记录。
Super Smash Bros. Melee 美版 1.02(GALE01)的一致性反编译:使用原版 Metrowerks 编译器从 C 代码重建 main.dol,并与零售版的 SHA-1 比对。decomp.dev 报告所审提交的代码已完全反编译并链接,README 称目前工作主要是命名与清理。由于构建可以移位,另有非一致性模式,供模组作者加入代码,再配合自己转储的光盘运行生成的 DOL。
以 RGBDS 汇编重建 Game Boy Color 游戏《精灵宝可梦 水晶》,图像、地图和数据以可编辑的源文件保存。同一源码树可构建国际版 1.0 与 1.1、澳大利亚版、两个调试构建以及一个 Virtual Console 补丁,并逐一与记录的 SHA-1 比对。配套文档说明脚本命令格式以及原版游戏中的已知错误。
以进行中的反汇编项目重建美版 Nintendo DS《宝可梦 心金/魂银》,其中部分代码已反编译为 C。每次默认构建都会按各游戏的 SHA-1 清单校验 ARM9 与 ARM7 二进制、文件系统及完整 ROM。README 提醒,由于反编译尚未完成,改变代码或数据布局的修改可能导致游戏崩溃。
基于 JRickey 的 gba-recomp 工具链,将使用者自有的 Final Fantasy Tactics Advance(美版)Game Boy Advance ROM 预先重编译为可在 Windows、Linux 和 Steam Deck 上运行的原生代码。ARM 与 Thumb 代码被转译为 C 并在本地编译,Rust 运行时则模拟主机的图形、声音、DMA、定时器及 BIOS 调用。移植另行加入宽屏、缩放、快进和可重映射操作。
使用 BlackLabelHQ 的 RecompOne 将北美 PlayStation 版《恶魔城:月下夜想曲》静态重编译为 C#;其运行时模拟 BIOS、内存映射 I/O、GPU 和光驱,使游戏无需主机 BIOS 即可原生运行。按覆盖段划分的函数映射与补丁加入了宽屏、便利性改进、随机器和作弊功能。项目借助 SOTN 反编译项目的资料为函数命名,但强调它是重编译而非反编译。
使用随附的 xboxrecomp 工具包,将《The Lord of the Rings: The Two Towers》(Xbox 美版,2002)的 x86 代码静态重编译为 C,生成原生 Windows、Linux 及实验性 macOS 构建。重编译源码由玩家自己的 default.xbe 在本地生成,游戏数据来自其光盘镜像或已提取的文件夹。README 报告游戏可以完整游玩,并列出画面、帧率和模组方面的问题。
Super Smash Bros. Melee(NTSC 1.02)的 Windows 测试版构建,包含两套引擎:源码移植将 doldecomp 反编译编译为原生库,静态重编译则将零售版 DOL 的 PowerPC 代码及 Slippi 的 Gecko 代码转换为 C++。两者都运行在原生运行时上,提供 Direct3D 渲染、解锁的显示帧率和原生实现的 Slippi 回滚对战。全部游戏数据来自使用者自备的 ISO,README 称开发借助了 AI。
以 C 源码重建 Game Boy Advance 游戏《精灵宝可梦 红宝石/蓝宝石》,使用 pret 的 agbcc 编译器构建,并附有汇编数据脚本和可编辑图像。一致构建涵盖英文版 1.0、1.1、1.2 修订版、调试构建以及德文初版,并逐一与保存的 SHA-1 比对。另有使用现代 GCC 的构建目标,不以一致为目标。
以 shao113 的 PlayStation 版 Vandal Hearts 一致性反编译为基础,新增日版一致性代码树,并将两者延伸为原生 Windows 与 Linux 移植。SDL2、OpenGL 或 Metal 及 OpenAL 后端替代主机的 GPU、GTE、CD-ROM/XA、SPU、MDEC 和手柄接口,同一可执行文件可运行美版、亚洲版和日版光盘。每次修改仍须通过一致性构建检查;Tactical Mode、高清包等 PC 专属功能均为可选。
将美版 Nintendo DS《宝可梦 白金》重建为 C 源码,默认重建修订版 1,也可按需构建修订版 0。默认的 make 目标会运行 Meson 检查,按 SHA-1 清单校验代码二进制、文件系统及完整 ROM。README 仍称项目在进行中;贡献指南表示代码已全部为 C,但其中大量仍晦涩难懂,因此主要工作是文档和工具。
Saints Row(Xbox 360,2006)的非官方原生 Windows 移植:借助 ReXGlue SDK 将游戏的 PowerPC 可执行文件静态重编译为面向 x86-64 的 C++ 代码,该 SDK 还重新实现了主机的内核、GPU(基于 Direct3D 12)、音频与输入。重编译清单、游戏专用的函数替换和 SDK 补丁使结果得以运行,每位使用者都用自己的光盘在本地构建。README 报告游戏可完整通关、内置合作模式,并列出已知问题。
基于 pret 反编译项目的分支,为《宝可梦 白金》构建原生 64 位 Windows 和 Linux 可执行文件,并以作者的 libntr 库替代 NitroSDK;同一源码树仍保留 DS ROM 构建和实验性的 Switch 目标。README 称游戏应可从头玩到尾,但可能出现崩溃和图形错误。预构建程序需要玩家自备美版 ROM,且该分支的默认构建不再运行 pret 的校验测试。
将 PS2 游戏 Fatal Frame(《零》)移植为无需模拟器的原生 PC 版本;仓库简介称其基于 Himuro 反编译项目。PS2 内核调用由桩函数替代,渲染、音频和界面由基于 SDL3 的新层实现,游戏数据则来自使用者自有的光盘。README 称移植仍处于很早期阶段,未发布一致性或还原度检查。
使用 N64: Recompiled 将 Nintendo 64 版 Star Fox 64 美版 1.1(Rev A)静态重编译为面向 Windows、Linux 和 macOS 的原生移植,并以 RT64 渲染。补丁与增强功能借用独立的 sf64 反编译项目中的头文件和部分函数,但移植本身并非由该反编译源码编译而成。README 报告支持高帧率、宽屏与模组,素材从使用者自备的 ROM 载入。
将 Syphon Filter: The Omega Strain 北美版 PlayStation 2 可执行文件的大部分代码重建为 C;其余函数保留为拆分出的汇编,整体构建可逐字节重现零售版 SCUS_972.64。仓库提交的 objdiff 报告以使用者自备的可执行文件为基准,追踪逐函数的匹配进度。这是一致性反编译案例,不是 PC 移植;进度数字仍为项目报告。
让 Animal Crossing 反编译所得的 GameCube C 代码在 32 位 x86 上原生运行,用转换层把 GX 图形 API 映射到 OpenGL 3.3,并以基于 SDL2 的平台代码替代主机服务。游戏素材在启动时从使用者自己的光盘镜像读取,不随项目分发。这是基于 ACreTeam ac-decomp 的移植,而非与原可执行文件一致的重建。
将 GoldenEye 007 的 Nintendo 64 代码重建为 C 源码,可重新构建美版、日版和 PAL 版 ROM。素材取自使用者自备的美版 ROM,日版与 PAL 版的差异部分则取自各自的 ROM;默认构建会将每个产物与记录的 SHA-1 比对。README 仍称项目在进行中,而可变的状态页报告全部 208 个文件已完成;它与另行收录的 PC 移植不同。
Star Fox 64 的原生 PC 移植:将游戏的反编译 C 代码与 libultraship 一同编译,该 N64 移植库重新实现了 libultra,并通过 Fast3D 渲染。首次运行时借助 Torch 工具把使用者的美版 ROM 转换为素材资源包,提供 Windows、Linux、macOS 和 Switch 版本。独立的静态重编译项目 Starfox 64: Recompiled 在其 README 中称本移植为采用不同技术的姊妹项目。
在 Crash Team Racing: High Octane 移植版基础上扩展而成;High Octane 源自基于 CTR-ModSDK PlayStation 反编译成果的 CTR Native 移植。本分支面向 Windows 与 Linux,提供原生 3D 渲染器、可选画面比例及最高 240 FPS 帧率。反编译游戏代码仍假定 32 位指针,并从玩家自备的 NTSC-U 光盘镜像读取素材。项目附有渲染、计时和选项测试,但设备覆盖与还原度仍为项目自述。
使用打过补丁的 XenonRecomp 将 Xbox 360 可执行文件提前转换为 C++,构建 The Darkness 的原生 Windows x64 移植。D3D11 渲染器直接使用引擎原有的几何数据、着色器源码和设备状态绘制,而不解释主机 GPU 命令包。游戏覆盖范围与 Linux 测试结果均为项目报告,作者披露开发中使用了 OpenAI Codex 辅助。
使用 N64Recomp 将北美版 Nintendo 64《马力欧卡丁车 64》静态重编译为 Windows、Linux 与 macOS 原生应用,并通过 RT64 渲染。README 将其与源码移植区分开:游戏代码由使用者提供的 ROM 转换而来,反编译分支中的头文件和部分函数用于实现补丁与增强。增强功能、还原度和输入延迟等说法均为项目自述。
将 Animal Crossing 的 GameCube 代码重建为 C 与 C++ 源码,可重新构建美版的主可执行文件及 foresta.rel 模块。基于 dtk-template 的构建从使用者自备的光盘镜像读取原始二进制与素材,再用 SHA-1 哈希校验两个产物。另有原生 PC 移植以它为基础;此处的完成度数字仍为项目报告。
将 Nintendo DS 欧版《王国之心 358/2 Days》的 ARM9 程序及覆盖模块重建为 C 源码,以 CodeWarrior 重新编译后逐字节一致。README 报告全部 306 个模块字节一致,约 99.5% 的函数为真正的 C,库自身的汇编另行统计;ARM7 二进制不在范围内。仓库不含 ROM、游戏素材或提取的反汇编,也不生成可玩版本。
从一个仍在进行中的零售版可执行文件一致性反编译项目派生分支,将 Tony Hawk’s Pro Skater(PlayStation 美版)移植为原生 Windows 与 Linux 程序。反编译部分用 Psy-Q 工具链重新编译已重建的函数,并与使用者自备的零售可执行文件逐字节比对;移植部分则以 SDL2 和 OpenGL 服务取代 PlayStation 硬件和库。运行需使用者自备光盘镜像;一致性与可玩性结果仍为项目报告。
在新的 Vulkan 引擎上用 C++ 重新实现 P.T. 的游戏逻辑,运行时从使用者自有的 PS4 版本读取关卡、模型、贴图、声音、脚本和过场动画。作者记录了逆向得出的文件格式,并以 shadPS4 模拟器作为行为与画面的对照参考。与原作的一致程度为作者报告,项目也披露使用了 AI 编程工具。
基于沿用《马力欧卡丁车 64》反编译项目文件结构的源码,构建适用于 Windows、Linux、macOS 和 Switch 的原生移植,运行在 libultraship 重新实现的 N64 SDK 之上。随附的 Torch 提取器将使用者自备的美版 ROM 转换为素材归档,移植还增加了模组、自定义赛道和编辑器。README 未写明其上游反编译项目,也未发布一致性或还原度检查。
将 Animal Crossing: Wild World 韩版 DS 游戏的 ARM9 游戏代码重建为每个函数一个 C 或 C++ 源文件,并用原版 Metrowerks 编译器和链接器对照使用者自己的 ROM 校验。每个函数另有可读的 Clean 改写版本,仓库自带的 DS 解释器在录制的游玩过程中比较 ROM 代码、原生编译的源码和改写版本。数据段、ARM7 程序、链接的 SDK 库及按原始源文件重新归组仍不在重建范围内。
借助 ReXGlue 静态重编译 SDK,将 Xbox 360 版 Peter Jackson's King Kong 转译为原生 Windows 代码,并加入启动器以及显示、操控和图形选项。项目代码按主机的方式完成流式光盘读取;README 称这使游戏越过了在 Xenia 中出现的开场卡死。作者披露,该移植几乎完全由 Claude Code 完成,仓库所有者负责指导和测试。
将 Mario Party 4 的 GameCube 主程序和 REL 模块重建为 C 源码,可重新构建两个美版发行版本。构建会分析使用者自备的光盘镜像,并按各版本的 SHA-1 清单检查每个链接产物。欧版和日版工作已停滞,也尚无 PC 移植;此处的一致性结果仍为项目报告。
使用打过补丁的 XenonRecomp 将 Xbox 360 版《极品飞车:最高通缉》(2005)的可执行文件转换为原生 C++,并在项目自建的运行时上执行,由运行时代替主机的内核、Xenos GPU、XMA 音频和控制器。发布版面向 SteamOS、Linux 和 Apple 芯片 Mac,另有实验性的 iPhone 与 iPad 版本,所有游戏数据均来自玩家自有的美版光盘。渲染与帧节奏方面的改进均为项目自述。
逐字节重建 The Sims: Bustin' Out 的 Game Boy Advance 美欧版,并逐步用 agbcc 编译、结果一致的 C 代码替换 ROM 区域。README 称这是由 AI 驱动的实验,几乎所有代码、分析与工具都由 AI 生成。ROM 的大部分仍从使用者的转储中复制,因此整个 ROM 一致并不代表游戏已完成反编译。
一份注明版本日期的研究报告,记录已归档 Destiny 2 build 86657 客户端的 Sunrise/Dawn 重建:在本地模拟平台登录与所考察的 Bungie 服务契约,并补充重建的任务主机策略。报告把传输、解码、对象创建、呈现与游戏玩法结果分开记录,并连同所引来源保留已被推翻的结论。它记录案例本身,不提供运行时实现,也不是恢复出的 Bungie 后端;通关与原生实验结果仍为项目报告。
借助 ReXGlue 将 WWE SmackDown vs. Raw 2011 的 Xbox 360 可执行文件提前转换为 C++,并在源自 Xenia 的 Vulkan 运行时上构建为 Windows 程序。手工维护的清单补充自动分析遗漏的函数入口,项目补丁则处理帧节奏、音乐播放器延迟和渲染管线卡顿。作者仅在一款 AMD GPU 上测试了表演赛等模式;生涯模式与在线功能仍未测试。
使用 N64Recomp 将 Pokémon Snap 美版 Nintendo 64 发行版静态重编译为原生 Windows、Linux、Steam Deck 和 macOS 移植,由 RT64 负责渲染。重编译器读取从一致性 ethteck/pokemonsnap 反编译项目链接出的可重定位 ELF 及使用者自备的 ROM,游戏侧补丁则是反编译函数的修改副本。作者报告借助 Claude Code 完成移植;各项结果仍为项目报告。
使用打过补丁的 XenonRecomp 静态重编译 Xbox 360 代码,并用打过补丁的 XenosRecomp 转换着色器,为 XBLA 游戏 Dead Rising 2: Case Zero 构建可在 Windows、Linux、Steam Deck 和 Apple Silicon Mac 上运行的原生移植。专门编写的运行时提供 Vulkan 渲染器、XMA 音频、键鼠输入,以及通过作者的 XenonLive 服务实现的在线合作。通关情况与各平台结果均为项目报告。
为早期 Westwood 即时战略游戏提供以 C# 编写的引擎,并以模组形式重新诠释 Command & Conquer: Red Alert、Tiberian Dawn 和 Dune 2000。它通过自己的文件系统、MiniYAML 规则和 Lua 任务层加载原游戏内容,而不是运行或恢复 Westwood 的代码。玩法和界面有意遵循 OpenRA 自身的设计,因此并非对原可执行文件的忠实重现。
使用打过补丁的 XenonRecomp 静态重编译 Xbox 360 代码,并用打过补丁的 XenosRecomp 转换着色器,为 XBLA 尾声篇 Dead Rising 2: Case West 构建可在 Windows、Linux、Steam Deck 和 Apple Silicon Mac 上运行的原生移植。它与作者另一个 Case Zero 移植共用大部分运行时,在 Vulkan 上执行主机 GPU 命令流,并提供 XMA 音频和键鼠输入。通关情况与各平台结果均为项目报告。
借助固定版本的 psxrecomp 分支,将这款 PlayStation 游戏的 MIPS 代码转换为 C,并基于其模拟硬件行为的运行时构建 Windows 与 Linux 程序,另附启动器和专用插件。插件在不修补游戏代码的前提下,实现比赛中的 16:9 画面、通过提高模拟 CPU 频率并修正移动量达到 60 FPS、跳过片头及全部解锁。需使用者自备 NTSC-U 光盘镜像;测量结果为作者报告。
以 C++ 引擎重新实现原本用 x86 汇编编写的 RollerCoaster Tycoon 2,并在原游戏数据上运行。它可载入 RCT2 存档和场景,具备相应文件时也能载入 RCT1 场景,而保存时使用自己有文档说明的乐园格式。现代平台支持、界面与 AI 改动、更高上限和多人游戏都是有意扩展,并非对原版的复现。
为 Touhou 6:东方红魔乡 1.02h 版的 Windows 可执行文件重建 C++ 源码,目标是用原版 Visual Studio .NET 2002 与 DirectX 8 工具链精确重新构建。reccmp 和 objdiff 将重建的二进制与使用者自备的原可执行文件逐函数比较。仓库内的进度徽章报告函数已全部实现、字节准确率为 98.03%,因此不主张整个二进制完全一致。
将 Driver(PlayStation 美版)的 psxrecomp 静态重编译项目打包为“安装宿主”:发布包含重编译器、运行时和 recomp-ui 启动器,再由玩家电脑依据使用者自备的光盘镜像生成并编译游戏。仓库只包含配置、来自 Ghidra 的函数种子和发布自动化脚本,不含游戏代码。文档记录的状态较为有限:维护者确认一个私有构建可以进入游戏,而发布包的验收门槛仍未完成。
将 Fatal Frame(《零》)PS2 可执行文件的美版、欧版和日版重建为 C,使用原始的 EE-GCC 2.9 工具链构建,并以使用者自备可执行文件的 SHA-1 校验结果。仓库提交的 objdiff 报告显示美版和欧版代码已全部匹配、日版仅部分匹配,少数例程仍依赖汇编或字节补丁。移植到现代硬件是项目声明的后续目标,不在本仓库范围内。
借助 xboxrecomp 的分支将原版 Xbox《Dead or Alive Xtreme Beach Volleyball》可执行文件提升为 C 代码,并与手写运行时链接,由运行时替代内核导入、音频以及关键的 Direct3D 8 和 DirectSound API。安装程序依据使用者自有的美版光盘镜像在本地构建运行程序,并按经认证配方中的哈希校验生成文件;发布包只含工具和源码。将游戏逻辑改写为可读源码的工作目前只完成了启动线程入口。
使用 Emscripten 将日版 Touhou 8 1.00d 的重建 C++ 源码编译为 WebAssembly,并在游戏原有的 D3D8、DirectSound 与 DirectInput 形态接口之后接入 WebGL 2 渲染、Web Audio、浏览器输入和 IndexedDB 存档。玩家在本地选择自备的正版 DAT 文件。网页构建不主张与原二进制逐字节一致,是独立于已收录 TH08 重建的移植。
以 C++/SDL 引擎重新实现 MicroProse 的 UFO: Enemy Unknown(X-COM: UFO Defense)与 X-COM: Terror from the Deep,并在使用者自己的原游戏资源上运行。物品、飞行器、研究和任务等游戏数据以 YAML 规则集表达,这些规则集也承载其标准模组及更广泛的模组生态。这是复用原内容的克隆实现,而非恢复出的 MicroProse 代码。
借助 ReXGlue SDK 的 Skate 专用分支,将 Xbox 360 版《Skate 3》重编译为 Windows、Linux 与 macOS 原生版本。自 v2.0.0 起,基于 Direct3D 12 和 Vulkan、移植了游戏自身材质着色的原生渲染器取代对 Xbox 360 GPU 的模拟,模拟渲染器保留为后备。游戏文件来自使用者的光盘镜像;作者称原生渲染器尚处早期,且尚未完整测试整个游戏。
在 Windows 上原生运行 PS4 版《神秘海域:内森·德雷克合集》自身的 x86-64 可执行文件:由运行时提供 PS4 系统库,并以源自 shadPS4 的 Vulkan 渲染器执行 GPU 工作。该移植提供按游戏保存设置的启动器、分辨率补丁与现代超分辨率技术,其状态表报告三部游戏均可游玩,并列出未解决问题。这是兼容运行时移植而非反编译重建,结果仍为项目报告。
为日版 Touhou 9.5:东方文花帖 1.02a 原可执行文件重建源码;只有使用固定版本 Visual C++ .NET 2003 构建、并与单一经哈希核验的目标进行可复现字节比较后,才认定函数级一致。整个程序也能编译链接为可游玩的 Windows i386 可执行文件,而 README 将可玩性、函数匹配与整个可执行文件一致性列为相互独立的状态。
重新实现 Bullfrog 1997 年游戏 Theme Hospital 的引擎:游戏逻辑以 Lua 编写,图形、声音、影片和寻路由 C++ 处理,并建立在原游戏数据文件之上。README 报告完整战役已可通关,列出仍缺失的功能,并加入高分辨率和地图编辑器等扩展。它在原内容上重现游戏行为,而不是恢复 Bullfrog 的源码。
以原生 macOS 应用重新实现 Rise of Nations: Extended Edition 引擎,包含 Metal 渲染器、确定性模拟、电脑对手,以及兼容的 BigHugeScript 编译器与虚拟机;美术、地图、规则和脚本均从使用者自有的 Windows 版安装目录读取。项目依据对带调试符号的可执行文件进行 Ghidra 研究后撰写的子系统规范及 JavaScript 参考工具,在大量使用 Claude Code 的情况下编写 C++17 实现。该早期版本可游玩教程与场景,其逐位一致性检查仍为项目报告。
为日版 PC-98 Touhou 4:东方幻想乡重建源码,并在 Wine 下用固定版本的 Borland 工具链重新构建全部四个 DOS 程序:MAIN.EXE、OP.EXE、MAINE.EXE 和 ZUN.COM。针对原二进制的函数认定,与在模拟器中对照原游戏比较输入、随机数、对象池和画面的回放分开记录。完整流程、原始时序与字节一致性目标仍未完成。
在 Windows 与 Linux 上原生运行 PS4 版《声名狼藉:次子》自身的 x86-64 代码:由运行时重新实现游戏所用的 PS4 系统库,并以源自 shadPS4 的核心将其 GPU 命令与着色器转换为 Vulkan。项目报告该移植可以游玩但仍在开发中,能进入游戏并通过最初几章,性能仍不稳定,也有尚未解决的图形问题。这是兼容运行时移植而非反编译重建,结果仍为项目报告。
以可移植的 C++ 引擎重新实现 BioWare 的 Aurora 引擎及其后续衍生版本,在使用者已安装的游戏数据上运行,目标涵盖从《无冬之夜》到《龙腾世纪 II》的九款游戏。资源管理、大量 Aurora 文件格式、图形和声音均已实现,所有目标游戏都能在可自由飞行的旁观模式下显示部分游戏内场景。README 说明尚未实现正常的游戏流程,因此这是一个早期阶段的引擎案例,而非可以替代原版游玩的实现。
以可移植的 C++ 库重新实现 RenderWare Graphics 中间件 API 的大部分内容,可读写其 PS2、D3D8、D3D9 和 Xbox 平台的 DFF 模型与 TXD 纹理文件,并旨在于各平台格式之间转换。场景由 Direct3D 9 和 OpenGL 后端渲染,PS2 渲染仅作为测试可用。README 称其用途是渲染 GTA 游戏;BSP 世界文件尚不支持。
为《超级马力欧 奥德赛》Switch 1.0 版主程序重建 C++ 源码,并用共享的 nx-decomp-tools 检查器逐个函数与原始 AArch64 机器码比对。在所审固定提交中,其函数清单将 74,171 个函数中的 18,996 个标为一致。README 提醒构建结果不是可游玩的游戏;仓库不含游戏素材,sead、agl 等任天堂库则来自 open-ead 另行维护的重建项目。
为 Nintendo 64 版《星际火狐 64》美版 1.1(Rev A)重建 C 源码;借助静态重编译运行的 IDO 编译器编译后,可重建出 MD5 与公布值一致的 ROM,README 徽章显示全部 2,951 个函数均已一致。构建时从使用者自备的 ROM 中拆分代码与素材,仓库本身不含素材或汇编。另行收录的 Starship PC 移植直接编译这份 C 代码,Starfox 64: Recompiled 则从中取用头文件和部分函数来编写补丁。
为《密特罗德 Prime》GameCube 版的可执行文件及其 NES 模拟器模块重建 C++ 源码,使 CodeWarrior 编译结果与原文件一致,涵盖美版、韩版、PAL 版与日版,另有针对体验版光盘和三个 Wii 版本的早期配置。已匹配的单元由源码编译,再与从使用者光盘中拆分出的对象链接,并按各版本的 SHA-1 哈希校验;仓库不含游戏素材或汇编。另行收录的 Metaforce 与 Metroid Prime Port 都在这份代码之上构建原生移植。
面向 Batla 3D 2015 年 Steam 客户端的 C# 服务端模拟器,涵盖账户、商店、房间 HTTP 服务与 Lidgren UDP 对战。项目包含客户端程序集补丁工具,协议文档区分了从客户端恢复的证据与模拟器自行选择的规则。
反编译 Retro Engine(RSDK)v4——《索尼克》与《索尼克 2》(2013)所用的引擎——以及两款游戏中以原生代码实现的菜单,可构建 Windows、Linux 与 Android 版本。引擎运行官方发行版数据文件中的游戏脚本,这些文件需由使用者自备。项目增加了脚本编译器、模组加载器,以及《索尼克 2》双人对战的实验性联网模式;它是同一团队 RSDKv5 反编译项目的前身。
以跨平台 C++ 引擎重新实现 Rockstar Games 的《侠盗猎车手 III》(2001),在正版 PC 游戏的数据上运行。项目自行实现了游戏 RenderWare 模型、纹理和归档的加载器,提供执行原版任务脚本的脚本机,并附带可选的 Qt 数据查看器。可玩程度有限:项目的任务追踪清单只将波特兰的六个早期剧情任务标为可完成。
以 Rust/Bevy 重建《使命召唤4》的多人游戏系统,使用本地游戏安装中的素材。源码包含菜单、本地机器人、移动和战斗,并将自定义中继联机实现接入游戏。
以 Zig 库重建《暗黑破坏神II》1.14d 的种子地图、物品生成、存档、模拟规则和网络格式。部分组件提供原生与 WebAssembly 接口;验证说明区分了原游戏地图对照与其他子系统较弱的证据。
将 Ultima Underworld I 与 II 的 DOS 源码重建与原生移植结合。上游记录了基于 Exhume 的字节匹配构建、例程级比较及对照 DOS 的录制会话回放。
为 1994 年 DOS 游戏的可移植 C 重建提供 SDL3 后端。构建配置将重建引擎接到视频、输入与音频适配层,上游记录了对照原始机器码的差分测试关卡。
记录美版 PlayStation 游戏的智能体辅助重建,使用固定编译器及完整二进制 SHA-1 检查。验证规约覆盖主程序、常驻引擎及光盘加载代码模块,并明确列出库与汇编例外。
原版 Nintendo 64 游戏 Snowboard Kids 的匹配反编译,利用使用者自备的 ROM 重新构建 SHA1 一致的北美版与日版 ROM。作者在 84 天复盘文章中介绍了通过自建的 Nigel 工具调度编程智能体,并结合 m2c、permuter 与共享编译器经验文件的流程,同时表示不应把提速完全归功于大模型。它与 Snowboard Kids 2 反编译是不同的项目。
Macabeus 在注明日期的研究文章中,介绍了如何把汇编、相似的已反编译函数和结构体放进提示词,让 Claude Sonnet 3.5 与 DeepSeek R1 为社区 Sonic Advance 3 GBA 反编译项目中的敌人模块 Marun 编写匹配的 C 代码。由此产生的拉取请求替换了该模块的汇编并已合并;作者认为这一场景对 AI 格外友好,而该项目现已不接受源自大模型的贡献。
以 C 语言重建 Pokéwalker 的固件。Pokéwalker 是《宝可梦 心金/魂银》配套的计步器配件,采用 Renesas H8/38606 微控制器。README 报告,使用从使用者自备的零售固件镜像中取得的美术素材及受支持的 Renesas 编译器套件,可重新构建出逐字节相同的 48 KiB 镜像;没有该镜像时,项目原创的占位美术只能生成不一致的参考构建。作者称其结合已公开的硬件研究,对零售二进制文件、心金/魂银 ROM 及候选编译器进行了反汇编和反编译。
Wii Menu(即主机的 System Menu,IPL)的反编译重建,仍在进行中,针对 4.3 版的美、欧、日、韩四个版本。项目重建菜单自身的代码,以及链接进其中的 Revolution SDK、NintendoWare(NW4R)、EGG 和中间件库,并借助 decomp-toolkit 与 objdiff 逐个编译单元与原可执行文件比对。仓库不含任何素材或汇编;构建需要使用者自己的 Wii Menu WAD,且只生成 main.dol。
反编译 sead,即 Nintendo 静态链接进其第一方游戏的 C++ 标准库,涵盖容器、堆、字符串、数学、文件设备、线程、游戏框架和图形等模块。编译期预设针对《旷野之息》《超级马力欧 奥德赛》《斯普拉遁 3》《王国之泪》和《超级马力欧兄弟 惊奇》所用的较新版本,《旷野之息》等游戏反编译项目以子模块方式引入它。命名来自零售游戏中的调试符号和断言,README 也提醒许多内联与模板函数的名称只是猜测。
将从 ROM 逆向得到的 C 代码与从使用者自备 ROM 中提取的素材和汇编结合,重建日版 Nintendo 64《动物之森》(どうぶつの森)。默认构建会用仓库保存的 MD5 校验未压缩与重新压缩的 ROM。README 明确该项目不作为移植基础,也不用于商业目的;decomp.dev 报告所审提交有 18.52% 的代码已匹配。
通过手工反编译,为《塞尔达传说 幻影沙漏》的欧版与美版 Nintendo DS 重建 C++ 源码:借助 dsd 工具集从使用者自备的 ROM 中拆分代码,再重新构建 ROM。objdiff 逐个函数跟踪匹配情况,默认构建会将输出 ROM 与仓库保存的 SHA-1 比对。项目仍处于早期阶段:decomp.dev 报告所审提交有 2.82% 的代码已匹配。
以 C++ 将 Mario Kart Wii 的物理引擎重新实现为命令行模拟器,延续 stblr/Hanachan 的目标:完全准确地回放计时赛幽灵记录。每个测试用例让引擎重放一条幽灵记录,并逐帧将赛车的位置、旋转、速度向量、速率和检查点状态与从原版游戏采集的轨迹比较。它只在行为层面重新实现物理部分,并非一致性反编译,也没有图形前端。
《马力欧卡丁车:双重冲刺!!》的进行中 1:1 反编译:用原版 Metrowerks 编译器从 C 与 C++ 源码重建美版调试构建(MarioClub_us)的 GameCube main.dol,并与仓库保存的 SHA-1 比对。构建从使用者自备的光盘镜像中拆分二进制,开发时用 objdiff 比对目标文件。decomp.dev 报告所审提交有 47.09% 的代码已匹配;欧版零售目标虽已配置,但标注为尚不可用。
将 Street Fighter Anniversary Collection 中《街头霸王 III:3rd Strike》的 PlayStation 2 可执行文件反编译为 C 源码,用当年的 Metrowerks 与 EE GCC 编译器重新构建,再将重建出的可执行文件与使用者自备的原文件逐字比较。README 报告游戏代码已全部反编译,CRI 中间件部分完成。另有独立的 3SX 原生移植,自称是本项目的延续。
一个以 C 语言逐个函数重新实现初代 Xbox 版 Halo: Combat Evolved 的研究项目。重写的函数编译为独立映像,再修补进使用者自备的原版可执行文件,并从原有实现重定向过去,使这一混合版本能在开发过程中于 xemu 或 Xbox 上运行和调试。项目自述仍处于早期阶段,其来源也未记录与原代码的逐字节比较。
《纸片马力欧 RPG》(Paper Mario: The Thousand-Year Door)的进行中一致性反编译,目标为日版 Rev 0 GameCube 版本(G8MJ01):用原版 Metrowerks 编译器重建 MarioSt.dol 和 31 个 REL 模块,并逐一与仓库保存的 SHA-1 比对。构建从使用者自备的光盘镜像中拆分这些二进制,开发时用 objdiff 比对目标文件。decomp.dev 报告所审提交有 12.10% 的代码已匹配。
延续 3s-decomp 的 PS2 反编译成果,将《街头霸王 III:3rd Strike》构建为可在 Windows、macOS 和 Linux 上运行的原生 C 程序,以 SDL3 处理画面、输入和声音,以 GekkoNet 实现回滚联机。README 强调它既不是重编译,也不是模拟。移植版需要玩家自备 PS2 游戏文件,并以接近街机版的平衡性为目标;可选的 Statcheck 构建会用 Fightcade 对战录像中记录的 CPS3 内存状态来检验这一点。
为 Resident Evil 4 的双光盘 GameCube 调试原型版(G4BE08)重建 C 与 C++ 源码,并用 README 所列编译器重新构建 main.dol 及全部 114 个 REL 覆盖模块,逐一与 SHA-1 清单比对。函数名沿用调试版 Bio4.sym 符号文件中 Capcom 自己的命名,多数结构体与字段名则依据 PS2 调试版的调试信息对齐得出。项目的研究日志称一致性工作由 AI 智能体完成;字节一致为项目报告的结果。
《任天堂明星大乱斗X》(Super Smash Bros. Brawl)的进行中一致性反编译,目标为美版 Rev 2 Wii 版本(RSBE01_02):从使用者自备的光盘镜像中拆分 main.dol 和 126 个 REL 模块,并按仓库保存的 SHA-1 校验重建出的二进制。开发时用 objdiff 比对目标文件;另外六个地区修订版虽已列出,但在支持列表中被注释掉。decomp.dev 报告所审提交有 1.27% 的代码已匹配。
以 PopCap 开源的 SexyAppFramework 为基础重建 Plants vs. Zombies 的 C++ 源码:起点是社区早先对 0.9.9 版的反编译,再补入从年度版(GOTY)逆向得到的功能,并以 GOTY 版地址标注函数。项目同时以现代 C++ 改造引擎,并正将 DirectDraw 与 Direct3D 7 渲染器替换为 GLFW。它构建出在原版游戏目录中运行的同人可执行文件,目标是现代化、可扩展的游戏,而不是完全一致的二进制。
将 Game Boy Advance 版《索尼克 Advance》和《索尼克 Advance 2》重建为 C 源码,借助 SAT-R 的 agbcc 分支重新构建六个列有哈希值的 ROM,同一套代码还可编译为面向 Linux、macOS 和 Windows 的宽屏 SDL 移植版,以及 PSP 和 PS2 版本。README 报告《索尼克 Advance 2》已全部由 C 构建,仍有约 60 个函数不一致。提取出的图像、音乐和数据都提交在仓库中,因此构建时不读取原 ROM。
将 Bloodborne PS4 可执行文件(CUSA03173,含 1.09 更新)的代码逐个函数改写为可读的 C++,目标是在项目以净室方式自行编写的运行时上实现原生 PC 源码移植。它追求功能等价而非字节一致:每个替换函数都以钩子接入,在录制与生成的输入上与原始机器码对照比较,再经独立审核。项目仍处早期:README 报告 157,757 个函数中已验证 21 个,游戏尚不能在 Paleblood 自己的运行时上运行。
由爱好者进行的《皮克敏2》反编译项目:用原版 Metrowerks 编译器为五个 GameCube 版本(美版零售版、两个美版体验版、PAL 版和日版)重建 main.dol,并逐一与仓库保存的 SHA-1 比对。构建读取使用者自有各版本中的 main.dol。decomp.dev 报告所审提交中各版本的代码均已全部匹配并完全链接;另有非一致性模式,可完全由 C++ 源码构建美版 DOL 以供模组制作。
将 Gran Turismo 4(《GT 赛车 4》)的 PS2 引擎可执行文件(CORE.GT4,NTSC-U v1.01)按每个函数一个 C 或 C++ 源文件反编译,面向 Sony 的 ee-gcc 2.96,并用 newlib、Expat 等公开库自身的源码匹配其函数。README 称大部分匹配工作由驱动项目工具的 AI 智能体(Anthropic 的 Claude)完成,每个函数须通过编译器与判定器的比对才算完成,并报告 2026 年 10 月某次提交时 95.4% 的函数和 83.6% 的代码字节已匹配。本地完整构建将源码链接到原始地址,其余部分用反汇编补齐,再与使用者的可执行文件比较 SHA-1。
《马力欧卡丁车 Wii》的进行中一致性反编译,目标为 PAL 版(RMCP01):用 Metrowerks 编译器从 C 与 C++ 源码重建 main.dol 和 StaticR.rel 模块,并与仓库保存的 SHA-1 比对。构建从使用者自备的光盘镜像中拆分这些二进制,开发时用 objdiff 比对目标文件。README 的进度徽章指向的 decomp.dev 页面在审阅时无法访问,默认分支最后更新于 2025 年 9 月。
使用作者对 ReXGlue 的分支 ShiftGlue,将 Xbox 360 版 Forza Horizon 的 PowerPC 可执行文件提前转换为 C++,并依玩家自有光盘在其电脑上编译,构建原生移植版。专为该游戏编写的渲染器在 Vulkan 上执行其 GPU 命令;部分转换后的库代码(如 FMOD Ex 的 DSP 单元)由独立编写、并与转换后原版对照检查的原生代码替代。README 称其为可游玩的预览版,仍有渲染错误和卡顿。
为 Touhou 7:东方妖妖梦 1.00b 版的 Windows 可执行文件及其 custom.exe 设置工具重建 C++ 源码,使用原版 Visual Studio .NET 2002 与 DirectX 8 工具链构建,并通过 reccmp 与使用者自备的原程序逐函数比较。仓库内的进度徽章报告 th07.exe 已全部实现、准确率 99.78%,custom.exe 已完全匹配。README 称游戏应可完整游玩,但匹配构建会触发游戏自身的完整性检查;跨平台移植位于其他分支。
借助固定版本的 snesrecomp 分支,将 SNES 版《大金刚国度》北美 v1.0 静态重编译为 Windows、macOS 与 iOS 原生程序;该框架把 65816 代码转译为 C,并链接到模拟 SNES 硬件的运行时。函数边界、入口标志状态与跳转表目标均取自一份逐字节一致的社区反汇编,而非靠启发式发现;游戏代码在本地由使用者经校验的 ROM 生成。可选的宽屏、CRT 滤镜、MSU-1 音乐和 Dixie Kong Country 变体都是宿主端附加功能,README 称这一移植处于可游玩的初步运行阶段。
在 Unity(C#)中重新实现《侠盗猎车手:圣安地列斯》的引擎,从使用者自有的 PC 版安装中读取归档、RenderWare 模型与纹理、碰撞、动画、音频、文本和物品定义。README 表示这不会是完整的重新实现,重点在于游戏玩法、多人模式,以及可通过 C# 插件扩展和改装游戏的框架。项目开发已停滞:所有分支中最新的提交日期为 2022-09-30。
将 Legacy Console Edition 系列中的 Minecraft: Nintendo Switch Edition v1.0.17 反编译为 C++,借助打过补丁的 Clang 4.0.1 和 open-ead 的 Switch 反编译工具,与原可执行文件逐函数比较。README 解释了选用 Switch 版的原因:其 Clang 工具链可以匹配且带有类型信息,函数名则从带符号的 Wii U Edition 移植而来。所审提交时函数列表标记约 11% 的函数已反编译,其中大多已匹配;产物无法运行游戏。
为 Final Fantasy VII 美版 PlayStation 发行版重建 C 源码,目标是让代码重新编译出原版主可执行文件及各游戏覆盖段(overlay)。构建流程用 splat 拆分使用者自备的光盘文件,以当年的 cc1-psx 编译器编译,并用 SHA-1 校验每个重建文件。基于 PsyZ(PlayStation 库替代实现)的原生构建会在 CI 中编译,但未作为可游玩的移植版加以说明。
借助 snesrecomp 框架,将 SNES 版《洛克人 X》(美版 Rev 1)的 65816 CPU 代码静态转译为 C;PPU、音频、DMA 等硬件由框架运行时处理,静态分析无法证明的部分则交给源自 LakeSnes 的解释器执行。C 代码在本地由使用者的 ROM 生成,函数名取自社区的 DiztinGUIsh 注解。项目在此基础上加入可操作的 Zero、合作与回滚联机、X2/X3 的头目武器以及自适应宽屏,所用素材在本地从使用者自有的续作 ROM 中提取。
以 Godot 项目和 GDScript 重新实现 SimCity 4,从使用者自有的 SimCity 4 安装目录读取 DBPF 归档、区域文件夹和城市存档。代码可绘制带城市缩略图的区域视图,并依据游戏的 UI 定义生成界面元素,可在 3D 中打开已存城市的地形与水面,还附带用于预览归档子文件的 DAT 浏览器。这是一个早期且已停滞的引擎案例,尚无模拟玩法,并非可替代原版的实现。
以开源的替代可执行文件重新实现 Oddworld: Abe’s Oddysee 与 Abe’s Exoddus 的引擎,在使用者自己的游戏目录中运行。团队先反编译原版可执行文件并逐步替换其中的函数,借助注入的 DLL 将重新实现的代码挂接到打过补丁的零售版程序中,之后再把成果改写为独立的跨平台引擎。项目网站称两款游戏均可完整通关,并修复了缺陷,支持窗口模式、高分辨率和手柄游玩。
以基于 SDL2 和 OpenGL 的跨平台 C++17 引擎重新实现 Microsoft 的《帝国时代》及其资料片《罗马复兴》,载入原版游戏的 DRS 归档和 language.dll 资源。README 称项目为兼容起见模仿 Windows API 和 Genie 引擎,部分代码依据反汇编重建;仓库另附格式笔记和用于检查原版数据文件的 Python 工具。目前只能通过多人会话进行非常基础的游戏,因此这是一个早期引擎案例,而非可替代原版游玩的实现。
使用 PS2Recomp 将 PlayStation 2 版《战神》美版(SCUS-97399)可执行文件中的 MIPS R5900 代码静态重编译为 C++,并构建为 Windows 原生程序。自 2026 年 10 月起,移植以 Waffle565 的运行时为基础,用原生代码取代 PS2 硬件:VU1 微程序以及可选的游戏 IRX 模块会预先编译,OpenGL 渲染器则代替 GS。仓库只包含本作专用的函数映射、重编译器配置、覆盖实现与运行时补丁;README 报告已能在开场的船上关卡中游玩,而稳定 60 fps 与完整通关仍待完成。
使用 N64Recomp 与 RSPRecomp,在经修改的 N64ModernRuntime、RecompFrontend 和 RT64 之上,将 Nintendo 64 版《Wave Race 64》美版 Rev 1 重编译为 Windows 原生程序。游戏与微码的 C 代码在本地由使用者的 ROM 生成:先将随附的宽屏补丁应用到临时副本,再按记录的校验和核对生成结果。移植加入了更高分辨率、帧插值、超宽视野、光栅化与光线追踪的反射和阴影、分屏或分窗口的双人游戏以及 RetroAchievements;维护者称其为 AI 辅助的重编译。
以原生 C++ 在深度修改的 nCine 引擎上重新实现《爵士兔 2》(Jazz Jackrabbit 2,1998),首次启动时把使用者的原版游戏文件转换为自己的缓存。它可在桌面、移动设备、网页和众多自制软件主机平台上运行,支持多人游戏、增强的 Reforged 模式,并部分支持 JJ2+ 与 MLLE。项目用一个双向轨迹探针把非 Reforged 模式的移动与原版游戏对照,报告 406 个场景中有 376 个误差在 25 px/s 以内。
用 TypeScript、Three.js 和 React 重新实现 Little Big Adventure 2 的引擎,现在也涵盖 Little Big Adventure 1,在浏览器中运行,资源从使用者自有的游戏中导入。README 称这是完全重新设计实现,而非基于反汇编的方法:所有岛屿和建筑都可以探索,大部分图形和部分玩法已经可用,但游戏目前还无法通关。项目另外提供带角色脚本调试器的编辑器、VR 支持,以及由爱好者为等距场景制作的 3D 替换模型。
以 C++ 和 OpenGL 重新实现 Remedy Entertainment 的 Alan Wake 引擎(后来称为 Northlight),目标是借助使用者自己的游戏数据,以可移植方式运行《心灵杀手》和《心灵杀手:美国梦魇》,并把《量子破碎》乃至《控制》列为后续目标。README 只介绍了一个用于在已加载游戏数据中移动的自由视角相机,《美国梦魇》的脚本函数表在 278 个原生函数中实现了 16 个。仓库还附带处理这些游戏的归档、纹理、Havok 和音频格式的命令行工具。
将 Capcom 街机基板上的 68000 游戏程序与 Z80 声音程序预先转译为 C++,并在为本项目编写的机器模型上运行,尚未转译的代码则交给解释器执行。一个启动器涵盖《街头霸王 Alpha》及《Alpha 2》、《超级益智战士 II Turbo》、《恶魔战士:救世主》及其变体、《恶魔猎人 2》、《异形大战铁血战士》以及 CPS-1 平台的《恐龙新世纪》,并加入训练模式、宽屏和三人游戏选项。转译代码由使用者自有的 ROM 套装生成,专门的检查构建会逐个代码块将其与解释器对比。
以 C++ 和 OpenGL 重新实现《科学冒险》系列和《告别回忆》系列所用的 MAGES. 视觉小说引擎,通过按游戏划分的 Lua 配置,在同一个程序中运行使用者原版数据文件里的受支持作品。README 称至少有一款游戏(Memories Off 6 T-Wave)可以达成全部结局,但还没有任何游戏完全实现。项目的跟踪议题列出了对 Chaos;Head Love Chu Chu、Chaos;Child Love Chu Chu、Steins;Gate、Robotics;Notes Elite 等作品的部分支持。
将 Wii U 美版《塞尔达传说 风之杖 HD》逐个函数反编译为 zeldaret/tww 风格的可读 C++,并让每个函数与由使用者自有副本静态重编译得到的原版函数并排运行,在生成输入和录制输入上比较返回值、内存写入和函数调用,同时检查覆盖率并进行变异测试。README 报告游戏 39,713 个函数中已有 28,244 个通过验证,其中来自 GameCube 版的 22,215 个函数里有 22,068 个。代码通过地址调用尚未反编译的函数,因此只能在 ZeldaWWHDRecomp 移植中运行,不能单独构建成游戏。
C#/.NET 10 引擎加载 Dungeon Siege 原始归档、脚本与模型,提供 alpha 构建和审计/一致性清单,并附带 SiegeSmith 模组工具;项目仍记录保真度和通关行为风险。
从零编写的 Rust 移植面向北美 PlayStation 版 Legend of Legaia,附带原生/浏览器游玩、素材提取及光盘补丁工具;作者记录 Ghidra/模拟器研究与全流程测试阶梯,项目不是匹配反编译或静态重编译。
重建 Retro Engine v3,即 2011 年 Sonic CD 重制版所用的引擎,作为可在 Windows、Linux、macOS 和 Android 上运行的原生 C++ 源码移植。引擎运行官方发行版中的游戏脚本和素材,仓库本身不附带这些内容;项目还加入了模组加载器、可重映射按键的设置文件、对移动版更新脚本的支持,以及更多开发者菜单调试快捷键。其许可证称代码大多在功能上与原作相同,而不是逐字节一致;同一团队的 RSDKv5 反编译另作独立案例收录。
以同一套源码和游戏原用的编译器版本,重建《ICO》PAL 版(SCES-50760)与日版(SCPS-11003)PlayStation 2 光盘的启动 ELF,并检查载入的每个字节以及整个 ELF 文件都与光盘的 SHA-1 一致。73 个只含数据的归档成员在构建时由使用者自己的 ELF 生成,因此大部分只读数据仍取自光盘而非源码。另有独立分支面向美版、韩版和 2001 年 8 月原型版,本目录收录的 ICO PC 移植即是这套源码的分叉。
面向马里奥和塞尔达两款 Game & Watch 掌机的自定义固件:把新编写的 C 代码修补进使用者自己的原厂固件备份,使原厂固件可与 retro-go 模拟器并存。Python 补丁工具会挂接原厂函数调用,重新定位原厂代码与数据并以 LZMA 压缩以腾出闪存,还能把两款机型的固件合并为一个镜像。仓库提交的符号表、交叉引用分析脚本和分析用 ELF 生成器支撑逆向工作,另有一份日志记录作者首次修补固件的过程。
以 Rust 基于 Bevy 和 wgpu 实现《使命召唤:现代战争 2》(2009)的独立运行时:通过原生 FastFile 读取器从使用者已安装的游戏中载入地图、模型、纹理和武器,并将其 Direct3D 9 着色器转换为 WGSL。已实现机器人、录像录制与回放,以及基于自定义 UDP 和 QUIC 主服务器的多人游戏;但 README 提醒游戏玩法仍不完整,存在缺失行为、错误和不同步。README 声明整个项目由大语言模型编写;NOTICE 列出参考过的社区项目,并说明曾用 Ghidra 阅读原版二进制文件。
在新的 Rust 与 Bevy 引擎中重新实现《Skate 3》的滑行、技巧、擦边滑行和下板移动,运行时使用从使用者自有 Xbox 360 版游戏转换得到的素材,并加入难度设置和 .skate 自定义地图格式。物理说明引用了在 IDA 中读取的原版可执行文件的函数和常量,音频研究则读取另一个《Skate 3》静态重编译项目 research-hooks 分支产生的跟踪记录。README 称游戏玩法与原版的一致性仍在完善中,肯定了 dumbad 多年的格式研究,并说明这次重写借助了 AI 编程工具。
以 Python 基于 Twisted 重新实现 Minecraft Alpha 与 Beta 时期多人游戏的服务端;其文档称这是从零编写的逆向实现,致谢了网络流量转储的提供者,并说明通用的 Minecraft 资料已贡献给社区 wiki。最终的 2.0 版支持 1.4.x 客户端协议,涵盖登录、区块传输、实体、服务端背包、光照、物理和 Anvil 存档,同时有意改变了区块加载和物品堆叠等行为。可插拔架构提供地形生成、季节和命令,另有几个小脚本用于查看数据包、NBT 和区域文件。
Weeping of the Empire 从用户自己的 Switch《塞尔达传说 王国之泪》转储构建原生 Windows 版本。它预先将 ARM64 代码重编译为 x86-64,以宿主运行时提供 Switch 系统服务,并通过 Vulkan 渲染。引擎文档说明其以 totk-recomp 为起点,另行开发了 Windows 移植、渲染、控制和菜单。
GTA Mode 是为《SimCity 3000 Unlimited》加入可操控行人和车辆的原生插件,这些行人和车辆由插件生成。项目利用 Ghidra 对游戏二进制、GZCOM 插件加载机制、内存中的城市结构和精灵图档案的分析成果。C 插件在原游戏中运行,从游戏内存读取城市数据,并从用户安装的游戏文件解码图像;MODLOG.md 记录了地址、格式和未成功的尝试。
FH2MP 根据 Xbox One 版《Forza Horizon 2》客户端中恢复的协议行为,搭建替代服务器以恢复多人游戏。游戏内 shim 重定向网络连接和 Web 服务请求;Python 与 Go 服务器处理大厅、世界及在线功能,启动器负责安装与更新。
Cursed Lands 使用 Godot 重建《Evil Islands》及扩展《Lost in Astral》的引擎,从玩家自备的游戏文件读取地图、模型、音频、脚本和数据表。项目重新编写渲染、战斗、AI、脚本及界面系统,提供桌面、Android 和浏览器版本。
nfs-mw 用 Rust 重建 2005 年 PC 版《极品飞车:最高通缉》v1.3,并从用户本机安装目录读取数据。项目解析 bChunk、JDLZ、HUFF、车辆、纹理和分区加载的城市数据;目前提供查看器、驾驶、菜单与自由漫游。
bf-private-server 为《Brave Frontier》2.19.6 客户端重建可自行部署的服务端。C++23 服务处理游戏 HTTP 请求并以 SQLite 保存进度,配套 CDN Worker 和自有 Android 客户端补丁工具;仓库还记录请求表和启动流程。服务端以较早的模拟器分支为基础。
OpenLF2 用 C++ 和 Lua 重实现了可玩的《Little Fighter 2》v2.0a 引擎。它从原版游戏安装程序读取资源,支持本地模式、回放、模组及 OpenLF2 玩家之间的联机对战。作者表示仍在改进与原版的玩法兼容性。
Atlantis Native 把经逆向重建的 CryOmni3D Atlantis 引擎移植到 Rust,支持 Atlantis: The Lost Tales 与 Atlantis II。它读取用户自备游戏文件,在桌面系统和浏览器中运行原有脚本、全景画面、过场动画及谜题,并提供可选的显示改进和错误修复。
SF2Recomp 将用户提供的 Nintendo Switch 版《Shadow Fight 2》游戏文件转换为 Linux、Windows、macOS 和 Android 原生版本。转换器将重编译代码、运行时与用户素材结合,并加入控制设置、画面选项、对战练习及局域网联机。
dmc-recomp 借助 PS2Recomp 和项目运行时,将 PAL 欧版 PlayStation 2 游戏 Devil May Cry 转换为 PC 原生代码。其流水线从用户自行提供的游戏可执行文件在本地生成代码,研究笔记和补丁记录启动、光盘服务、MPEG 播放、渲染及游戏流程的分析。
Sin & Punishment: Recompiled 使用 N64Recomp 和 RSPRecomp,基于用户提供的日版 N64 ROM 及仓库中的符号映射构建原生 C++ 移植程序,并通过 RT64 渲染。作者报告程序已进入标题画面;菜单导航、游戏流程、音频验证,以及补丁工作镜像的公开生成流程仍待完成。
scvk 通过 SimCity 4 的 GZCOM 插件系统加载原生 Vulkan DLL,以替换游戏渲染器。它使用已有的渲染器类 ID,并通过管线状态和着色器模拟 cIGZGDriver 固定功能接口,绘制地形、建筑、光照、纹理和界面。
Salamander UEFI 将红白机游戏《沙罗曼蛇》的 6502 反汇编翻译成平台无关的 C 核心,移植为原生 UEFI Shell 应用。仓库提供 6502 反汇编器、基于用户自有 ROM 的资源提取器、宿主机测试和保真清单,以 UEFI GOP、输入和定时服务替代原主机环境。
tMock-Server 是用 C++ 重建 Terraria 服务器初始联网流程的未完成项目。它以套接字代码和数据包类处理连接、协议版本、密码交换及玩家槽位分配;README 根据流量分析记录了消息 ID、字段、方向和结构。
NuVelocity Engine 用 C++ 和 SDL3 重实现 Reflexive Entertainment 的 Velocity Engine。它包含模块化二维渲染、资源加载、音频播放、界面管理和基于属性的对象系统,仓库中还提供资源解码器源码。
FreeRS42 是使用 NuVelocity 引擎、以 C++ 重现 PC 游戏《Ricochet Xtreme》的项目。仓库包含游戏对象、场地逻辑和界面的源码,并通过 CMake 构建游戏及引擎子模块。
DreadComp 正在以手工反编译方式重建《Metroid Dread》的 C++ 源代码。仓库已有初步源码、构建工具和符号数据;构建需要使用者自行提供游戏资产及 2.1.0 版可执行文件。
MTG Arena Collection Export 重建 Magic: The Gathering Arena 的 Frontdoor 卡牌收藏请求。Python 客户端使用账户刷新令牌连接 TLS 套接字,以 2026 年的第 4 版帧和 protobuf 命令封套认证,再调用 Card_GetAllCards;独立文档记录了还原出的线协议。
Void Client 是一个尚未完成的 Starblast.io 浏览器游戏客户端 JavaScript 重建项目,基于对其网络协议的研究。现有 Node.js 服务端和浏览器组件提供游戏模式选择、服务器发现、本地 WebSocket 通信,并解析部分收到的数据包,将其导出为 JSON。
OpenPigeon 是 TypeScript 编解码器,可读取十一款 GamePigeon 回合制 iMessage 游戏的状态,并将调用方提供的操作编码为消息。协议文档说明消息气泡标识、加密操作 URL、以长度为种子的置换密码和状态封装;仓库还提供用于编解码测试的消息采样。
Cosmo 将 Cosmo's Cosmic Adventure: Forbidden Planet 的重建源码移植到 macOS、Linux 和 Windows。项目保留游戏逻辑,另行实现 EGA、计时器、键盘控制器、PC 扬声器和 AdLib 的模拟层;构建时需由用户提供游戏数据文件。
这项 Left 4 Dead 2 研究依据指定的 x86 server.dll 和脱敏运行轨迹,还原 AI Director 的节奏、强度、遭遇布置及音乐规则。仓库提供基于反汇编的发现、分析脚本、证据文件和实现规格;参考游戏库位于另一仓库。
MechRewired 利用用户 DOS 版《MechWarrior 2: 31st Century Combat》的数据重建游戏体验。项目代码加载原版资源和任务,并为现代平台实现新的驾驶舱、地形渲染与战斗模拟。
d2mac-linux 将《Diablo II》1.14d Mac 版 i386 Mach-O 转为 ELF,并用 Zig 重写所需的 Darwin、Carbon 和 AGL 导入接口,使其移植到 32 位 Linux。兼容层将图形调用转为 GLX,并适配线程、文件与套接字;作者报告游戏可进入主菜单并创建角色。
Spider-Man 2 PS2 Recomp 对美版 PS2 游戏 SLUS-20776 进行静态重编译,目标是在 PC 上原生运行。仓库包含针对游戏的 Ghidra 函数映射、PS2Recomp 源码、运行时修复和硬件行为对照测试。作者报告 Windows 构建已到达版权画面,但仍不能游玩。
touhou-engine 用 Python 重实现东方弹幕游戏玩法,以 TH07《东方妖妖梦》为参考作品。作者称引擎逻辑对照原版反编译结果逐帧移植,新架构提供事件流、录像处理、无界面逐帧运行和 pygame 渲染,并读取使用者提供的原版游戏资源包。
经典《古墓丽影》的开源引擎,提供 WebGL 版本和独立版本。其格式代码定义了《古墓丽影》1 至 4 代的对象类型。
Thyme 是《命令与征服:将军之绝命时刻》的开源重实现。项目从底层重写游戏,并借助原版二进制文件提供尚未重写的功能。
Chariot 是一个开源项目,旨在重新实现初代《帝国时代》(1997)的游戏引擎。项目希望支持移植和功能改进;README 称其仍在开发中,当时只能展示游戏资源加载,尚不能游玩。
OpenDiablo2 是一个用 Go 编写的跨平台动作角色扮演游戏引擎,支持运行 Diablo 2。项目正在拆分为名为 Abyss Engine 的引擎与工具集,以及继续使用 OpenDiablo2 名称的游戏项目。
OpenTomb 是经典《古墓丽影》引擎的开源重新实现项目,可运行《古墓丽影》1–5 及自制 TRLE 关卡。该项目已停止维护。
Savage Wind Recomp 是一个仍在开发中的静态重编译项目,旨在让 Nintendo Switch 版《塞尔达传说:旷野之息》在 Windows 和 Linux 上以原生程序运行。它在本地根据玩家自行提取的游戏文件构建代码;README 称前期区域可以游玩,但尚未确认主线全程可通关。
retruxx 是《Hard Truck Apocalypse》的逆向工程项目,可构建游戏可执行文件以及独立的渲染、输入和声音 DLL。其 32 位构建与原游戏的内存布局一致。
工具、项目与集成
79 项资源
检查自己游戏或图形应用的帧捕获、绘制调用、着色器和图形资源。
分析 Unity 游戏文件,检查资源依赖并将支持的资源转换为 Unity 工程格式。
Cpp2IL
工具结合二进制与元数据分析,从 Unity IL2CPP 构建恢复托管表示;重建能力仍在开发中。
恢复 IL2CPP 元数据及占位程序集,为原生分析工具生成辅助脚本;不会还原方法代码。
向智能体开放已有 RenderDoc 捕获文件,分步检查帧、管线、资源和着色器。
浏览和修改受支持的 GameMaker 数据文件、提取资源,以及反编译或编译 GML VM 代码;提供房间编辑、脚本化修改、CLI 和可复用的 UndertaleModLib 库。
在运行中的进程里检查 IL2CPP 类、方法和字段,无需提供 global-metadata.dat 即可跟踪或拦截方法调用,为静态 IL2CPP 转储工具补充运行时观察能力。
objdiff
工具比较参考目标文件与重新编译目标文件中的函数和数据,辅助匹配反编译;显示指令级差异、还原 C++ 符号,并可在源码变更时自动重新构建。
随机或系统地改写单个 C 函数,逐个重新编译变体并与目标文件评分对比,以寻找与原编译输出一致的写法。可用 PERM 宏指定手动备选写法,可选的 permuter@home 模式能把运行分发给其他工作节点。
对比单个函数或 ROM 地址的原始汇编与重新编译后的汇编,辅助匹配反编译;监视模式可在源码变更时重新运行 make。README 称它是 decomp.me 的默认差异查看器,并推荐 objdiff 作为现代替代方案。
通过类、属性与依赖树浏览 Unreal 包,反编译和导出 UnrealScript 类、检查字节码,并查看结构化二进制数据。
GARbro
工具像浏览文件夹一样查看已识别的视觉小说资源归档,预览内容,并在提取图像或音频时转换为常用格式。
从已导出的游戏中恢复受支持的 Godot 工程文件、GDScript 与导入资源,提供 PCK 检查与提取、脚本反编译及资源转换,便于分析和重建工程结构。
通过实时 UObject 属性视图、反射 C++ 头文件导出、属性映射和 Actor 转储分析虚幻引擎游戏;Lua 与 C++ API 可辅助实验和重建游戏结构。
基于 CUE4Parse 浏览虚幻引擎游戏归档,检查资源包和属性,预览并导出资源;2026 年夏季发行版新增 USD 世界导出,可辅助重建受支持的场景内容。
将 PSP MIPS 可执行文件转换为 C++ 与 WebAssembly,配合 PSP 高层仿真运行时和 WebGL2 渲染器;原生跟踪、画面捕获及音频工具可辅助调查游戏移植中缺失的行为。
依据符号元数据将 N64 MIPS 二进制静态重编译为 C 函数,并生成函数查找与重定位宏,供运行时处理静态链接和可重定位的覆盖段。输出需配合 N64ModernRuntime 等运行时;仓库还包含 RSP 微码重编译与模组工具。
将 Xbox 360 PowerPC 可执行文件转换为可在其他平台编译的 C++ 代码,配套的 XenonAnalyse 负责检测跳转表和函数边界。输出是逐条指令的直译而非反编译代码,并需要项目本身不提供的运行时。
面向匹配反编译的协作网站:其编译服务用选定平台的编译器编译候选源码,汇编目标汇编代码,并用 asm-differ 对比两个目标文件。对其 MIPS、PowerPC、ARM 和 SuperH 平台,m2c 可生成初步反编译代码。18 个平台定义涵盖 N64、PlayStation、PS2、PSP、GameCube/Wii、Wii U、DS、GBA、3DS、Switch、Saturn、Dreamcast 和 Xbox 360,以及 IRIX、Mac OS X、MS-DOS、Win32 和 Android x86。
面向反编译与模组项目的二进制拆分工具:由 YAML 配置指定在何处、以何种方式把 N64 ROM 或 PSX、PS2、PSP 二进制切分为代码、数据和素材段。扫描阶段反汇编代码与数据,MIPS 部分由 spimdisasm 处理;拆分阶段写出文件以及用于重新构建输入文件的链接脚本。可编写自定义段类型扩展该流程。
面向匹配反编译项目的反编译器,将 GNU as 格式的 32 位 MIPS、ARM、PowerPC 和 SuperH 汇编转换为 C 代码初稿,并部分支持 C++。目标由平台、编译器(IDO、GCC 或 MetroWerks CodeWarrior)和语言组成;上下文文件提供类型信息,还能推断未知的结构体字段并生成全局变量初始化代码。README 将它与 splat、asm-differ 和 decomp-permuter 并列使用,decomp.me 也调用它生成初步反编译结果。
面向 GameCube/Wii 匹配反编译的工具包:分析 DOL 和 REL 可执行文件,按项目配置将其拆分为可重定位目标文件,并为 CodeWarrior 链接器生成 ldscript.lcf,使反编译出的目标文件可逐个替换原有部分,同时将重新链接的二进制与原版核对。分析涵盖函数边界、Metrowerks/SDK 签名库、重定位、节区和数据对象,且无需汇编器即可直接写出目标文件。其命令行还可处理光盘镜像、归档、压缩格式、CodeWarrior 符号还原和 DWARF 转储。
通过 Lua 桥接脚本和 Python MCP 服务器把 MCP 客户端连接到 Cheat Engine,使智能体能够检查用户在 Cheat Engine 下运行的进程:读取内存与扫描数值、解析指针链、剖析结构体、识别 RTTI 类名、反汇编、查找交叉引用,以及设置硬件或 DBVM 断点。另有工具组可写入内存、注入 DLL 或代码、自动化输入,并调用 Cheat Engine 的内核模式驱动。README 将其限定于教学和研究用途,并声明不支持多人游戏作弊或违反服务条款的行为。
将 SGI IDO 5.3 与 7.1 C 工具链中的 IRIX MIPS 程序(如 cc、cfe、uopt、ugen 和 as1)静态重编译为原生 Linux、macOS 和 Windows 可执行文件,使匹配式反编译项目能在现代主机上以原始编译器代码进行构建。它重编译的是编译器而非游戏,本身既不反编译也不转换游戏代码。
实验性的静态重编译器,将 PlayStation 2 ELF 可执行文件中的 MIPS R5900 代码转换为 C++,并与随附的运行时链接。ps2xAnalyzer 或 Ghidra 导出脚本为每款游戏生成包含函数、存根、跳过项和指令补丁的 TOML 配置;ps2xRecomp 输出逐条指令的直译代码;ps2xRuntime 与 ps2xIOP 提供客户机内存、系统调用分发、带 HLE 回退的 IOP 模块执行,以及仅部分实现、大多为存根的 GS/VU 硬件。输出不是反编译源码,让游戏真正运行仍需针对每款游戏进行移植。
在匹配反编译项目自身的构建之外进行检查:用未打补丁的原版 ee-gcc 2.96 及汇编器重新编译其 C 代码,再逐函数与原程序逐字节比较,并按可能的工具链原因对每处差异分类。配套脚本可将 ELF 符号表导出为 CSV,并转换为 splat 符号文件。默认配置针对 Xenosaga Episode I;README 称方法可推广,默认配置则不能。
将 Game Boy 和 Game Boy Color ROM 转换为可移植 C 项目的静态重编译器:它解码并分析分 bank 的 LR35902 代码,生成 C 代码及机器可读的元数据,再与共享的 SDL2 运行时链接,由运行时处理视频、音频、输入、存档和硬件时序。静态分析未覆盖的跳转目标会回退到解释器执行。仓库还提供差分对比、回放以及画面和音频捕获工具,并附有一个 Pokémon Crystal 移植,借助对特定 ROM 的挂钩实现原生功能。
用于围绕 decomp-toolkit 创建 GameCube 和 Wii 匹配反编译仓库的项目模板。其 configure.py 生成 ninja 构建:依据各版本的 config.yml、symbols.txt 和 splits.txt 分析并拆分游戏的 DOL 和 REL 文件,用当年的 Metrowerks 编译器编译反编译出的 C/C++ 代码,重新链接后与记录的 SHA-1 哈希核对。模板还集成了用于逐目标文件比对的 objdiff、面向 decomp.dev 的进度报告,以及一个 GitHub Actions 工作流示例。
供 N64Recomp 静态重编译项目和传统源码移植使用的 N64 游戏运行时,由两个库组成。ultramodern 重新实现 libultra 的核心服务(线程、消息队列、计时器、控制器、音频、RSP 任务处理和 VI 时序),并将手柄输入、音频播放和图形渲染器(推荐 RT64)交给宿主项目注册的回调处理。librecomp 负责将 N64Recomp 生成的代码与 ultramodern 衔接,并补充覆盖段处理、PI DMA 读取 ROM,以及 EEPROM、SRAM 和 Flash RAM 存档。
REDscript 的编译器与反编译器工具集。REDscript 是一种静态类型、面向对象的语言,用于为 CD Projekt 在《赛博朋克 2077》中使用的 REDengine 引擎编写脚本。其 Rust crate 负责解析和分析源码、生成字节码并对泛型做单态化、将 .redscripts 字节码包反编译回 REDscript 源码、读写 REDengine 原生二进制格式,并提供可直接替代 CD Projekt scc 脚本编译器的实现,以及带源码映射的 C API。命令行提供 decompile、compile、lint 和 format 命令;语言服务器和调试器位于单独的 redscript-ide 仓库。
用于执行、逆向分析并重写无源码实模式 DOS 程序的 PC 模拟器。程序运行时它会构建控制流图,退出时转储内存、执行流、Ghidra 兼容的符号,以及一个可独立运行的 C# 项目,其中生成的函数会覆盖原有汇编代码,分析者可以在程序始终可运行的前提下逐个函数将其改写为可读代码。它还提供带自定义分析命令的 GDB 远程服务器、配有 C 头文件结构查看器的内置调试器、可选的 HTTP 内存 API,以及工具覆盖 CPU、内存、断点、控制流图和设备状态的 MCP 服务器;可选的 Ghidra 插件可导入这些转储。
将 PlayStation 2 游戏静态重编译后在浏览器中运行:eerecomp 把游戏启动程序中的 Emotion Engine 代码转换为 C++,再编译为 WebAssembly;运行时负责仿真主机的其余部分,包括高层仿真的 EE 内核、以解释器运行光盘 IRX 模块的 I/O 处理器、向量单元、SPU2 音频,以及基于 WebGPU 计算着色器的 Graphics Synthesizer。其移植脚本会反复进行无界面运行,找出经指针调用的函数和需要预先编译的向量单元微程序,最后构建网页和原生运行程序。
面向初代 Xbox 游戏的静态重编译工具包:Python 流水线解析零售版 XBE,进行反汇编、识别库函数、恢复调用约定,并将每个 x86 函数提升为 C 代码。生成的代码在独立的游戏项目中编译,并链接工具包的运行时库;这些库替代 Xbox 内核,并将 Direct3D 8、NV2A、音频和输入转换到 Direct3D 11 与 Win32 API,在 Linux 和 macOS 上则转换到 SDL2 与 OpenGL。
基于 PCSX 分支、面向开发与逆向工程的 PlayStation 1 模拟器,提供解释器与动态重编译器、软件和 OpenGL 渲染器、MIPS 调试器、显存查看器、SPU 与 GPU 调试工具,以及内置 GDB 服务器;其文档说明了如何用 gdb、IDA Pro 和 Ghidra 调试器连接它。LuaJIT API 提供断点、内存与寄存器、汇编器和 ISO 构建器等接口,可选的 REST Web 服务器还能转储内存和显存。仓库另含替代 BIOS OpenBIOS、PS-EXE 转换与打包工具、Psy-Q 目标文件转换器、用于与模拟器交换符号和覆盖段的 Ghidra 脚本,以及 PS1 硬件设计。
面向 Unity IL2CPP 应用的静态分析工具:读取 IL2CPP 二进制及其 global-metadata.dat,将应用的类型结构和方法地址输出为 C# 存根代码、供 ILSpy 和 dnSpy 等反编译器使用的 .NET 程序集垫片 DLL、为 IDA 和 Ghidra 套用符号与类型的 Python 脚本、C++ 类型脚手架以及 JSON 地址映射。三套 API(另以 NuGet 包发布)和插件 SDK 开放二进制元数据、.NET 类型模型和 C++ 模型,供自定义分析使用。README 说明它不是反编译器,不会还原方法源码。
面向 Mono 和 IL2CPP 两种运行时 Unity 游戏的模组加载器,从本地安装游戏目录中的文件夹加载插件和模组;在 Windows 上通过代理 DLL(默认为 version.dll)随游戏一同启动。对于 IL2CPP 游戏,其程序集生成器会调用 Cpp2IL 和 Il2CppInterop 生成托管互操作程序集,并随附 HarmonyX 与 MonoMod 用于运行时修补。其日志可捕获 Unity 播放器输出与 Harmony 消息,调试选项还为 Mono 游戏提供 Mono 调试服务器,为 IL2CPP 游戏提供等待调试器附加的选项。
面向 Unity Mono、Unity IL2CPP 以及 XNA、FNA、MonoGame 等 .NET Framework 游戏的插件与修补框架,可将模组和分析插件加载到本地安装的游戏中。插件借助随附的 HarmonyX 和 MonoMod.RuntimeDetour 在运行时修补方法,预加载修补器则在游戏加载托管程序集之前用 Mono.Cecil 改写它们;在 IL2CPP 游戏上,它会调用 Cpp2IL 和 Il2CppInterop,从游戏二进制和 global-metadata.dat 生成互操作程序集。其指南还介绍了配置、日志,以及用 dnSpy 调试插件和游戏程序集。
实验性 SDK,可将 Xbox 360 可执行文件静态重编译为可移植的 C++23 代码,在 Windows、Linux 和 macOS 上原生运行。其 rexglue 命令行工具为单个游戏搭建 CMake 项目,并根据 TOML 配置分析 XEX 二进制(导入解析、PDATA、基本块发现、空隙填充、跳转解析和调用目标校验),再将每条 PowerPC 指令翻译为 C++;生成的代码由派生自 Xenia 模拟器核心的运行时承载,图形后端为 D3D12 或 Vulkan。生成的函数均为弱别名,可用原生 C++ 覆盖或在函数内插入钩子来替换,从而逐个函数完善移植。
用于将 PlayStation 3 游戏静态重编译为原生可执行文件的工具包与运行时。Python 工具解析 PS3 ELF 和 PRX 文件,识别函数与固件导入,并将 PPU 和 SPU 代码提升为 C/C++;项目模板再将这些代码与 C/C++ 运行时链接,由运行时提供 LV2 系统调用、系统库的高层仿真,以及转换到 Direct3D 12、Metal 或 Vulkan 的 RSX 图形层。
面向 Clickteam Fusion 2.5 游戏的反编译器,仍在开发中,也针对更早的 Multimedia Fusion 1.5 文件做了修复。其 .NET 控制台程序可读取 Windows 可执行文件、Android APK、iOS IPA、CCN 数据文件以及现有的 MFA 项目,再运行插件式工具:MFA Parser 将游戏重新写成可编辑的 Fusion 项目,Asset Dumper 则导出图像、音效、音乐、字体、图标、着色器和打包文件。
尚在开发中的 Unity 编辑器样例,可导入和修改《星球大战:极速飞车》的模型块,再通过 swe1r-assets 序列化回原格式。编辑器提供未修改导入/导出结果的字节比较命令;其范围是资产格式工作流,而非完整游戏重实现。
将 LuaJIT 字节码文件反编译回 Lua 源码,作为旧版 Python LuaJIT 反编译器的替代品编写。README 称它完整支持 goto 和去除调试信息的字节码,包括还原局部变量和上值;其布尔表达式恢复基于一篇已发表的反编译算法论文。它可处理单个文件或整个文件夹,输出 .lua 文件。
面向 Nintendo DS 程序的 Ghidra 加载器与插件。它校验 .nds 文件头,把 ARM9 或 ARM7 二进制映射到其内存地址,并建立主机的内存区域和 I/O 寄存器标签;经 SDK 压缩的 ARM9 代码和覆盖模块(overlay)会被解压,导入时用户选中的覆盖模块会载入内容,可选的覆盖模块管理插件还能在导入后切换各覆盖模块。仓库另附一个小型 Ghidra Function ID 数据库,收录 NitroSDK 3.0 例程,用于识别函数。
用 Python 编写的反汇编器,可把 Game Boy 或 Game Boy Color ROM(包括多存储体 ROM)转换为与 RGBDS 兼容的汇编代码,并生成用于重新汇编的 Makefile,以便将重建出的 ROM 与输入文件比对。ROM 旁可放置同名 .sym 文件,用来提供标签,并标出代码、数据、文本、填充以及 1bpp/2bpp 图块图像区段;图像会输出为 PNG,再由 rgbgfx 转换回去,文本可使用自定义字符映射,硬件寄存器则采用 hardware.inc 中的名称。README 解释说,SM83 指令长度不一,且数据与代码交错存放,因此需要标出代码区段,避免从指令中间开始反汇编。
面向 PlayStation Portable 所用 Allegrex CPU 的 Ghidra 处理器模块,由 Ghidra 的 MIPS 模块衍生而来。它补充了 Allegrex 特有指令、VFPU 指令的反汇编与基础反编译、PSP 调用约定,以及可识别 PSP 可执行文件的 ELF 加载器;加载器会处理 PSP 特有的 A 类和 B 类重定位节,并支持导入后重新设定基址。附带的脚本可导入和导出 PPSSPP 的 .sym 函数标签文件,另有导出器可把内核模块写成可供链接的可重定位目标文件。
命令行工具,可把用 GameMaker 8.0 或 8.1 构建的游戏还原为可编辑的 .gmk 或 .gm81 项目文件。它读取已构建可执行文件中与运行器(runner)并存的 gamedata 部分,按游戏版本对应的项目格式写出其中的设置、精灵、声音、背景、路径、脚本、字体、时间线、对象、房间、扩展、附带文件以及 GML 代码。该工具基于 OpenGMK 项目的 gm8exe 库用 Rust 重写,取代了团队此前对 WastedMeerkat 的 gm81decompiler 的分支,现与重新实现 GameMaker 运行器的 GM8Emulator 一同在 OpenGMK 仓库中开发。
读取 Unreal Engine 1、2、3 包文件(如 .u、.upk 和 .udk)的 C# 库,可自动识别匹配的游戏构建,并反序列化其中的导出、导入对象和属性。其主要目标是通过重建类、状态、函数、结构体、枚举和默认属性,把 UnrealScript 字节码反编译回源码;它也能反序列化字体、声音、调色板和纹理。README 中的逐游戏兼容表从 Unreal、Deus Ex 一直列到 Splinter Cell、Mass Effect 和 Batman: Arkham 系列,独立的 UE Explorer 图形界面即基于此库构建。
面向 Super NES ROM 的 Windows 反汇编工具:使用者把字节标记为代码或数据,逐步跟踪 65816 代码,工具同时记录 M、X 标志位以及数据库(data bank)和直接页寄存器;使用者添加标签和注释后,可导出供 asar 汇编器使用的汇编代码,README 称其能重新编译回原始二进制。执行上下文可来自 BizHawk 或 BSNES 的跟踪日志、BSNES 使用情况图和 BizHawk 代码/数据日志,也可通过套接字从定制的 bsnes-plus 版本实时采集。项目文件以便于合并的 XML 保存注释,只记录 ROM 的链接和校验和而不包含 ROM 本身,便于多人协作完成同一份反汇编。
由 Il2CppDumper 作者 Perfare 编写的 Zygisk 模块,在 Unity IL2CPP Android 应用运行时从进程内部导出类型元数据。模块针对单个包名构建,等待应用加载 libil2cpp.so 后解析运行时导出的 il2cpp API,遍历每个已加载程序集中的类,并把 dump.cs 写入应用的 files 目录,其中列出命名空间、类、接口和枚举,以及带偏移量的字段、属性和标注 RVA 与虚拟地址的方法签名。对于在 x86 设备上运行的 ARM 版应用,它会通过 Houdini 原生桥加载自己的 ARM 库。
跨平台的 Unity 游戏资源包(asset bundle)与序列化资源文件读写工具,最初参照已归档的 UABE 编写,但并非其分支。README 将它定位为改造(modding)与研究工具而非提取工具,只想提取资源的用户可改用 AssetRipper 或 AssetStudio;它能打开 Unity Addressables 系统使用的资源包,但修改后的资源包须先用另一个工具清除 CRC 校验才能加载。它基于 AssetsTools.NET,并借助 Cpp2IL 和 Mono.Cecil;仓库中还附有纹理、音频片段、字体和文本资源插件。
用于浏览、提取和导出 Unity 3.4 至 2022.1 版本资源与资源包(asset bundle)的工具。它可把 Texture2D 和 Sprite 图像转换为 PNG、TGA、JPEG 或 BMP,把 AudioClip 转换为 MP3、OGG、WAV、M4A 或 FSB(并支持将 FSB 转为 WAV),还能导出字体、OBJ 格式网格、文本资源、着色器、影片与视频片段,以及 JSON 格式的 MonoBehaviour 数据;模型可从场景层级中导出,Animator 可连同绑定的 AnimationClip 导出为 FBX。导出 MonoBehaviour 时需要指定程序集所在目录(如 Managed 文件夹),IL2CPP 构建则需改选 Il2CppDumper 生成的 dummy DLL 目录。
用于解码电子游戏中流式预录音频的库与工具,支持数百种格式和编解码器,从常见的游戏引擎文件到单款游戏专用的编解码器,并能处理循环音乐、子曲目、配套文件、自定义容器和加密密钥。借助 TXTH 文本描述文件可为更多格式(包括原始音频)添加支持,TXTP 文件则可为单个文件设置强制循环、合并多个文件等选项。它提供 vgmstream-cli 解码器(可把受支持的文件转换为 WAV)、vgmstream123 播放器,以及 Winamp、foobar2000、XMPlay 和 Audacious 插件,vgmstream.org 上还有在线网页播放器。
pkg-to-anyps5 将 PS5 调试版游戏包或已提取的游戏目录整理为 AnyPS5 重链接器所需的结构。它解析 FIH、PFS 和 NAPS,解码支持的 Kraken 块,并把假签名 SELF 可执行文件及模块还原为 ELF。
dfsdk 遍历 Delta Force 对象数组,解码逐条 XOR 加密的名称,并沿类继承链和属性列表导出对象元数据。README 记录了名称池寻址、指针掩码、部分字段偏移和示例输出。
KBot 将 Go 命令行工具与专有格式参考文档结合,用于检查和转换《Total Annihilation》及《TA: Kingdoms》的游戏文件。它把 COB 字节码反编译成 BOS、反汇编脚本并检查往返转换,还分析 HPI 归档、GAF 精灵、TNT 地图和 3DO 模型等格式。
BNDExtract 是 Go 命令行工具,用于提取《九怨》及部分其他 FromSoftware PlayStation 2 游戏的 ALL.BND 归档。输入 .bnd 文件和输出目录后,可取得归档内容供检查。
RE4METoolbox 提供命令行工具,用于处理《生化危机 4》移动版文件。RE4MEAcvTool 解包和重打包 ACV .bin 归档;RE4METextTool 将 Mission、Resource 文本 .bin 转成 TSV,并可将修改后的文本重新打包。
Aspyr Archive Tool 用于拆包和重建三款 Aspyr Android 游戏移植版的 OBB 归档:Star Wars: Knights of the Old Republic II、Jade Empire: Special Edition 和 Fahrenheit: Indigo Prophecy Remastered。命令行支持完整或选择性压缩,以及 Jade Empire 所需的 CRC64 校验值。
ScriptSource-Dumper 从《使命召唤:黑色行动 2》的 scriptsrc.clump 档案提取脚本。C++ 解析器读取目录表与数据块,定位内部名称表,并按还原的文件名和目录输出内容。
.AUP-File-Type-Decryptor-and-Viewer 是本地浏览器工具,用于查看《Dragon Soul》的 .aup 游戏资源文件。它实现文档所述的 LZSS 变体,可预览图像、音频和文本,并按原有目录结构导出文件。README 还说明了四字节长度头与环形缓冲命令流。
Universal GBA Pokedex 扫描 Game Boy Advance 宝可梦 ROM,定位并展示进化、名称和道具表。它搜索字节特征,依据文本及指针模式评分候选表,再用已知条目对齐索引,无需预设固定偏移。
VG Reverse Engineering 将 Vainglory: Community Edition 回放文件解码为玩家名称、英雄、击杀/死亡/助攻统计、物品、金币和计分板计数。离线工具还可导出 JSON、CSV,维护 SQLite 目录,并记录 VGR 记录结构与事件解释;输出保留数据来源,对缺少依据的数值保持空值。
Chip-8 Emulator 中的 c8-disassembler 将 CHIP-8 ROM 操作码转换为汇编指令。仓库提供源码及 Pong ROM 的输出示例;配套模拟器的 SDL2 显示功能仍在开发。
BGI Converter TGA 分析 BGI-Ethornell 游戏图像文件,将自定义 RGB、RGBA 布局及 BMP 图像转换为 32 位 TGA。该 C++17 工具按文件头识别格式,显示尺寸和偏移信息,并支持单文件或批量转换。
Xenus DT1 Decompiler 可提取 Xenus 2: White Gold 和 Boiling Point: Road to Hell 的 DT1/DT2 纹理缓存;当前解码器尚未在 The Precursors 上测试。其 C# 解码器重实现了从 VELoader.dll 还原的处理流程,可处理 zlib 和 UCL NRV2E 数据流,并导出 DDS 或转换后的图像格式。
GRB Modding Knowledgebase 记录《Ghost Recon: Breakpoint》的 Anvil .forge 归档、嵌套的 .data 资源及资产替换流程。其 Python 工具检查 MotionCloth 文件、列出资源类型、比较 forge 索引,并通过比较游戏数据库记录探索字段布局。
psp-media-slopkit 根据零售游戏样本的格式分析,检查 PSP XMB 使用的 ICON1.PMF 和 SND0.AT3 文件。Python 命令行工具可按文档中的 XMB 限制验证媒体、转换视频和音频,并写入自制软件的 EBOOT.PBP;FINDINGS.md 记录了 PSMF 容器字段、H.264 约束和 AT3 播放行为。
DualRip 从 Nintendo DS 的 SDAT 和 Nintendo 3DS 的 CSAR 档案提取音效与音乐,也支持游戏 ROM 输入。它解析序列、波形和流格式,模拟主机音频驱动进行渲染,并通过命令行或图形界面导出含循环点的 WAV 文件。
YGO-PoC Toolset 处理《Yu-Gi-Oh! Power of Chaos – Joey the Passion》的资源与存档格式。解包器提取 data.dat 等压缩资源文件,PoCTools 可解密、编辑并重新加密 system.dat 存档;仓库还包含卡牌编辑器和 DLL 模组加载器。
FH6 Model Tools 解析《极限竞速:地平线 6》的逆向资源格式,包括 burG 模型与纹理容器。其 Python 工具可将车辆网格导出为 GLB 或 OBJ、纹理转为 DDS,并读取部分材质、配色、灯光和环境光遮蔽数据。
Ed1th's PvZ Toolkit 通过桌面或网页界面检查、编辑 Plants vs. Zombies 资源,底层使用 Rust 格式库。工作区涵盖 RSB/RSG、PAK、DZip 归档,RTON 与 NEWTON 数据、PAM 动画、Compiled Text 及 Wwise WEM 音频等格式。
kenshi-modkit 用 Python 解析和写入《Kenshi》的 .mod、.base 文件,并读取 .save、.zone、.platoon 存档。格式文档记录 filetype 15–17 与推断出的 typecode;附带记录导出、存档比较、模组冲突检测和字节一致性往返校验工具。
ffxii-tza-tools 记录并处理 FINAL FANTASY XII The Zodiac Age 的角色文件格式,包括 .ca 动画、.cm 模型和 .phyre 资源。Python 工具可解析分块结构、将模型与动画导出为 glTF、编辑曲线,并根据用户自行提取的游戏文件重新打包 @FRP 容器。
sims-package2glb 将《模拟人生》2、3、4 的 .package 模型资源导出为 glTF 二进制文件。Rust 解析器处理 DBPF 容器、RefPack 压缩、RCOL 与 GMDC 几何、纹理、材质和换色版本。文档还记录了 Sims 4 的 DST 纹理平面及 RCOL 相对块引用等格式发现。
vc64_240p 分析并修改 Wii WAD 频道中的 N64 Virtual Console 模拟器,使其输出 240p。工具按结构特征定位视频模式表、调整显示字段并关闭防闪烁滤镜,还可选择移除暗化滤镜。
Unrpyc 是将已编译的 Ren'Py 游戏脚本反编译为可读脚本文件的工具。它可通过命令行运行,也可将相关文件放入游戏目录中运行;它不能提取 RPA 归档。
Java 地图反编译器,可把 Source 引擎的 .bsp 地图文件还原为能在 Hammer 中加载的 .vmf 文件。它还集成了 pakfile 提取功能。
PKHeX 是一款用 C# 编写的 Windows Forms 宝可梦系列游戏存档编辑器。它可以编辑并保存受支持的文件、导入宝可梦与队伍数据,并在不同游戏世代之间转换数据。
nxnative 是一款将 Nintendo Switch 游戏打包为 Apple 设备应用的工具,让游戏代码在设备上原生运行,并将图形处理转换为 Metal。它可为受支持的 Switch 游戏生成 iPhone、iPad 或 Mac 应用;Switch 2 游戏目前仅说明了 Mac 构建方式。
306 项带“应用”标签 · 查看全部 306 项 →
案例
62 个案例
追踪 Aegis APK 的 TOTP 计算,官方公开目标指纹与选取的调查证据。
结合 REA 发现与独立源码阅读追踪剪贴板桥;动态包装器仍有明确限制。
作者报告以 REA 开始 Android 调查,再借助独立 Hermes 工具实现 Windows BLE 打印。
独立视频编辑器,作者公开了利用 REA 研究剪映/CapCut 行为与项目格式的过程。实现包含本地时间线、FFmpeg 导出,以及实验性的有损草稿导入。
根据对厂商 Unique Health 安卓应用的研究,重实现 CF632BLE 体脂秤的 BLE 协议和体成分计算。静态 Web Bluetooth 客户端接收测量数据、管理设备档案,并将历史记录保存在浏览器中。
通过二进制记录编解码、考虑引用关系的克隆和受约束的交互写入器,读取并修改受支持的 Axure RP 11 原生文档。CLI 与 MCP 接口提供可检查的编辑操作,并区分离线结构检查和原生应用验收。
作者报告通过 Claude Code 与 REA,将 macOS 串流端的捕获、编码、音频和输入层替换为 Linux 实现,同时复用厂商协议库。文档中的目标是桌面串流和视频播放,而非仅 Windows 串流端提供的 VR 游戏串流。
发布 React 组件、动效辅助模块和设计系统笔记,作者将其归因于使用 REA 调查 Claude Desktop。它可作为界面重建案例;观察结果受版本约束,不能证明已完整复刻助手应用或后端。
作者用 Ghidra 和编程智能体调查 LG webOS 原生媒体接口后构建的非官方 Plex 客户端。它自行绘制 Rust/OpenGL 界面并使用电视解码器,文档区分宿主测试、模拟器测试和实体设备测试。
REA 案例追踪已安装 Windows Calculator 的模型 DLL,解释乘除运算与其他运算中不同的百分比行为。分析人员选定函数后,对照微软公开源码解释,并通过固定输入的浏览器示例演示。
作者报告借助 Codex 与 REA 分析,修改独立的 macOS 飞书副本,为其设置不同的应用身份、数据目录和单实例锁。文章描述本地签名与隔离检查,并称原应用保持不变。
作者将这款 Rust 图像编辑器描述为 Photoshop 风格流程的净室重实现。文档引擎、界面与自动化接口共用编辑命令;源码区分编辑器中的 PSD 往返处理与独立文件编解码器的字节保留。
作者将 WordCraft 描述为以 Rust 净室重实现熟悉的 Microsoft Word 流程。项目提供自己的文档模型、排版引擎和 DOCX 读写器,以及桌面与浏览器界面;源码测试覆盖选定的编辑与文件保留行为。
作者将 GridCraft 描述为以 Rust 净室重实现 Excel 风格的电子表格流程。工作簿模型、公式解析器与依赖驱动的重新计算连接到 XLSX 读写,以及供桌面、浏览器和自动化接口共用的编辑命令层。
作者将 DeckCraft 描述为以 Rust 净室重实现 PowerPoint 风格的演示文稿流程。其幻灯片模型、渲染与命令层支撑桌面/浏览器编辑及 PPTX 交换;所审阅源码测试检查构造的文稿和选定的保留包部件。
维护者报告使用 REA 与 Ghidra 研究 QuickBooks Desktop for Mac 的选定行为,随后独立实现本地记账应用。Python/SQLite 引擎持久保存复式分录、发票、库存和付款;公开合成样例检查有限范围的记账与回滚行为。
此教学案例明确披露作者先前接触过源码,将一次 REA 辅助的小型命令行应用调查推进为另行编写的 Node 实现。它保留所观察到的任务编辑、持久保存及选择行为,再将限定范围的输出与固定期望值及捕获的参考会话比较。
以 Rust 重建 Johnny Castaway 屏幕保护程序引擎,作者明确披露使用 REA 与 Claude Code。它读取原始文件,在现代桌面上运行恢复的动画脚本及按日历推进的故事状态;文档保留实现差异与有限测试范围,未确立完整行为等价。
作者报告借助 REA 梳理 Screen Studio 的 Electron 安装包,在 Claude Code 协助下从混淆代码中读出六条自动缩放与光标规则,再让 Claude Code 依据这些规则编写独立的录屏和渲染程序。文章介绍了所用命令、证据、光标对齐检查以及复刻版的不足;复刻版和解出的代码均未公开。
将 Claude 桌面应用中 Claude Code“新会话”界面的字符风场背景,重新实现为可离线运行的 WebGL2 页面,并附带 38 个滑块的控制面板。作者报告先用 REA 对桌面外壳及其远程网页包进行静态调查,再以新编写的渲染器复用恢复出的时序与布局参数。它与原效果的视觉语言和交互方式相近,但不是逐像素一致的提取。
一篇中文文章把复刻 REA 自带 Notes 教学应用的 Python CSV 导出器故意改坏三个版本,展示简单的“导出再读回”测试能让三者全部通过,而以官方 JavaScript 格式化函数为参照、在 215 组固定输入上逐字节比较则能逐一识破。作者还通过 MCP 连接 REA 6.5.0,重新运行其 JavaScript 分析,并验证被改动的证据记录在导入时会被拒绝;这是对验收检查的研究,而非新的重建。
Android TV 浏览器以自己的实现沿用 BrowseHere 的遥控交互设计;作者报告先用 REA 检查 BrowseHere APK,再用 Claude 构建 Sofa,仓库提供 APK 发布、截图及当前功能限制。
Rust 桌面重建以 REA 与 Ghidra 的研究复现 Mekhanotronika Fast View 5 的录波分析和继电保护特性视图,公开行为规格、事实索引、截图及跨平台构建,并列明格式与视觉保真度缺口。
Rust/Tauri 磁盘分析器结合 REA/Ghidra 对 WinDirStat 2.5.0 的调查及其树图、色彩算法的源码移植;文档区分二进制核对结果与源码来源,并列明多项文件操作和 Windows 集成尚未经实机测试。
Windows 索尼耳机客户端在 REA 辅助二进制清点及源码检查后采用既有 libmdr/libmdr-bt 引擎 DLL,桌面界面参考 Sound Connect;协议实现和设备支持来自上游复用,并非本项目重新恢复。
macOS 录制器参考 OBS 架构,研究结合 REA 软件包检查、平台工具及公开源码资料;提供屏幕/摄像头录制和推流,但场景、输入源功能范围更小,研究笔记明确记录原生分析引擎不可用。
Rust 画布在 REA 调查 Paper Desktop 壳层后参考其编辑行为;没有恢复托管编辑器,研究区分已观察的壳层集成与推断的编辑器功能,新几何文档模型也不同于 Paper 的 HTML/CSS。
根据实测 USB 音量行为,通过 macOS 音频代理将音量键映射到 KEF LSX II 的局域网控制。项目报告音量步进更均匀,同时转发 USB 音频;扬声器固件未修改。
实现网易 UU 远程的非官方原生 Linux 被控端;维护者称协议行为来自对官方客户端流量及已发布程序的调查。Rust 实现将选定的桌面、输入和辅助工具通道连接到 Linux 服务,另有仍处于实验阶段的 Linux 控制端。作者将开发归因于 Claude 与 Codex,未确立 REA 使用。
在原生 macOS 菜单栏应用中实现选定的 TCL Home 空调控制与用电量报告。项目改编既有社区协议实现,并记录通过调查 Android 模块恢复另一条统计请求的过程。报告的验证检查云端状态,不等于独立核实设备实际运行或完整设备等价性。
在 Claude Code 本地浏览器桥接中替代 Claude in Chrome 扩展一端,把请求的操作交给 Browserbase 云端浏览器执行。作者的帖子串描述了逆向得到的消息格式,即每条 JSON 工具调用前加 4 字节小端长度;插件则将 17 个具名工具映射为 Stagehand/CDP 操作。这是已归档的互操作适配层,部分工具仅为占位实现,并非恢复出的 Anthropic 代码,也未经验证与扩展等价。
实现可替代 Meta AI 配套应用的 Android 客户端:直接使用 Ray-Ban Meta 眼镜自有的蓝牙与 Wi-Fi Direct 协议,导入媒体、提供设置,并用用户选择的模型回应“Hey Meta”。项目 wiki 记录了链路分层、加密、服务及 Meta 端的所有权流程,并列出 153 个未解问题。项目以实机试用代替测试套件,因此所述型号和固件之外的行为仍未经验证。
扩展 Wine 11.17,使已签名的 MSIX 商店应用(主要目标为 Shapr3D)无需源码或符号即可在 Linux 上安装运行。约 49,000 行改动新增了 DirectComposition 实现、合成交换链和应用模型宿主;微软自己的 XAML 与应用模型 DLL 则在使用者机器上从 Windows 11 镜像中提取后原样运行。作者称大部分逆向工程和代码由 Claude 完成;各应用支持程度不一,由项目回归测试检查。
记录 Race-Keeper “Instant Video” 记录仪所写的专有 .rkd 遥测格式(随附播放器仅支持 Windows),并以结果一致的 Python 与 Go 解析器把 GPS 和 IMU 通道导出为 Telemetry Overlay CSV 与 GPX。作者称十六进制分析和假设检验由 Claude Code 协助完成,并以已知车辆编号、赛道位置和车速作为锚点。字段含义依据作者自有录制数据的物理交叉核对得出,若干记录类型仍未完全解读。
一款原生 macOS 应用,用于获取 Elgato 4K X 采集卡的 10 位 P010 视频模式;项目称苹果内置的摄像头驱动不会向应用开放该模式。一个 root 权限辅助程序卸下该驱动,通过 libusb 直接执行采集卡的 USB 视频类(UVC)串流,为 Metal HDR 预览、HDR10 录制和编辑器提供画面。延迟数据和设备覆盖范围仍为作者报告。
一款原生 macOS 菜单栏应用,通过 LG webOS 电视在局域网内的加密 WebSocket 接口完成配对,可启动应用、切换输入源、调节音量和画面设置、发送指针输入并投放所选媒体。项目称 webOS 协议行为参考了公开的 Connect SDK,并沿用 PyWebOSTV 的注册清单。测试仅覆盖一台 webOS 5.0 电视。
在跨平台桌面与 Android 管理器中,通过三星 Galaxy Buds 专有的 RFCOMM 串口协议重新实现耳机控制。作者称通过分析耳机发出的二进制数据流并反汇编三星官方 Android 应用来恢复报文格式,并公开了 2019 款 Buds 和 Buds+ 的部分数据包笔记。除官方应用的设置外,它还提供电池统计、诊断、出厂自检、隐藏调试信息,以及适用型号的固件刷写。
原生 Windows 客户端,以重建 Windows 邮件与日历的功能、保留熟悉的使用体验为目标。上游 README 说明了 WinUI 3 界面、邮件与日历服务、联系人、待办及离线工作流。
以一个 iOS 应用替代 Honda RoadSync 仅支持 Apple Music 的媒体控制:通过低功耗蓝牙与 Honda PCX 2025 的 TFT 仪表配对,把车把按键转换为对任意播放器生效的系统级命令。作者记录了仪表的 BLE 服务、密钥交换、按键注册与事件字节,据称依据官方 Android 应用及通信日志推断得出。结果为作者在一台 PCX125 上的报告,协议说明区分了已确认与未验证的部分。
在 macOS 上以 SwiftUI 应用和 Python 后台服务替代 ScanSnap Home,为富士通/PFU ScanSnap iX500 提供扫描:Wi-Fi 经由社区逆向的 VENS 协议,USB 经由 SANE,输出可搜索的 PDF。项目内置 bramheerink 的 GPL-2.0 驱动并为 macOS 做了扩展,还记录了更多握手字段和硬件状态字段,包括扫描键状态位。结果均为作者报告,仓库未公开测试或抓包记录。
以原生 macOS 菜单栏应用实现佳明手表的配套客户端:通过蓝牙配对,接收实时健康通知和原始 FIT 文件,并可上传至 Garmin Connect。源码注释称,GFDI 分帧、握手、文件传输和状态字段依据对一个自备佳明 Android 安装包的分析实现,并与 Gadgetbridge 等社区实现相互核对。设备验证仅涵盖一款手表;可选启用的 MCP 与 HTTP 接口只提供本地缓存的数据。
用 Go 重新实现 Cloudflare WARP 客户端的 MASQUE 模式:通过基于 QUIC/HTTP/3 的 Connect-IP(RFC 9484)隧道传输 IP 流量,并以原生 TUN 设备、SOCKS5 或 HTTP 代理、仅 TCP 的 L4 代理或端口转发等形式提供。RESEARCH.md 记录了作者如何借助 Frida、mitmproxy、JADX、IDA Free 和 Wireshark 分析官方 Android 客户端,弄清设备注册、TLS 客户端认证以及 Cloudflare 非标准的 cf-connect-ip 变体。它在官方客户端之外向 Cloudflare 服务注册并建立连接。
用 HTML5 和 JavaScript 重新实现 Winamp 2 的主窗口、均衡器和播放列表窗口,借助 Web Audio 实现播放、音量、声道平衡和均衡器,并渲染原有的经典 .wsz 皮肤,其文档称渲染效果与 Winamp 2.9 逐像素一致;Milkdrop 预设通过 Butterchurn 的 WebGL 移植版运行。它以 webamp npm 模块的形式发布,可嵌入网页,同一 monorepo 还运行着 webamp.org 和 skins.webamp.org 皮肤博物馆。其中的 webamp-modern 原型面向 Winamp 3/5 的现代皮肤,内含 MAKI 皮肤脚本解释器;MAKI 字节码格式原本没有公开文档,作者对其进行了逆向分析,并在仓库中写成文档。
以离线的 macOS、Android 和 iOS 客户端取代 WHOOP 官方配套应用:通过蓝牙与 WHOOP 4.0 及 5.0/MG 手环配对,解析其厂商自定义 GATT 帧,将手环中的历史数据转存到本地 SQLite,并在设备上计算恢复度、负荷、HRV 和睡眠。按手环型号分版本编写的协议参考记录了帧格式、校验、命令和传感器记录,建立在社区项目 my-whoop 与 goose 的成果之上。WHOOP 4.0 是受支持的路径;WHOOP 5.0/MG 的深层指标和 Oura 戒指支持仍属实验性。
以浏览器客户端替代 NIIMBOT 官方标签应用,可设计标签并通过 Web Bluetooth 或 Web Serial 打印,同一界面另有 Android(Capacitor)和 Windows(Tauri)版本。与打印机的通信由同一作者的 NiimBlueLib 实现,README 称其为最完整的 NIIMBOT 协议实现;协议记录在 NIIMBOT Community Wiki 上,打印失败机型的用户会被请求提供用官方应用打印时的数据包抓包。README 称客户端完全在浏览器中运行,标签数据也保存在浏览器里。
用一组 Rust crate 和 oura 命令行客户端重新实现 Oura Ring 第 3/4/5 代的低功耗蓝牙协议,可直接与戒指配对、认证并同步数据,无需 Oura 账户或云服务。作者称从反编译的 Android 应用中恢复了 GATT 布局、数据包帧格式和基于 AES 的应用认证流程,并依据 Ghidra 对应用原生库的反编译结果,移植了历史事件解码器以及 HRV、睡眠负债、夜间体温基线等若干设备端指标算法。事件内容以原始形式存入 SQLite,解码器改进后可重新解码。
把 Sony 仅限手机的 Headphones 应用的部分功能重建为 Windows、Linux 和 macOS 桌面客户端,通过蓝牙 RFCOMM 连接已配对的耳机,调整降噪、环境声和虚拟音效设置。作者称通过逆向手机应用定义了其控制协议;代码重建了报文封装,包括起止标记、字节转义、序列号、求和校验和确认应答,以及客户端发送的两条参数设置命令。据报告只有少数型号完全可用,主要是 WH-1000XM3,项目现已归档。
以 Go 库和一个可自行部署的小型网页应用,重新实现 C by GE(现名 Cync)智能灯泡应用的云端控制通道。作者称先用 Apktool 反编译 Android 应用,找到用于登录和设备列表的 JSON HTTP 接口,以及另一条连接厂商服务器的原始 TCP 协议,再结合代理记录的通信和 Smali 代码,推断出该协议以类型和长度开头的消息格式及各类数据包编码。最终的 API 可列出设备、读取状态,并设置开关、亮度、色温和 RGB 颜色。
Clickwill 以 Swift Mac 应用重建 iPod classic 和 iPod nano 音乐库的直接编辑功能。它读写设备上的 iTunesDB 与 ArtworkDB,保留未知记录字节,处理 hash58 签名,并发布区分实测字段与待确认字段的字节映射。
spark-mail-linux 通过 Wine、两个兼容 DLL 和启动脚本在 Linux 上运行 Windows 版 Spark Mail。项目记录应用启动、浏览器登录、通知、剪贴板及文件打开行为,并通过修改 DLL 导入项和桌面桥接处理这些问题。
OpenTracks 是基于作者对 OpenTracks7 BETA1 的逆向研究所做的早期 UWP 移植。仓库中的 C# 和 XAML 实现更新了页面控件访问方式,并以 UWP 媒体播放 API 替换 WP7 的 MediaPlayerLauncher。
RTO eChalan 报告通过检查 AndroidManifest.xml、使用 JADX 反编译及沙箱分析,调查一个冒充印度政府交通罚单服务的 APK。作者报告将其识别为 BankBot 变种,并记录了 REQUEST_INSTALL_PACKAGES 权限、BIND_VPN_SERVICE 条目及妨碍反编译的大量混淆代码。
AOL 7.0 Retro Server 为 2001 年的 AOL 7.0 客户端实现本地 Python 服务端。它复现专有 P3 登录与安全握手、登录服务器到 BOS 服务器的切换,以及显示欢迎页和好友列表所需的登录后数据。
SteelSeries Overlay Hook 记录了用 IDA 分析 SteelSeriesGameOverlay.dll 的窗口、对象布局和 Direct3D 11 交换链,并在 C++ DLL 钩子中使用恢复的偏移。配套注入器通过拦截 Present 和 ResizeBuffers,在现有 GameOverlay 窗口中绘制 Dear ImGui 内容。
这项研究针对 macOS 版 WeChat 4.1.10,作者报告通过 LLDB 在 CommonCrypto 加密调用处设置断点,提取各数据库的 SQLCipher 密钥。文档比较内存扫描与 sqlite3_key 断点,并说明如何用 SQLite 页面离线核对密钥。
Siriously 研究 macOS 27 中 Writing Tools 调用入口的变化,并通过 Services 客户端恢复弹窗。作者用 Objective-C 运行时探查与行为跟踪定位 WritingToolsUI 私有类,将所选文本送入弹窗,再通过辅助功能 API 回写结果。分析针对一个系统构建版本。
tuya-mobile 以 Python 重建 Tuya 移动应用的请求签名、加密 API 调用和 MQTT 信令凭据派生。它用 HMAC-SHA256、SHA256 和 MD5 计算替代应用原生 libthing_security.so 的签名步骤,并提供 Smart Life 与 Tuya Smart 的版本化配置。
ddg-tenor-bridge 将 Gboard 的 Tenor GIF 搜索指向一个以 Tenor v2 响应格式返回 DuckDuckGo 动图结果的服务。文档说明如何修改 Gboard 保存的搜索地址标志,同时让其他 Tenor 功能继续使用原端点。
MSP CSV Export Format 还原 My Stocks Portfolio & Market 应用未公开的 CSV 导出格式。作者对照十一份 iOS 导出文件、应用显示内容和公开翻译字符串,整理列、数据块及交易重放规则;仓库提供无第三方依赖的 Python 解析器和合成样例,用于检查格式规则及异常输入。
Benro Polaris Firmware Patcher 研究 Polaris 相机控制器,将新版 libgphoto2 组件和针对 pgphoto 的修改打包进用户自备固件镜像。文档还梳理 Benro Connect 应用行为及其控制设备的 TCP 报文。作者报告已使用 Canon EOS R5 Mark II 完成端到端测试。
这份恶意软件分析报告研究一个木马化的 FL Studio 安装包,其中包含 Electron/NSIS 包装程序和 Go 信息窃取载荷。作者通过静态检查追踪安装流程,并在隔离的 Windows 环境中结合进程、注册表和网络记录研究载荷,报告了所恢复的命令控制机制。
grsimwrite-mac 用 Python 为 macOS 重建 Windows 工具 GRSIMWrite 4.4.10 的 SIM 写卡流程。研究资料记录卡片家族配置和 APDU 写入行为;实现提供卡片识别、EF 读取、字段写入及格式化指令序列生成。
工具、项目与集成
112 项资源
结合 JADX 插件与 Python MCP 服务,读取 Android 反编译代码、资源、交叉引用和调试上下文。
基于 Python 的 MCP 服务,调用本地安装的 Apktool,使智能体能够解码 APK,列出、读取、搜索和修改 smali 与资源文件,读取 AndroidManifest.xml 与 apktool.yml,并重新构建项目。
Frida MCP 服务,提供持久插桩会话、运行时检查和 Android 静态代码与动态现场之间的导航。
单个可执行文件形式的 Frida MCP 服务,用于发现设备、管理进程会话和加载插桩脚本。
Frida
工具动态插桩工具,用脚本观察和分析运行中的原生及托管进程行为。
JADX
工具将 Dex 反编译为 Java 的 CLI/GUI 工具,提供 Android 资源解码、代码导航和引用搜索。
Apktool
工具将 Android 资源与 smali 解码为项目目录,并支持重新构建修改后的安装包。
用于 APK/DEX 元数据、字节码及引用分析的 Python 工具集;v5 源码分支还提供智能体技能和 MCP 文档。
ILSpy
工具.NET 程序集浏览器与 C# 反编译器,支持完整项目导出、元数据检查和命令行处理。
dnSpyEx
工具dnSpy 的社区延续项目,可在没有原始源码时调试和编辑 .NET 程序集。
Electron 官方归档工具,可列出和提取 ASAR 内容,便于检查打包后的 JavaScript 与应用资源。
通过 Web 界面与 API 检查移动应用包,结合静态分析及受支持设备上的动态测试,分析运行时行为与网络流量。
通过基于 Frida 的命令界面探索运行中的 Android 与 iOS 应用,检查应用存储、内存、运行时对象和插桩后的行为。
通过基于 Frida 的 Web 界面检查并 Hook 运行中的 iOS 与 Android 应用,提供方法与加密 API 拦截、文件系统与 SQLite 浏览、iOS 钥匙串与界面层级查看,以及常见网络库的 HTTP 流量捕获。
Blutter
工具利用匹配的 Dart 运行时分析 Flutter Android ARM64 AOT 二进制,生成带符号的汇编、对象池转储及面向目标的 Frida 脚本模板,辅助研究编译后的 Dart 应用逻辑。
解析、反汇编并部分反编译 React Native 的 Hermes 字节码包,展示 HBC 文件头和指令,并生成伪代码以帮助理解编译后的应用逻辑。
通过集成反编译器、字节码汇编、引用搜索、映射与去混淆工具检查和修改已编译的 JVM 应用;所审阅的 4.0 预览版还提供基础的只读 Android 字节码分析。
将已编译的 iOS/macOS 界面归档解码为对象树、Outlet/Action 连接、自定义类及导航关系,可导出 JSON 或 Mermaid 图,并通过 MCP 提供只读检查命令。
静态检查 Flutter/Dart AOT libapp.so 文件,恢复可用元数据、类结构、调用关系及伪代码,无需嵌入 Dart VM 或编译匹配的 SDK,提供 ARM64 与 x86_64 分析路径。
通过 HASM 文件反汇编和重新汇编受支持的 React Native Hermes 字节码包,为明确支持的旧版 HBC 提供字节码检查与修改能力。
源自 Fernflower 的 Java 及其他 JVM 语言反编译器,延续了 ForgeFlower、Fabric 和 Quiltflower 等分支的工作,注重输出质量和对现代 Java 的支持,包括 Java 21+ 的记录、密封类、switch 表达式和模式匹配。其命令行接受 JAR、ZIP、文件夹或 class 文件,可输出到文件夹、归档或控制台,支持多线程反编译和自动格式化。它也可作为 Maven Central 上的库嵌入使用,或通过替换 Fernflower 的插件在 IntelliJ IDEA 中使用;常规发布 JAR 内置三个插件,包括 Kotlin 支持和变量重命名。
用 Python 编写的 Android 反编译器,直接对 APK 执行查询,而不必先解包并建立索引。它在压缩的 DEX 条目中就地探测数据,利用 R8 编译器的常量重定位和指令去重所留下的布局,跨 DEX 文件搜索字符串、类型、方法和字段引用;对指定的类,则在内存中重建一个最小且自洽的 DEX,再由内置的 Androguard 反编译器副本转换为 Java 代码。droidasc 命令行和 Tk 图形界面可列出类、反编译单个类、解码 AndroidManifest.xml,并查找子类或接口实现;README 将其定位为供智能体批量分析 APK 的轻量后端。
基于 ARSCLib 的命令行 APK 编辑器,不依赖 aapt 与 aapt2,可将 APK 的二进制资源与 DEX 解码为可编辑的 JSON、XML 或 smali 并重新构建安装包。还能合并 XAPK、APKM、APKS 等分包,还原被混淆的资源名称,并打印包信息。
jnitrace
工具基于 Frida 的动态分析工具,用于跟踪 Android 应用对 JNI API 的调用,类似 frida-trace 或 strace,但面向 Java 本地接口。它记录原生库通过 JNIEnv 与 JavaVM 结构发起的 JNI 调用,支持包含/排除过滤、回溯以及可选的 JSON 输出以便后续处理。其跟踪引擎另以 jnitrace-engine 库形式单独发布。
用于读取、修改和重建 PE(可移植可执行)文件的 C# 库,既支持 Windows 原生映像,也支持带 .NET 元数据的映像。它提供三个抽象层次:原始文件头和节区(PEFile);导入、导出、TLS、异常、调试信息和 Win32 资源等数据目录的解析结果(PEImage);以及类似 System.Reflection 的 .NET 程序集和模块模型,涵盖托管、原生和动态方法体。它还能从 AppHost/单文件捆绑包中提取文件,支持 ReadyToRun 映像,无需 DIA 即可读取 PDB 和 Portable PDB 符号;上游的设计目标是在面对格式异常或经过混淆的二进制时保持稳健。
由 JustDecompile 原班开发者维护的跨平台桌面 .NET 反编译器,是其 JustDecompile 引擎的延续,基于 Mono.Cecil 并采用 Avalonia 界面。它把程序集加载为由命名空间、类型、成员和已解析引用组成的树,以 C#、VB.NET 或 IL 显示反编译结果,支持转到定义和前进/后退导航,并可搜索名称、类型、字符串字面量和指令。“创建项目”命令可将程序集导出为 Visual Studio 2015、2017 或 2019 项目。
基于 Wails 构建的 Windows 与 macOS 桌面图形工具,用于解包微信小程序 .wxapkg 包以供研究。它会扫描本机微信 3.x 和 4.x 安装中的小程序包目录(包括各用户目录),也可处理用户选定的文件或目录;PC 客户端以加密形式存储的包会先行解密。包内每个文件都按其记录的路径写出,并可选择美化 JSON、HTML 和 JavaScript 代码。
处于 Alpha 阶段的 Node.js 命令行工具,可把 React Native 的 JavaScript 包(index.android.bundle 或 main.jsbundle)、未打包应用的 js-modules 目录,或 Webpack 入口包与分块包拆分为每个模块一个、便于阅读的文件。基于 Babel AST 的标注器、编辑器和反编译器插件会消除 Babel 辅助函数、逗号运算符链和缩写布尔值等编译痕迹,把元素创建调用还原为 JSX,并可将模块改写为 ES6 import/export 形式,最后用 ESLint 和 Prettier 整理输出。被识别为 npm 包的模块默认跳过,也可指定一个模块 ID,只输出该模块及其依赖。
面向 Hermes 字节码(.hbc)的 Rust 反编译与分析工具包;.hbc 是 React Native 应用为 Hermes 引擎打包的编译格式,README 列出支持 HBC 40 至 99 版本。其 hermes-decomp 命令行可显示文件信息、反汇编,并将整个包或单个函数反编译为 JavaScript,较慢的深度模式还能恢复更多名称;此外提供终端界面、交叉引用、调用图、控制流图、Metro 模块与闭包视图以及字节码差异比较。独立的 hermes-mcp 服务器将读取和分析功能作为 MCP 工具提供,hbc-decomp crate 则以 Rust 库的形式提供这些功能。
MEDUSA
工具基于 Frida 的模块化框架,用于对分析者有权测试的 Android 与 iOS 应用进行运行时分析。通过单个协调脚本加载插件模块,检查网络与 WebView 活动、跟踪 API 调用、查看内存与加密操作、监控恶意软件行为,并处理 SSL 固定等保护。README 称其内置 90 多个可复用模块。
来自 mitmproxy 项目的工具,可在无需 root 的情况下移除使用者拥有或有权测试的 Android APK 的证书固定。它将应用标记为可调试(仅改动 AndroidManifest.xml),并通过 ADB 注入 Frida Gadget,复用 HTTP Toolkit 的解固定脚本,使检查代理能够读取应用流量。工具自带所需的 Android SDK 辅助程序,并可处理以 XAPK 形式提供的分包。
apk-mitm
工具命令行工具,为使用者拥有或有权测试的 Android APK 准备 HTTPS 流量检查。它用 Apktool 解码安装包、调整网络安全配置以信任用户添加的证书、关闭证书固定,再重新编码并签名修补后的 APK,使代理无需 root 设备即可读取应用流量。也支持以 .xapk 或 .apks 形式提供的应用捆绑包。
来自 HTTP Toolkit 的一组 Frida 脚本,用于在分析自有或经授权测试的应用时检查移动应用的 HTTPS 流量。将其注入运行中的 Android 或 iOS 应用后,可把连接重定向到检查代理、将用户提供的 CA 证书加入信任库,并关闭证书固定与证书透明度检查,使代理能够读取流量。各脚本也可单独使用以挂钩特定行为。
面向分析者有权检查的应用的 Flutter 逆向框架。它通过替换为预编译的已打补丁 Dart 引擎(repack 模式)或在运行时插桩应用自带引擎(attach 模式),导出包含每个函数名称、类、库以及其在 Dart 指令镜像中代码偏移的 JSONL 清单,供 Frida 或 IDA/Ghidra 使用。它还能在关闭 Flutter 证书固定的情况下,将应用的 HTTPS 流量路由到检查代理。
用 Rust 编写的反编译器,可将 APK、多 DEX 应用以及 XAPK/APKS/APKM 容器中 035 至 041 版本的 Android DEX 字节码转换为 Java,把 lambda 和字符串拼接还原为 Java 语法,并按 jadx 的风格为局部变量命名。默认情况下,每个文件还会经过一道据称保持语义的源码级整理,内联拷贝链、恢复三元表达式和 for-each 循环并删除无用赋值;--fast 可跳过这一步。除完整反编译外,15 个查询子命令可按需返回应用与清单信息、资源、字符串、交叉引用、类层次结构、反汇编以及单个类或方法,同样的查询也可通过 REST 和 MCP 提供。
基于 smalivm 的通用 Android 反混淆工具。smalivm 是一个沙箱化的 Dalvik 虚拟机,会逐个执行方法并记录所有执行路径上可能的寄存器与类取值;遇到文件或网络输入等未知值时,两个分支都会执行。Simplify 随后对 APK 或 DEX 反复进行常量传播、死代码删除、反射还原和窥孔优化,可在保持行为不变的前提下解密字符串、去除反射;它不会重命名类或方法。smalivm 也可作为库使用,最新发布版还附带基于它的单步 Smali 调试器 sdbg。
以 C++ 编写、原生运行于 Windows 的 Dalvik 反编译器与 Android 分析工作台,无需安装即可打开 APK、DEX、ODEX、OAT、JAR、AAR 和 class 文件。除带交叉引用、重命名和注释的 Java 与 Smali 视图外,它还能识别加固壳、反混淆并解密字符串、追踪数据流与污点、求解路径,运行基于规则的恶意行为、漏洞和隐私泄露扫描,并可转储设备内存或用 Frida 钩挂方法。Shell 与服务器两种命令行模式、Python 和 Java 脚本以及一个恶意软件分诊智能体技能示例,让脚本和智能体也能调用这些分析功能。
把 VS Code 变成 Android 逆向工作台的扩展,整合 Apktool、Jadx、smali-lsp 和 uber-apk-signer。它可将 APK 解码为资源文件和 Smali 并反编译为 Java,借助语言服务器为 Smali 提供定义跳转、引用查找和诊断,还能重新构建、签名并安装修改后的应用。此外,它可为 Smali 方法生成 Frida 钩子、加入 Frida gadget、借助 apk-mitm 为 HTTPS 流量检查做准备,并生成 Quark-Engine 恶意软件分析报告。
JetBrains 的分析型反编译器,可将 Java class 文件还原为 Java 源码;IntelliJ IDEA 内置了它,用于在调试或浏览 class 文件时显示代码。独立的控制台反编译器接受 class 文件、JAR、ZIP 或目录,可通过 -e 加载仅作为分析上下文的库文件,并将 Java 源码写入输出目录。选项涵盖泛型签名、lambda、内部类、记录模式与 switch 模式、单个方法的处理时限,以及对含糊或混淆标识符的重命名,也可由使用者提供的重命名类来实现。
用于检查已编译 Java 与 Android 程序的桌面套件:拖入 class、JAR、WAR、APK、DEX、XAPK 或 APKM 文件即可浏览其中的类和资源,并可并排显示最多三个反编译器或反汇编器视图。README 列出六个内置 Java 反编译器(Krakatau、CFR、Procyon、FernFlower、JADX 和 JD-GUI)、Krakatau 与 Smali/baksmali 反汇编器和汇编器以及 javap,还有用于 APK/DEX 转换的 Dex2Jar 和 Enjarify、用于编辑的内置 Java 编译器和静态搜索。Java 和 JavaScript 插件会收到全部已加载类的 ASM ClassNode,可用于字符串去混淆或恶意代码搜索等任务。
实验性 JavaScript 源码分析工具:本地训练后将 AST token 序列归入预设公式类别,并生成启发式结构、调用图和意图报告。它可用于代码理解实验,但预测结果不证明任意程序的不变量或语义等价。
本地 Python APK 初步分析工具,调用 apktool 与 strings 检查清单配置、源码及原生库字符串,输出 TXT/JSON 结果供人工核验。规则仅提示潜在问题,不证明可利用性,也不重建应用行为。
通过进程内托管的 ILSpy C# 桥接层,提供程序集、类型和指定方法的反编译、源码搜索及结构化 JSON 输出的 Rust CLI;独立的 PE 头检测器无需加载 .NET 运行时即可识别托管程序集。
面向已构建 React JavaScript 的静态分析 CLI,可输出更易读的代码,以及推断的 API 请求、路由和应用常量报告;存在 source map 内嵌源码时可将其提取。
面向鸿蒙方舟字节码(.abc)的反编译工具;HarmonyOS 应用包中的 modules.abc 即为此格式。它通过改造 jadx 反编译器实现,并借助打过补丁的 abcde 库读取文件。由于方舟字节码有很大一部分与 DEX 字节码语义相近,它沿用了 jadx 的图形界面、中间表示和处理流程:把 .abc 文件拖入基于 jadx 的窗口即可查看反编译代码。README 称 282 条方舟字节码中可用的 227 条指令均已实现,其中大部分特殊指令以伪函数形式实现。
基于浏览器的 Java 逆向工程工具:可加载 class 文件和 JAR/ZIP 归档,使用编译为可在浏览器中运行的 Vineflower(默认)、CFR、Procyon 或 JASM 进行反汇编或反编译,另有自带的字节码反汇编器。它能绘制继承与接口实现关系图以及单个方法的控制流图,搜索常量池条目、指令以及成员声明或使用位置,可应用 Tiny、SRG/TSRG/CSRG 或 ProGuard 映射,还提供剥离或规范化字节码属性的通用转换器,帮助反编译器更好地应对混淆。JavaScript 脚本 API 可添加反汇编器并操作工作区;README 自己也建议,若要进行严肃的逆向工程,应使用 Recaf。
基于 Qt6 的桌面前端,在 IDE 式工作区中调用 Apktool、JADX、uber-apk-signer 和 ADB 处理 Android 安装包。它将 APK 解码为 smali 和资源文件,可选附加 JADX 生成的 Java 代码,随后重新打包、签名(可生成密钥库并执行 zipalign)并安装到所选设备;还可指定厂商框架文件和额外的 Apktool 参数。解码后的项目以文件树形式打开,提供 smali、Java、XML 和 YAML 的语法高亮编辑、图片查看器、十六进制编辑器和跨文件搜索。
RedNaga 推出的 Android 安装包识别工具,类似 PEiD。它借助 yara-python-dex 的 DEX 模块,用 YARA 规则扫描 APK、DEX 文件、嵌套的 ZIP 条目及其中的原生 ELF 库、PE 格式 DLL 和资源,报告识别出的编译器、加壳工具、保护工具、混淆工具以及反虚拟机或反反汇编手法,可按文件输出或输出 JSON。可选的追踪器规则注明来自 Exodus API,用于标出内嵌的追踪 SDK;APKiD 只做识别,不会脱壳或反混淆。
用 Java 编写的工具集,可将 Android DEX 字节码(包括 APK 内的 DEX 文件)转换为打包成 jar 的 JVM .class 文件,供 Java 反编译器和字节码工具使用。它还通过类似 ASM 的 API 读写 DEX,以自有实现进行 smali 反汇编与汇编,可将 jar 转回 DEX,并附带 d2j-decrypt-string 等辅助工具。
一个 Bash 脚本,围绕 apktool 自动完成 Android 应用分析中的重复性工作:从设备或模拟器拉取已安装的应用包、解码资源并反汇编 dex 代码,以及将解码后的目录重新构建为 APK。拉取 app bundle 的拆分 APK 时会将其合并为单个 APK,脚本还可以准备一份用于 Frida 插桩的副本。
采用客户端/服务器架构的 Android 自动化与动态分析平台,用于分析者有权测试的设备。设备端服务通过单一服务对外提供 UI 自动化、基于浏览器的远程桌面、HTTPS 流量抓取(MITM)和内置的 Frida 插桩,由包含 160 多个 API 的 Python 客户端库驱动。README 称其支持 Android 6.0+,可在有无 root 的情况下运行,将 Frida RPC 映射为 Python 与 JSON-RPC 调用,并内置 MCP 服务器和自然语言 agent 命令。
基于 Frida 的终端工具,作者称其为“Binder 版 Wireshark”,用于拦截 Android 进程发出的 Binder IPC 事务,并解析每条消息及其回复。随附针对特定 Android 版本的结构文件,可把事务编号映射回 AIDL 接口和方法名,并把 parcel 参数解码为带类型的字段,与十六进制视图并列显示。频率面板和 JSON 过滤配置可按接口、方法或类型筛选消息流,从而看出应用调用了哪些系统服务、传递了什么数据。
基于规则分析可疑 Android 应用的引擎:载入 APK 的 Dalvik 字节码,用 JSON 行为规则逐条检查;每条规则列出若干权限和一对框架 API 调用,并按五个置信阶段判定,从申请了该权限、调用了其中一个 API,到两个调用在同一方法中按顺序出现并传递同一寄存器。加权后的规则命中结果给出威胁分数,并可输出摘要、详情、JSON、网页、调用图和标签报告;Quark Script 把这套分析以 Python API 形式提供,项目将其用于挖掘漏洞。仓库还附带两个 Claude Code 技能(分别用于运行分析和生成规则),以及一个可选的、调用 OpenAI API 的 LangChain 智能体。
结合静态分析与基于 Frida 的动态插桩的 Android 逆向分析平台;master 分支是重写后的 Reversense(Dexcalibur 2.0),以 Node.js Web 服务形式运行,支持多人协作项目。README 介绍了如何把应用的文件、Smali 和原生代码建模为统一的可搜索表示(集成 Radare2),为 Java 方法、Objective-C 和原生函数生成钩子,并依据在已连接设备上采集的跟踪构建动态交叉引用。仓库中的 Inspector 插件分别观察权限、加密、文件系统、网络和界面等方面的活动。
C 语言命令行工具,用于从 ART 的 dex2oat 编译器自 Android 8.0(API 26)起在 Oat 文件旁生成的 Vdex 容器中提取 Dex 字节码,并默认撤销 ART 的 dex-to-dex quickening 优化,使输出重新成为普通 Dex。它还能转储 Vdex 文件中保存的验证依赖记录,以类似 dexdump 的格式反汇编字节码,并报告某个 Vdex 版本对应的 Android API 级别。Android 9 和 10 的 Vdex 文件存放的是 CompactDex,随附的 deodex 辅助脚本会借助单独构建的 compact_dex_converter 将其转换回标准 Dex。
用 C 语言编写的 Java 与 Android 反编译器,可多线程地从 class、JAR、WAR、DEX 和 APK 文件还原 Java 源码;还能输出类似 javap 或 dexdump 的类信息,将 APK 和 DEX 转换为 smali,用正则表达式搜索其中的字符串,并为 DEX 和 APK 生成调用图。运行 garlic -m 会启动基于 stdio 的 MCP 服务器,提供七个工具,可反编译文件、输出类信息、构建调用图、将调用图导入 DuckDB 以便用 SQL 查询,以及读取提取出的 AndroidManifest.xml。README 称反编译一个超过 200 MB、约 19 万个类的 APK 只需 12 秒。
基于 Capstone 的 Android 设备端反汇编器与二进制查看器,可打开从存储中选取或从已安装应用中选择的 ELF 共享库与可执行文件、目标文件、Windows PE 文件、.NET 程序集、dex 文件和 APK。它可显示 ELF 详细信息和符号表、PE 导入与导出表,提供支持跳转跟随及按符号或地址定位的反汇编视图、十六进制视图、ASCII 字符串搜索,以及熵和卡方检验等字节统计,帮助判断数据是否经过加密。分析结果以项目形式保存,并可导出为原始文件、文本、JSON 或数据库文件。
由 Detect-It-Easy 作者 hors 开发的 APK 与 DEX 检测工具,借助 Detect-It-Easy 系列的扫描引擎和签名库,报告在 Android 软件包中识别出的构建工具、库和保护措施。其 Qt 图形界面还可查看 AndroidManifest.xml、MANIFEST.MF、DEX 和 ELF 内容,以及字符串、十六进制、熵、哈希和 APK 签名,并能扫描整个目录。命令行版本支持递归、深度、启发式或全类型扫描,并以 XML、JSON、CSV 或 TSV 格式输出结果。
面向 JSXBIN 的 C++ 反编译器。JSXBIN 是 Adobe 旧版 ExtendScript 的二进制格式,ExtendScript 则是用于为 Photoshop、InDesign、After Effects 等应用编写脚本的 ECMAScript 3 方言。它读取 JSXBIN 1.0、2.0 或 2.1 字面量,解析为语法树,再输出 JavaScript 源码,并在文件头注明格式版本。实验性的 --unblind 选项可为经 JsxBlind 混淆的符号重新命名;同一反编译器还以共享库形式提供,并附基于 ctypes 的 Python 绑定。
evilpan 开发的 Android JNI 代码静态逆向辅助工具。其 extract_jni.py 脚本用 Androguard 解析 APK 中的 DEX 文件,找出声明为 native 的方法,推导出每个方法(包括重载方法)对应的 Java_ 修饰符号名和 C 函数原型,并连同 APK 中 arm64-v8a 原生库导出的 Java_ 函数和 JNI_OnLoad 一起保存为 JSON 签名文件。面向 Ghidra、IDA Pro 和 Binary Ninja 的脚本读取该文件,把函数原型和 JNI 类型应用到相应函数上;radare2 脚本仍在开发中。
面向 HarmonyOS NEXT 安装包(.hap、.app 和 .abc)的桌面逆向与 AI 辅助分析工作台,其二进制发行版还加入了 Android .apk/.aab、iOS .ipa 以及独立 PE、ELF 和 Mach-O 文件的分析。README 介绍的功能包括浏览包结构、资源、签名和元数据,反汇编和反编译 ABC 字节码并查看字符串与交叉引用,Android 类 Java 反编译,原生文件的头部、导入表和安全缓解措施视图,以及通过 HDC/ADB 安装应用、读取日志和投屏的设备工作流。内置的 ReArk Agent 借助 OpenAI 兼容接口或本地 Ollama 模型回答关于当前包的问题,按需检索包内证据,主机和设备操作需经审批流程。
参照 AOSP androidfw 中 ResourceTypes.h 的结构开发、旨在取代 aapt/aapt2 的 Java 库,可读取、写入、修改和创建 Android 资源表(resources.arsc)以及 AndroidManifest.xml 等二进制 XML 文件。它能将资源解码为可读的 JSON(也适用于名称已混淆的资源),或在名称完好时解码为 XML 源码,并把这两种形式重新构建为二进制资源;APK 模块类可解码、合并并写出整个安装包。库中另有实验性的 DEX 读写组件,命令行工具 APKEditor 即基于该库开发。
Pithus Android 应用分析服务背后的可自托管 Django 平台,README 称其面向活动人士、记者、非政府组织和研究人员。上传的 APK 以 SHA-256 为名保存,并排队执行多项静态分析:用 Androguard 提取属性与类,用 APKiD 识别编译器与加壳工具,用 ssdeep 和 Dexofuzzy 计算相似度,用 Quark-Engine 规则识别行为,用 androcfg 生成调用图,匹配 Exodus 跟踪器特征,生成 MobSF 静态报告,读取 APK 签名块元数据,并运行分析者编写的 YARA 规则,还可对已存样本进行回溯检索。结果写入 Elasticsearch,以网页报告和 REST API 呈现,并可选用 MalwareBazaar、VirusTotal、MISP 和 Google Play 查询补充信息。
NCC Group 基于 Python 和 Flask 开发的网页界面,用于借助 Frida 对 Android 应用进行运行时分析,旨在简化 Frida 脚本的编写。分析者可在本地浏览器页面中枚举已加载的类、DEX 文件中的类、类加载器及某个类的方法,再为多个函数生成并保存跟踪脚本,其中包括动态加载的 DEX 或 JAR 文件中的函数。可配置的监控功能会记录文件、HTTP、WebView、SQL、IPC 和 SharedPreferences 相关调用。
使用 Kotlin 编写的 OpenHarmony 逆向工具包,可解析方舟字节码(.abc)文件,即 HarmonyOS 应用包中 modules.abc 的格式,也能解析 HAP 包和资源索引(.index)文件。其基于 Compose 的桌面查看器可浏览类、方法、字段、字面量数组及导入导出信息,并反汇编方法,以可读形式显示导入模块和资源引用;实验性功能可把部分方法直译为 JavaScript,命令行则可导出类列表和资源索引。解析核心也作为 JVM 库发布,另一个项目 abc-decompiler 即基于它的补丁分支。
在浏览器中运行的 JavaScript 反混淆与解包工具,以 Jekyll 网站形式构建,也可作为渐进式 Web 应用离线使用。它可自动识别或由使用者选择编码方式,还原 Dean Edwards 的 Packer、基于 eval 和数组的混淆器、部分 Obfuscator.IO 输出、JSFuck、JJencode、AAencode、URL 编码、My Obfuscate 和 WiseLoop,再对结果进行美化和语法高亮,并提供反转义字符串、合并字符串、恢复对象路径和计算常量表达式等选项。另有可选的用户脚本把代码发送到 JS Nice 服务,为难以阅读的标识符重新命名。
以 C++ 实现的 DEX 解析库,提供 Kotlin 与 Java API,可加载 APK、DEX 字节数据或应用的类加载器,并按特征而非混淆后的名称查找类、方法和字段。匹配条件可组合包名范围、修饰符与原始访问标志、字段类型、参数类型和返回类型、注解、方法使用的字符串与数值常量以及其调用的方法;批量查询可依据字符串一次定位多个目标,查询结果还提供操作码、调用者、被调用方法和所用字段。其文档以让 Xposed Hook 点在混淆后的不同应用版本间保持可用为主要场景,同样的查询也可用来快速、可编程地检索应用字节码。
从 Bun 编译的独立可执行文件中恢复可读 JavaScript 的 Node.js 流程。它提取内嵌的模块图和资源,把打包代码拆成每个模块一个文件,用指纹库标记 npm 第三方代码,再借助 wakaru、依据导出映射恢复名称的保格式重命名以及可选的 Gemini 命名建议进行反混淆。之后通过依赖图聚类、手工或借助 LLM 的聚类命名,以及跨版本迁移已有成果,来整理和更新输出。
基于模式匹配的 Dalvik 反混淆工具,可处理 APK、DEX 文件或 Smali 目录:先用 baksmali 反汇编,再由各插件在 Smali 代码中查找混淆模式。为得知匹配到的调用会返回什么(例如解密后的字符串),它把一个小型驱动程序合并进应用的 DEX,推送到已连接的 Android 设备或模拟器,并通过反射在设备上调用对应的静态方法;返回值以常量替换原调用,之后再重新组装 APK 或 DEX。插件涵盖简单字符串加密、按索引查找字符串和类、部分 DexGuard 模式以及部分反射调用;作者称它启发了另一个反混淆工具 Simplify。
面向 HarmonyOS NEXT(纯血鸿蒙)应用的反编译器,发布于 jd-opensource GitHub 组织下,可将 Panda 二进制文件(.abc 方舟字节码)还原为 ArkTS 源码。其 xabc 程序解析字节码,将其提升为方舟编译器的 Panda IR 以便分析,再通过循环、类、词法环境和模块变量的重建生成 ArkTS 语法树,最后输出为 ArkTS 代码。跨平台图形界面可基于 Electron 或 Tauri 构建,提供文件浏览、函数与符号列表、交叉引用、搜索和十六进制视图;README 链接了 2025 年和 2026 年的 Black Hat Arsenal 展示。
Terry Chia(Ayrx)编写的 Ghidra 扩展,包含用于分析 Android NDK 应用原生库的脚本。JNIAnalyzer.java 使用随附的 JADX 反编译器从 APK 中提取所有原生方法的签名,并把返回类型、参数名和参数类型应用到已加载 .so 中的匹配函数。RegisterNatives.java 借助 Ghidra 的 P-Code API 查找 RegisterNatives 调用,为动态注册的方法铺设 JNINativeMethod 结构;TraceRegisterNatives.java 则应用作者 trace_registernatives 工具的输出。随附的 JNI 数据类型归档用于设置 jni.h 类型。
一款仅以发布版 APK 形式提供的 Android 应用,把 APK 逆向工作流全部放在手机上完成,涵盖安装包提取、Java 反编译、原生代码分析、编辑和重新打包。它可从存储或已安装应用中提取 APK、XAPK 和拆分的 APKS 安装包,逐个类在 Jadx(含回退与 IR 模式)、CFR、Procyon、JD-Core、Krakatau 和 Vineflower 之间选择引擎反编译,通过内嵌的 radare2 分析原生库并提供伪 C、汇编、十六进制、控制流图和调用图视图;自 v20 起还能编辑资源、二进制 XML、清单和 smali,再重新打包并签名 APK。内置的 MCP 服务器允许 MCP 客户端编辑这些项目文件,重新构建仍需用户手动触发;README 还列出借助 Unflutter 分析 Flutter 的 Dart AOT 代码以及解析 Unity il2cpp 元数据。
用 PHP 编写的 SpiderMonkey 34 JavaScript 字节码解码与反编译工具,README 称它可能可以处理 cocos2d-x 编译生成的 .jsc 文件。它解析以 XDR 序列化的脚本及其中的原子(atom)、常量、对象、正则表达式和 try/作用域注记,依据 SpiderMonkey 34 的操作码表解码指令,并为每个函数上下文重建近似的 JavaScript 代码;另一个脚本则改为输出解码后的操作序列。作者称该项目尚未完成,可作为理解 JavaScript 虚拟机工作方式的示例。
Lasha Khasaia 开发的交互式命令行工具,用于对 Android APK 做初步逆向分析,以 C/C++ 编写以求速度。它解包 APK,解析 AndroidManifest.xml、签名证书和压缩包根目录下的 DEX 文件,随后打开一个支持 Tab 补全的交互环境,可列出权限、Activity、Service、Receiver 和可能的入口点,列出并搜索类、方法和字符串,反汇编某个方法的 Dalvik 字节码,以及列出、计算哈希或提取原生库。其他命令可报告应用是否可调试、依据证书得出的创建日期、URL 和电子邮件字符串,并推测应用使用 Java、Kotlin 还是 Xamarin .NET 编写。
一款仍在开发中的 Android 应用,用于在设备上编辑 DEX 文件,构建在仓库内经修改的 Google smali、baksmali 和 dexlib2 副本之上。它把一个或多个 DEX 文件载入类树,在基于 Sora Editor 的编辑器中以 smali 打开类,提供方法、字段和字符串列表、标签跳转、搜索替换、方法流程图,以及借助 Jadx 把单个类或方法反编译为 Java,之后可删除类或重新编译修改后的 DEX 文件。README 称应用的逻辑与界面构思来自 MT Manager。
面向 Android Dalvik 虚拟机 dex 格式的汇编器与反汇编器:baksmali 将 dex、APK、odex 和 oat 文件反汇编为 smali 文本,smali 再把这些文本汇编回 dex 文件。README 称其语法大致参照 Jasmin 和 dedexer,支持 dex 格式的全部功能,包括注解、调试信息和行号信息。baksmali 还能对 odex 和 oat 文件做去优化(deodex),并列出 dex 文件中的类、方法、字段、字符串和引用;dexlib2 库则供 Java 程序读写 dex 文件。
基于 Kotlin Compose Multiplatform 的桌面端 Android 逆向与修改工作台。它可打开 APK 和 DEX 文件,无需手动解包即可将 APK 内的 DEX 类作为 smali 编辑,提供语法高亮和代码补全,并可显示由 JADX、CFR 或 Vineflower 反编译出的 Java 代码。它还能通过 apktool 浏览资源和 XML 文件,在类树、字符串常量以及方法和字段引用中搜索,用 apksig 和 zipalign 为修改后的 APK 重新签名,并通过 ADB 将其安装到已连接的设备上运行。
一个 Python 命令行工具,用于还原被 Paranoid 和 LSParanoid 这两款 Android 字符串混淆插件隐藏的字符串,使 smali 代码便于静态分析。它在 smali 目录中查找混淆器的字符串查询方法和编码后的分块数组,用移植自这两个库 DeobfuscatorHelper 和 RandomHelper 类的 Python 实现解码分块,并就地把每处查询调用改写为带标记注释的 const-string 指令。辅助命令可列出还原的字符串、把分块保存到文件,以及根据已保存的分块解码单个字符串。
用 Python 编写的 Dalvik 字节码模拟器,README 将其比作面向 Dalvik 的 Unicorn:它解析 DEX 文件并逐条指令执行方法,用 Python 模拟实现替代 String、StringBuilder、Base64、ArrayList、AES Cipher 及部分反射等常见 Java 与 Android API。它可针对 Android 入口点、名称匹配的方法或带指定参数的单个方法运行,记录代码构造或解密出的字符串,并可输出为 JSON,有助于还原应用和恶意软件中被混淆的字符串。
用 Python 编写的解析器,处理 Android Flutter 应用中存放编译后 Dart 代码的 libapp.so 里的 Dart AOT 快照。它借助 pyelftools 定位 VM 与 isolate 快照符号,反序列化快照中的各个簇(cluster),并把 isolate 快照中的全部类导出为文本,列出字段、方法签名以及每个方法在 libapp.so 中的绝对代码偏移。它恢复的是声明和偏移,供进一步反汇编使用,并不反编译函数体。
面向 Android 应用测试的 Frida 本地浏览器界面:FastAPI 服务会列出通过 USB、本机或远程 frida-server 连接的设备,以及其中已安装的应用和正在运行的进程,分析者可在浏览器中附加到进程、启动应用、在启动时注入脚本,或断开、结束进程。脚本可在 Monaco 编辑器中编写,也可从本地文件或 Frida CodeShare 载入,CodeShare 脚本可排队在启动时运行;每个会话的控制台输出都会保留,并可导出为文本。
用于解析二进制 Dart VM 快照(例如 Flutter 发布版应用中的 libapp.so)的 Python 模块,可把快照内容还原为带反向引用、便于浏览的 VM 对象图,连同快照中转储的内存结构一并解析。它支持旧式、AppJIT 和 AppAOT 三类快照,通常能从快照本身自动识别编译标志和设置,可从 app.so 或 .snapshot 文件中自动提取快照数据块;其 darter.asm 模块借助 Capstone 反汇编 ARM 和 ARM64 代码,查找其中对 VM 对象的引用。README 列举的用法包括提取应用的字符串表、查找某个对象在何处被使用、生成调用图和库依赖图、为 Radare2 导出元数据,以及与参考快照比对来对快照去混淆。
字节跳动开发的 Android APK 静态污点分析引擎,面向超大型应用设计:它依据 JSON 规则扫描应用,规则以 Jimple 签名指定入口方法、源、汇和净化器,用于漏洞与隐私合规审查。它基于 Soot 的 Jimple 中间表示,并复用 FlowDroid 的清单与资源解析模块,但指针分析和污点分析均为自行实现,且区分字段。结果写入 results.json,其中记录应用、组件和权限信息、深层链接及 JavaScript 桥接接口,以及每条从源到汇的路径,每项发现另有一个 HTML 页面。
基于 Frida 的工具,用于查看正在运行的 Android 应用的实时 Java 堆,可作为 objection 插件加载,也可通过其小型 Python 包调用。classsearch 与 objectsearch 按模式查找已加载的类,或查找某个类的存活实例并返回对象句柄;classdump 打印类声明的字段、静态字段值和方法,objectdump 打印实例的字段值,可将其按父类查看,并列出集合或映射中的全部条目。分析者借此查看静态反编译无法确定的运行时数据和具体实现。
用于解析 Android 二进制 XML(例如 APK 中编译后的 AndroidManifest.xml)并输出为可读 XML 的 Java 库和命令行工具。它是 Red Naga 对 Android4ME AXMLPrinter 几乎全部重写的版本,能够处理实际样本中被篡改的文件,包括字符串表乱序和起始标签被改写等情况,并可重新写出传统 AXML 格式。自 v2.0.0 起,它还能读取 Android App Bundle 使用的 protobuf 格式 XML,并自动识别输入格式。
面向 Android 应用和 Java 程序的静态数据流(污点)分析工具,基于 Soot 构建,可作为命令行工具使用,也可作为 Maven 库集成。输入 APK、Android SDK 的 platforms 目录以及源点和汇点定义后,它会对组件生命周期和回调建模以构建调用图,并报告从敏感源点流向汇点的数据流;随附的 SourcesAndSinks.txt 可作为分析隐私泄露的起点,StubDroid 摘要则用于对库方法建模。选项涵盖依据用户提供的 ICC 模型文件分析组件间数据流、路径重建、隐式流、反射,以及用精度和召回率换取速度的超时设置;其分析方法发表于 PLDI 2014 论文《FlowDroid: precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for Android apps》。
用纯 Python 3 编写的转换工具,把 Dalvik 字节码转换为等价的 Java 字节码,使 Java 分析工具和反编译器可以用于 Android 应用:输入 APK(多 dex APK 中的所有 DEX 文件会合并到同一个 jar)或单个 DEX 文件,即可输出由 class 文件组成的 jar。README 将其与 dex2jar 对比,并列出它能处理的边缘情况,例如 Unicode 类名、被当作多种类型使用的常量、隐式类型转换、跳入正常控制流的异常处理器、超长方法,以及引用常量过多的类。默认还会进行复制传播、删除未使用值等提高可读性的优化。
Magisk、KernelSU 与 APatch 模块,在已 root 的 Android 设备上安装 frida-server 并在开机时启动,Frida 客户端无需手动启动服务即可连接进行动态插桩。GitHub Actions 每天检查 Frida 是否有新版本,下载 Frida 官方为 arm64、arm、x86 和 x86_64 构建的 frida-server,并发布对应的模块 ZIP 及供 root 管理器更新使用的 updater.json。服务默认监听 127.0.0.1:27042,可在模块目录的文件中写入其他端口;模块的操作按钮可启动或停止服务。
开源的 .NET 反混淆与脱壳工具,尝试把加壳、混淆过的程序集恢复到接近原始的状态。视混淆器而定,它能以静态或动态方式解密字符串、常量、方法、资源和内嵌程序集,移除代理方法、垃圾类以及防篡改和反调试代码,还原被虚拟化的代码和被打乱的控制流,并把符号重命名为可读名称;也可以只检测程序集使用了哪种混淆器。README 列出 19 种受支持的混淆器和加壳工具,包括 Dotfuscator、.NET Reactor、Eazfuscator.NET 和 SmartAssembly。
Google 推出的独立 Android 可执行文件与库浏览工具,可显示类接口与成员、dex 计数和依赖关系。它能打开 .dex、.aar 和 .so 库,.apk、.jar 和 .class 可执行文件,以及 AndroidManifest、资源和布局等 Android 二进制 XML 文件,并可把显示的内容导出为文本。
PNF Software 推出的商业逆向工程平台,面向 Android 应用和原生代码,集 Dalvik 反编译器、Android 调试器以及 x86、ARM、MIPS、RISC-V 机器码的反汇编器与反编译器于一体。处理 APK 时,它能将多 dex 的 Dalvik 字节码反编译为 Java,重建资源和经过混淆的 XML,用可自动解密内容、消除反射调用的优化器清理混淆代码,并在同一会话中调试 Dalvik 与原生 ARM 或 Intel 代码,可从 Dalvik 单步进入 JNI 方法。JEB Pro 的模块还能反编译 WebAssembly、以太坊 EVM 合约(输出类 Solidity 代码)、西门子 S7-300/400 PLC 程序块和 Nvidia SASS GPU 代码,并分析 PDF 文档;其加载器可读取 PE、ELF、Mach-O、Intel HEX 以及无容器格式(headless)的固件镜像。借助 JEB API,可用 Java 和 Python 编写脚本、后端插件和自定义无界面客户端来自动化分析;JEB 还提供面向 AI 智能体的 MCP 服务器。
Procyon 反编译器的图形界面前端,编辑视图由 RSyntaxTextArea 驱动。
基于 jd-core 分支的命令行封装,可把 Java 类和 JAR 文件反编译到控制台、目录或 ZIP 文件,并提供行号、文件匹配模式和并行处理等选项。它还提供 Docker 镜像和 Java 库。
Defcon 22 演讲“Android Hacker Protection Level 0”的代码与幻灯片。其中包括针对 Bangcle 和 SecShell 的 gdb 与 adb 脚本,针对 APKProtect、Bangcle、LIAPP 和 Qihoo Packer 的原生脱壳工具,向 APKProtect 隐藏 QEMU 与调试器的调整,以及基于 Corellium、带自动化的动态脱壳方法。
命令行工具,可把 APK 反编译为 Java 和 Smali,列出提取的文件,并静态检查 AndroidManifest.xml 与源代码中的常见漏洞和行为,例如 Intent、命令执行、Content Provider、加密引用和硬编码密钥。
面向 Android 原生 ELF 可执行文件和共享库的 PLT 钩子库。它支持 ELF HASH 和 GNU HASH 符号以及 SLEB128 编码的重定位信息,可用正则表达式选择目标,无需 root 或系统权限。
Dexposed 在 ART 上的延续:运行时方法钩子框架,加载到应用内后既能钩住应用自身代码,也能钩住在其进程中运行的 Android 框架代码。其说明的用途包括插桩和安全审计。
apkscope 通过 Rust 编写的查看器、命令行和 MCP 服务器分析 Android 应用包。它把 DEX 类反编译为 Java,检索代码与引用,读取清单和资源,扫描包括原生库在内的 URL 与密钥,并支持导出或修改包。
NWBinAnalyzer 检查 NW.js 编译后的 .bin 文件头并遍历常量池条目。其 Python 程序提取 UTF-8、空终止及带长度前缀的字符串,再按 API 名称、路径、URL 和密码学术语等类别整理。
derkt 是 Racket 编写的 Hermes Bytecode 解析与反汇编工具。它读取 HBC 结构和函数数据,识别字节码版本,再加载对应的生成式指令定义输出反汇编。仓库包含分版本 ISA 定义、解析器和 HBC 样本。
ODIS file unpacker 从 ODIS 插件 JAR 中提取受保护的 Java 类,并解包 DIDB 数据。作者通过调试、Java 代理程序和反编译后的类代码定位 AES 类解密及 Blowfish ECB 数据解密;部分文件还需 GZIP 解压。
netdumper 通过 CLR Data Access Component 从 Windows 进程中提取已加载的 .NET 程序集。它枚举 AppDomain 与程序集,恢复 JIT 方法的 IL,将内存布局转换为 PE 文件,并修复受损的 PE 头或元数据流以供分析。
Sandwitcher 通过 Pine 和 LSPlant 在运行时以跳板替换 ART 方法入口,对 Android 应用中的 Java 和 Kotlin 方法调用进行插桩。其 AAR 提供原方法调用前后的回调,可检查或修改参数与返回结果、查看抛出的异常,并附有演示应用。
Zygisk - Frida Gadget 将 Frida Gadget 加载到指定 Android 应用进程,供运行时插桩使用。配置文件指定包名、进程名、ABI 和配置档;部署脚本将 Gadget 及其配置放入应用原生库目录,再由 Zygisk 加载。
dnlib 是用于读取和写入 .NET 模块及程序集的库。它提供对元数据、方法体、资源和 PDB 文件的访问能力。
View8 是一款静态分析工具,可将序列化的 V8 字节码(JSC)文件反编译为便于阅读的类 JavaScript 文本。它还可导出操作码、解析后的对象,以及按声明、调用或引用关系组织的函数树。
Soot 是用于分析和转换 Java 字节码的优化框架。它提供四种中间表示,可用于优化、反编译和代码检查。
DroidLysis 是一款安卓应用预分析工具,可反汇编样本、整理文件内容,并标出值得进一步查看的代码模式。它支持 APK、DEX、ODEX、ARM 可执行文件、ZIP、RAR 和目录输入。
VirtualXposed 是一款 Android 应用,可在虚拟环境中让 Xposed 模块作用于应用,无需 Root、解锁引导程序或刷入自定义系统镜像。它基于 VirtualApp 和 epic。
EdXposed 是一个 Riru 模块,为 Android 8.0 至 11 提供兼容 Xposed 的 ART Hook 框架。它让 Xposed 模块无需修改 APK 即可改变系统和应用的行为。
Vector Framework 是为 Android 应用提供 ART Hook 功能的 Zygisk 模块。它支持 Xposed API,让模块在内存中改变应用和系统的行为,无需修改 APK 文件。
JustTrustMe 是一个用于关闭 Android 应用 SSL 证书检查的 Xposed 模块。它可帮助查看采用证书固定机制的应用的网络流量。
472 项带“二进制”标签 · 查看全部 472 项 →
案例
7 个案例
官方教育 CTF 案例:从检查函数得到方程,并记录原程序验证过程。
一篇非官方的实测研究:先阅读 REA 源码,再在 27 类分析对象上对运行中的服务器发出 1,012 次有记录的调用,测量其按内容寻址的 Evidence 记录、按修订串联的未知项台账、带类型的拒绝、冷启动及响应上限。作者把这些机制对应到漏洞研究智能体上,论证为何不应过度声称结论。它评估的是 REA 的工具接口,而非重建案例或漏洞发现。
Fedele Mantuano 报告在离线 Docker 实验环境中让 Codex 借助 REA,对一个公开的 Windows 恶意软件样本做静态分析,全程不执行样本。文章区分了提取出的 JavaScript 代码包能够支持的行为与依赖从未获取的远程组件的推断,并将原本疑为信息窃取程序的样本重新归类为加载器。这是以作者审阅过的智能体报告为基础的防御性分析案例,不是重建,也不是动态引爆分析。
REA/Ghidra 报告研究 Ubuntu netcat-openbsd 1.234-1 ELF 二进制,公开证据封套、反编译函数及函数清单;产物是静态调查,而非重建后的 netcat 应用。
m0rph 调查使用 readelf、strings、Cutter 和 Radare2 分析一款经过混淆的 x86-64 ELF CTF 字符串校验程序。报告追踪 CALL RAX 跳转到动态分配内存的执行过程,并说明如何逐次在调用处设断点、检查 RDI 以还原预期字符。
CPQ IO Scheduler 从已剥离符号的 ARM64 cpq.ko 内核模块还原小米的 Linux 块设备调度器。独立 C 模块实现优先级类别、线程组队列、期限处理及 blk-mq elevator 集成,并附技术论文和作者报告的基准测试。
该恶意软件研究用 PEStudio 静态检查和 ANY.RUN 沙箱遥测分析 njRAT 与经 UPX 打包的 Casdet 可执行文件,同时检查恶意 PDF 和良性对照文件。作者在报告及截图中记录了进程、注册表、网络行为、入侵指标和 MITRE ATT&CK 映射。
工具、项目与集成
262 项资源
Ghidra
工具开源二进制分析套件,提供反汇编、反编译、图形分析及 Java/Python 自动化接口。
radare2
工具可脚本化的命令行逆向框架,支持多架构二进制检查、反汇编、调试和修改。
Cutter
工具基于 Rizin 的图形逆向工作台,提供可扩展视图及 Ghidra 反编译器集成。
Qiling
工具在 CPU 仿真之上补充操作系统、文件系统和 API 行为的 Python 框架,用于可插桩的二进制分析。
多架构 CPU 仿真引擎,可控制寄存器、内存和钩子,执行选定的指令片段。
angr
工具结合控制流恢复、符号执行、数据流分析和反编译的 Python 二进制分析框架。
LIEF
工具对 ELF、PE、Mach-O 等可执行文件格式进行结构化解析与修改的库。
Capstone
工具提供统一 API 和指令细节的多架构反汇编库,适合构建自定义二进制分析流程。
ImHex
工具带二进制模式语言、结构化数据检查及可视化功能的十六进制编辑器,适合理解文件格式。
x64dbg
工具Windows 二进制调试器,通过反汇编、内存视图和插件分析没有源码的程序。
GDB
工具支持本地与远程调试,可控制执行并检查运行中或崩溃后的程序状态。
rr
工具记录进程执行并在 GDB 下重放,便于重复检查现场和反向执行。
Diaphora
工具基于 IDA 的二进制差异分析工具,可匹配函数并迁移名称、注释与类型信息。
BinDiff
工具比较反汇编后的二进制文件,定位不同版本中的对应函数与代码变化。
结合格式解析器、签名和可编程启发式规则进行文件识别与静态检查。
r2frida
工具结合 radare2 命令与 Frida 插桩,检查桌面和移动目标中本地或远程进程的内存、符号、类及运行时调用。
将已描述的二进制布局转换为可复用的文件与网络报文解析器;同一份 .ksy 规范可通过可视化工具检查,并编译为多种语言,便于把逆向获得的格式知识落实为可互操作的实现。
从 Go 二进制中恢复构建元数据、函数名与地址范围、源文件和行号表、内嵌类型及字符串,也可处理已剥离符号以及部分经 UPX 等脱壳后结构异常的样本。JSON 输出可借助附带的 IDAPython 脚本导入 IDA Pro。
开源反编译流水线:借助 QEMU 将 x86-64、AArch64、i386、ARM 和 MIPS 代码提升为与架构无关的表示,以 LLVM 进行分析,并输出以合法、可重新编译为设计目标的 C 代码。数据布局分析可根据指针用法推断数据结构;可编辑的 YAML 模型及 Python、TypeScript 封装便于自动化。基于 VSCode 的界面是单独的产品,目前处于封闭测试阶段,并计划推出商业方案。
源自 radare2 分支的命令行逆向工程框架。rizin 交互环境可分析和反汇编二进制、调试程序,并可用作可脚本化的十六进制编辑器;rz-* 系列工具提供二进制格式信息、汇编、差异比较、哈希、模式搜索和 FLIRT 签名等功能。README 列出数十种架构、字节码格式和文件格式,从 ELF、PE、Mach-O 到 dyld 缓存和 BIOS/UEFI 镜像;可通过 rzpipe 用 Python、Rust、Go 等语言编写脚本。Cutter 是基于它的独立图形界面。
位于 dogbolt.org 的网络服务:将上传的单个小型可执行文件交给多款反编译器处理,并排显示它们输出的类 C 代码,自称“反向的 Compiler Explorer”。所固定版本的源码包含 angr、Binary Ninja、Boomerang、dewolf、Ghidra、Hex-Rays、Kuna、REC Studio、Reko、Relyze、RetDec、rev.ng 和 Snowman 的运行器,便于比较不同反编译器如何呈现同一段代码。
可加载到 GDB 中、或作为 LLDB 外层 REPL 运行的 Python 插件,使运行中程序的状态更易检查。每次停下时都会打印寄存器、栈、调用帧和带注释的反汇编等上下文,并递归解引用指针;命令涵盖内存映射、搜索、内存链式查看、堆分配器和 Go 值,还借助 Capstone/Unicorn 模拟执行指令,并可与 IDA、Binary Ninja、Ghidra 和 angr-management 反编译器集成。README 列出 Linux ELF、macOS Mach-O、QEMU 用户态/系统态以及嵌入式 Cortex-M 或 RISC-V/32 调试场景。
运行时代码操作系统,用于构建在未修改程序运行期间观察或变换其任意部分的动态工具。其 API 与 IA-32/AMD64/ARM/AArch64 指令操作库允许任意修改应用指令,而不仅限于插入回调。发布包附带 drcov 代码覆盖率、drltrace 库调用跟踪、drstrace Windows 系统调用跟踪、drmemtrace 指令与内存访问跟踪以及 drdisas 反汇编器等工具。它是用于构建插桩工具的框架,与 Frida 对运行中进程编写脚本的方式不同。
用 C++ 编写的 Python 字节码反汇编器与反编译器,目标是支持任意 Python 版本的字节码。pycdas 输出 .pyc 文件的反汇编结果,pycdc 则把重建出的 Python 源码输出到标准输出,错误信息输出到标准错误;在命令行中指定 Python 版本后,两者也能处理原始的 marshal 代码对象。源码中包含 Python 1.0 至 3.13 的操作码表。
Fraunhofer FKIE 开发的静态分析工具,在二进制可执行文件(主要是 Linux 和 Unix 的 ELF 文件)中查找符合通用缺陷枚举(CWE)漏洞类别的代码路径,例如缓冲区溢出、释放后使用与重复释放、空指针解引用、格式化字符串和整数溢出。它先由 Ghidra 把二进制反汇编为统一的中间表示,再在其上运行从简单启发式到基于抽象解释的数据流分析等各类检查,因此适用于 Ghidra 支持的 CPU 架构,包括 x86、ARM、MIPS 和 PowerPC。告警以文本或 JSON 输出,随附的 Ghidra 脚本可把告警标注在反汇编中,便于人工复核。
Mandiant FLARE 团队的安装脚本,用于搭建并维护一台面向逆向工程和恶意软件分析的 Windows 虚拟机。其 PowerShell 脚本借助 Boxstarter 和 Chocolatey,从独立的 VM-Packages 软件源和 Chocolatey 社区源安装软件包;软件包可在图形界面中选择,也可通过自定义 config.xml 指定,该文件还可设置环境变量路径、任务栏布局以及安装后的注册表、服务和路径设置。所审阅的默认配置列出 137 个软件包,包括 Ghidra、IDA Free、x64dbg、dnSpyEx、capa、FLOSS、PE-sieve、FakeNet-NG 和 Wireshark;virtualbox 目录中的脚本可在 VirtualBox 中构建 FLARE-VM 和 REMnux 虚拟机,并管理和导出其快照。
KAIST SoftSec 实验室开发的二进制分析框架,以 F# 编写、运行于 .NET。它可解析 ELF、PE、Mach-O 和 WebAssembly 文件,对指令进行解析、反汇编并提升为自有中间表示,还能恢复控制流图和汇编代码;README 的功能表涵盖 x86/x86-64、ARMv7/AArch64、MIPS、PowerPC、RISC-V、SPARC、S390 等指令集,以及 CIL、EVM、eBPF、WebAssembly 和 Python 字节码。其 b2r2 启动器可调用类似 readelf 的格式扫描器、线性扫描反汇编器、带 Web 图形界面的递归下降式探索工具、面向 IR 与汇编的 REPL 以及汇编器。
Rizin 插件,内嵌 Ghidra 的 C++ 反编译器和 Sleigh 反汇编器,因此无需安装 Java 版 Ghidra。其 pdg 系列命令可反编译当前函数,也可与偏移量并排显示或以 XML、JSON 格式输出,还能把结果作为注释写回 Rizin,并列出已加载的 Sleigh 语言;配置变量可调整输出格式,也可覆盖自动检测到的 Sleigh 语言。反编译器使用 Rizin 已加载的二进制、类型和注释;另有可选插件将其接入 Cutter 图形界面。
由 Fraunhofer FKIE 与新加坡 DSO 国家实验室在 2019 至 2021 年合作研发的研究型反编译器,以 Binary Ninja 插件形式运行,并以 Binary Ninja 的中级中间语言(Medium Level IL)为起点。它通过预处理、SSA、数据流和控制流等阶段组成的流水线,按照 DREAM/DREAM++ 方法重建控制结构,输出类 C 代码。结果可在 Binary Ninja 的停靠窗口中查看,也可在批量场景下用 decompile.py 对整个二进制或指定函数进行反编译,并输出到终端或文件。
连通反编译器与调试器的桥接工具:通过 XML-RPC 连接,把 IDA Pro、Binary Ninja、Ghidra 或 angr-management 中的函数名、全局变量、栈变量与寄存器变量名以及反编译代码提供给 GDB。同步过来的函数和全局变量成为普通的 GDB 符号,可直接下断点和查看内存;局部变量以便利变量的形式出现,每次在断点处停下时还会打印当前地址对应的反编译代码行。它支持原生 GDB、GEF 和 pwndbg;提供共享库的加载地址范围后,也能为该库映射符号。
面向 x86-64 Linux ELF 可执行文件和共享库的静态二进制重写工具,无需恢复控制流即可插入插桩代码,并生成可直接替换原文件的二进制,方法源自 PLDI 2020 论文《无需控制流恢复的二进制重写》。前端 e9tool 用一套基于反汇编属性的匹配语言选择指令,再通过内置跳板、调用以 e9compile.sh 编译的 C/C++ 函数或手写的插件跳板进行修补;后端 e9patch 接收 JSON-RPC 命令,便于其他工具调用。可选模式包括借助启发式控制流恢复获得更快的重写结果,或借助 SIGILL 回退实现完全的修补覆盖。
Trail of Bits 对 No More Gotos 论文中模式无关结构化算法的实现,可把 LLVM bitcode 转换为不含 goto 的 C 代码,定位为小巧、易于修改且能与 LLVM 和 Remill 互操作的反编译器后端。rellic-decomp 批量将 bitcode 模块转换为 C;rellic-xref 提供 Web 界面,可选择要应用的细化遍,并将 C AST 节点与生成它的 bitcode 相互对应;rellic-headergen 根据模块中的 DWARF 元数据生成描述数据结构布局的 C 代码。机器码须先由其他工具提升为 bitcode;仓库附带的 IDA 脚本借助 Anvill 完成这一步。
Ghidra 扩展,可把程序中选定的部分“反链接”回可重定位目标文件。其重定位表合成分析器根据 Ghidra 数据库重建链接器通常会丢弃的重定位信息,导出器则写出带符号表和重定位表、可由工具链重新链接的 COFF(x86、x86-64)、ELF(x86、x86-64、MIPS)或 OMF(x86)目标文件。README 列出的用途包括借助链接器打二进制补丁、软件移植、格式转换、提取库,以及逐个目标文件重新实现程序的反编译项目。
BinDiff 的导出组件:为 IDA Pro 和 Binary Ninja 提供插件、为 Ghidra 提供扩展,把已分析的反汇编结果写成 BinDiff 所需的 Protocol Buffer 格式。BinExport2 模式涵盖带操作数和表达式的指令、基本块、流程图、调用图、节区、字符串、注释和数据引用;导出器还可输出统计文本文件或用于调试的文本转储。在 IDA 中可通过 IDC 或 IDAPython 脚本导出,在 Ghidra 中可使用同样能在无界面分析器中运行的 BinExport.java 脚本。
Check Point Research 开发的源码辅助 IDA Python 插件,用于在大型二进制和固件中查找并匹配编译进去的开源库。识别脚本会列出二进制中存在哪些受支持的库(如 OpenSSL、zlib、libpng 和 net-snmp),并识别其版本;匹配脚本再借助由该库版本生成的 JSON 配置,按原始函数顺序定位各个编译单元,匹配其中的函数及其调用的外部 libc 函数,并可把选定的匹配结果作为名称导入 IDA。附带的 Thumbs Up 脚本可预先改进 IDA 的函数分析,包括区分固件中的 ARM 与 Thumb 代码。
VTIL(Virtual-machine Translation Intermediate Language,虚拟机翻译中间语言)项目的 C++20 核心库。VTIL 是一种中间语言及优化编译器,README 称其专为二进制去混淆与去虚拟化分析而设计。与 LLVM IR 不同,VTIL 保留原生栈、物理寄存器和非 SSA 形式,因此寄存器机或栈机代码都能提升到其中,原生指令可直接嵌入 IL 流,代码也能重新输出到任意虚拟地址。该库提供包含例程、基本块和序列化的 IL、符号表达式引擎与化简器、死代码消除、传播和栈固定等优化遍,以及基于 Capstone/Keystone 的 AMD64 与 ARM64 反汇编和汇编辅助功能。
非官方的 Visual Studio Code 扩展,用于 Frida 相关工作。侧边栏列出本地、Apple 模拟器、USB 和远程设备上的应用与进程,可附加、启动或结束它们;运行时面板可浏览已附加进程的原生模块与导出函数,以及 Java 和 Objective-C 的类、方法与协议,并根据所选项目生成 Interceptor、Objective-C 或 Java 的 Hook 代码框架(可选用 GitHub Copilot 推断原生函数签名),还能导出 Objective-C 头文件或 Java 类存根。语言服务器根据运行中的目标补全类名、选择器和模块名;扩展还提供 Frida agent 与 C 模块项目脚手架、脚本调试配置、系统日志流以及 Android frida-server 部署。
命令行二进制差异分析引擎,通过 pyghidra 以无界面方式驱动 Ghidra:导入并分析新旧两个版本的二进制,列出新增、删除和修改的函数,主要用于补丁比对。默认的 VersionTrackingDiff 引擎组合了多个 Ghidra 版本跟踪关联器和 BSim 匹配,另有基于符号名和结构图的较简单引擎,并提供 GhidraDiffEngine 基类供编写自定义比对器。结果以 JSON 和带 Mermaid 图表的 Markdown 输出,附有字符串、被调用与调用函数及二进制元数据的元差异,也可另外生成并排对照的 HTML。
GrammaTech 开发的 Datalog 反汇编器,可将 x86-32、x86-64、ARM32、ARM64 和 MIPS32 架构的 ELF 与 PE 二进制转换为 GTIRB 中间表示。它先解码所有可能指令的超集,再用 Soufflé Datalog 规则和加权启发式推断代码位置、符号化结果和函数边界;gtirb-pprinter 可将结果输出为可重新汇编的汇编代码或重建的二进制,期间还可借助 GTIRB API 或 gtirb-rewriting 修改程序。推断出错时,用户可通过提示文件添加 Datalog 事实或调整启发式权重。
面向 Linux 的 GNU 调试器(GDB)前端,以游戏为主要对象,也可用于其他逆向工程;名称意为“PINCE is not Cheat Engine”。它借助 libmemscan 扫描进程内存和指针,并将结果放入带类型的地址表;内存视图提供反汇编、即时汇编、对引用的调用、跳转和字符串进行代码剖析、函数/内存区域/指令搜索以及结构体叠加查看,其中结构体可由对原生 Linux 或 Wine/Proton 进程中 Mono/IL2CPP 类的剖析自动生成。调试功能包括可链式关联的断点与观察点、追踪访问某地址的指令、执行跟踪和调用栈查看,并提供 GDB 控制台和可复用的 libpince Python 库。
跨版本的 Python 反编译器,可把 Python 字节码还原为等价的 Python 源码,支持 Python 1.0 至 3.8 的字节码,以及部分 PyPy 字节码和 Dropbox 的 Python 2.5 字节码。它借助配套的 xdis 库反汇编代码对象,再把指令流解析成基于语法的树并据此输出源码;它还能只反解析给定字节码偏移附近的代码片段,作者的 trepan 调试器即用此功能精确报告位置。它是早期 decompyle、uncompyle 和 uncompyle2 等分支的后继项目。
ret-sync 即“逆向工程工具同步”:一组插件,让 IDA、Ghidra 或 Binary Ninja 的图形与反编译视图跟随运行中的 WinDbg、GDB、LLDB、OllyDbg 1.10/2 或 x64dbg 调试会话,并实时重定基址,使 ASLR 不影响地址对应。调试器命令可将注释、标签、重定基后的地址和命令输出写入反汇编数据库,并从中解析符号;反汇编器中的快捷键则可设置断点、单步执行调试器。可同时同步多个数据库,两端也可运行在不同主机上。独立的 Python 库可为自定义跟踪工具提供同样的位置同步。
单文件 Python 脚本,用于提取由 PyInstaller 构建的可执行文件的内容,Linux ELF 构建也无需借助其他工具即可提取。它在可执行文件中定位 PyInstaller 归档,报告 PyInstaller 和 Python 版本以及可能的入口脚本,并导出打包在 CArchive 中的文件和 PYZ 归档中的模块。它还会修复导出的 .pyc 文件头,使 uncompyle6、Decompyle++(pycdc)等 Python 字节码反编译器能够识别。
卡内基梅隆大学开发的 OCaml 二进制分析平台。其 bap 命令可加载程序、进行反汇编、将指令提升为与架构无关的中间表示、构建控制流图并运行分析遍;objdump、raw 加载器和 mc 模式分别用于线性反汇编、原始代码块和单条指令编码。README 列出对 x86、x86-64、ARM、MIPS 和 PowerPC 的支持,以及解释器、微执行解释器、符号执行器和 Primus Lisp 语言,后者可用于编写分析、为函数编写桩模型和调用 SMT 求解器;分析以 OCaml 插件形式编写,或将 BAP 作为库嵌入应用,C 绑定和最基本的 Python 支持位于独立仓库。
通用反编译器:加载可执行文件或原始镜像,把机器码扫描转换为与机器无关的寄存器传输语言,再归并为过程并反编译为高级 C 代码。所审阅的源码包含 64 个架构目录,从 6502、Z80、PDP-11 到 ARM、MIPS、PowerPC、RISC-V 和 x86,并提供 ELF、PE/MZ、Mach-O、COFF、Amiga Hunk、VMS、WebAssembly、Xbox XBE 及 Xbox 360 XEX 等格式的加载器。可作为 Windows Forms 图形界面、命令行客户端或 .NET 库使用,用户还可通过项目文件和脚本补充名称、类型和注释。
源自 Paradyn 项目的二进制插桩、分析与修改库。DyninstAPI 可在运行中的程序里插入和修改插桩代码,也可改写磁盘上的可执行文件或库并写回修改后的副本;同一套与机器无关的接口还支持静态和动态分析。各组件有独立手册,分别负责符号表、行号与类型(SymtabAPI)、指令解码与反汇编(InstructionAPI)、解析为基本块、函数和循环(ParseAPI)、切片等数据流分析(DataFlowAPI),以及进程控制、栈回溯和代码修补。
以零拷贝、感知字节序的方式解析二进制格式的 Rust crate,支持 ELF32/64、32/64 位 Mach-O 及多架构 fat 容器、PE32/PE32+、COFF 目标文件、Terse Executable(TE)镜像以及 Unix/BSD 归档;Object::parse 根据魔数自动识别格式。解析结果涵盖 ELF 的文件头、节区、符号、动态段条目、重定位和 note,Mach-O 的加载命令及导入导出,以及 PE 的导入导出、重定位、TLS、资源、异常与展开信息、Authenticode 证书和 .NET CLR 头。借助特性开关,它还可精简为不依赖 std 的 #[repr(C)] 结构体定义,供内核等 no_std 代码使用。
Mandiant FLARE 团队的恶意软件字符串提取工具,用法与 strings.exe 相同,但还能还原混淆字符串。除了静态的 ASCII 和 UTF-16LE 字符串,它还能提取栈字符串、紧凑栈字符串(tight strings)以及由函数解码出的字符串:先用启发式方法识别解码函数,通过控制流分析取得调用参数,再模拟执行这些函数,并比较模拟前后的内存状态。它还能提取 Go 和 Rust 字符串,支持 PE、ELF 以及 32 位或 64 位原始 shellcode;JSON 结果可转换为 IDA Pro、Ghidra、Binary Ninja、radare2 和 x64dbg 的导入脚本。
轻量级 C11 x86/x86-64 反汇编与代码生成库。解码器可报告每条指令的操作数、所访问的 CPU 与 FPU 标志、ISA 集与扩展以及分支类型;格式化器可输出 Intel、MASM 或 AT&T 语法,编码器则根据编码请求生成指令,请求也可由已解码的指令转换而来。仓库附带 ZydisDisasm 与 ZydisInfo 命令行工具,官方 Rust 与 Python 3 绑定位于独立仓库。
Quarkslab 开发的模块化动态二进制插桩(DBI)框架:在目标进程内部按基本块对程序进行 JIT 重编译,使插桩工具可以在指令执行前后、内存读写以及虚拟机事件上注册回调。引擎以库的形式提供,可在进程中任意位置启动插桩执行,并可通过 C、C++、Python(PyQBDI)或 Frida JavaScript 编写脚本。它不绑定特定注入方式:自带基于 LD_PRELOAD 的 QBDIPreload,用于 Linux 和 macOS 动态可执行文件,并已与 Frida 集成。
用于查看 ELF 二进制的终端用户界面。它可像 stat 和 ldd 那样显示文件信息和所链接的共享库,像 readelf 那样浏览 ELF 头、注释、节区、段、符号、动态符号和重定位,按可调的最小长度提取字符串,并提供可搜索的十六进制视图。可选的动态分析会运行该二进制,像 strace 那样跟踪其系统调用,并按系统调用汇总耗时和调用次数;该界面还能作为 Rust 库嵌入 Ratatui 应用。
面向 16、32 和 64 位 x86 代码的指令库,可解码、格式化、汇编和编码指令,输出支持 masm、nasm、GNU AT&T 和 Intel XED 语法。其指令信息 API 可报告指令读写的寄存器、内存操作数和 RFLAGS 标志位,以及所需的 CPUID 特性标志和控制流类型;编码器还能把已解码的指令重新编码到任意地址。同一仓库维护 Rust、C#(.NET)和 Java 三套实现,另有基于 Rust crate 的 Python、JavaScript(WebAssembly)和 Lua 绑定。
Kaspersky 发布的 IDA 插件,为 Hex-Rays 反编译器加入了作者在包括恶意软件分析在内的逆向工作中积累的各类工具。它可用内置密码算法解密字符串、数据和常量,或借助 IDA 的 Appcall 调试器功能批量解密;还能识别 API 名称哈希、消除控制流平坦化并强制反编译混淆代码,并通过微码签名、内联函数检测和从 IDA 数据库生成的 PAT 文件识别库代码。伪代码辅助功能包括自动重命名、类型修改和枚举替换、结构体创建、虚函数与间接调用导航以及补丁。
面向逆向工程人员的二进制代码静态分析工具包。它从选定的地址和初始状态出发,计算寄存器与内存的值、污点和重建出的类型,支持前向与后向分析,并能检测堆上的释放后使用和重复释放;无法确定的位会标为未知。分析可在 IDA 插件中进行,分析人员可覆盖值或污点、跳过函数或把指令替换为 NOP 后重新运行;也可通过 Python 和 .ini 配置文件实现自动化。
单文件 Python 扩展 gef.py,为 GDB 增加动态分析命令。每次程序停下时都会显示寄存器、栈、代码、线程和调用轨迹等上下文视图,命令涵盖内存映射、指针解引用、在进程内存中搜索模式、ELF 与安全属性信息、进程状态以及 glibc 堆检查。其架构抽象层覆盖 x86-32/64、ARMv5–v7、AArch64、SPARC、MIPS 和 PowerPC;gef-remote 命令可通过 gdbserver 或 qemu-user、qemu-system 的 GDB stub 增强远程调试会话。
面向 x86、x86-64、ARM32、AArch64 和 RISC-V 32/64 代码动态二进制分析的 C++ 库,提供 Python 绑定。调用方逐条处理指令,并可设置具体的寄存器和内存值;Triton 依据每条指令的语义构建符号表达式、进行污点跟踪,并通过 Z3 或 Bitwuzla 求解路径约束。它还能合成与化简表达式,并将其提升为 LLVM IR 或 Z3 表达式后再转换回来,可用于构建分析工具、自动化逆向工程、软件验证或模拟执行代码。
面向 Python 3.6 及以后版本 CPython 字节码的研究型反编译器,将按版本训练的 Transformer 模型与控制流重建相结合。分段模型把字节码切分为语句,语句模型将每段翻译为源码,再由模板重建循环、条件分支、异常处理、with 块和 match 语句。生成结果会用目标 Python 版本重新编译,并与原字节码比较控制流,未通过的片段会改用其他分段方案重试;其设计见 IEEE S&P 2025 论文《PyLingual: Toward Perfect Decompilation of Evolving High-Level Languages》。
用于分析、修改和生成二进制程序的 Python 逆向工程框架。它可读取、修改和生成 32 位与 64 位 PE 和 ELF 文件,汇编和反汇编 x86、ARM、AArch64、MIPS、PowerPC、SH4、MSP430 与 MeP 代码,并将其提升到自有的中间语言,用于符号执行、SSA 与数据流分析、依赖图以及面向反混淆的表达式化简。其 JIT 模拟器可借助 LLVM、GCC、Clang 或纯 Python 后端运行 shellcode 或二进制中的部分代码,用 Python 回调代替库函数,提供模拟部分 Windows API 和 Linux 行为的沙箱,并可通过 Z3 进行动态符号执行。
借助虚拟化技术的 Windows 调试器:利用 Intel VT-x 和扩展页表(EPT)将正在运行的系统虚拟化,从而调试内核态和用户态代码;既可在本机作为跟踪与内省工具运行,也可从宿主机通过串行连接附加到客户虚拟机进行调试。其事件包括基于 EPT 的隐藏断点与钩子、不受硬件调试寄存器限制的内存读写和执行监控,对系统调用、CPUID、MSR、I/O 端口、MMIO、异常和中断的监控,以及 Intel PT 与 LBR 分支跟踪。内核侧脚本引擎、PDB 符号支持和 SDK 可用于自动化分析。
以智能体为核心、用 Rust 编写的反编译器,最初移植自 Ghidra 的 C++ 反编译器和 SLEIGH 编译器,此后加入了可按选项开关的功能(部分移植自 angr),已与上游分化。单个自包含的 kuna 程序可反编译单个函数,也可将整个二进制导出为 C、头文件和汇编文件;同一引擎还能通过 WebAssembly 在浏览器中运行,或在 Ghidra 中充当反编译后端。项目自称是让 LLM 智能体持续改进反编译器的实验,大部分代码由智能体编写,并以回归测试和基准结果为导向。
Vector 35 为 Binary Ninja 公开的 C++、Python 和 Rust API,附带文档、示例以及基于这些 API 的开源插件。Binary Ninja 本身是闭源商业软件,本仓库不包含其分析核心。开源插件涵盖 x86/x86_64、ARM64、ARMv7、PowerPC、MIPS、RISC-V 和 MSP430 架构,ELF、PE/COFF、Mach-O 以及 Apple 共享缓存和内核缓存加载器,DWARF、PDB 与 IDB 导入,以及 Objective-C、RTTI 和 SVD 分析;示例则演示如何遍历低级与中级中间语言,并通过工作流扩展分析流程。
Mandiant FLARE 团队的工具,将 YAML 规则集与从 PE、ELF、.NET 文件或 32/64 位 shellcode 中提取的 API 调用、导入、字符串和常量等特征进行匹配,报告可执行文件具备哪些功能。匹配结果按功能命名空间归类并标注 ATT&CK 和 MBC,详细输出会列出每项匹配所依据的函数或基本块地址及特征,为分析人员指出值得深入研究的代码。它还能读取 CAPE、DRAKVUF 和 VMRay 沙箱报告以利用动态特征,可选用 vivisect、IDA Pro、Ghidra 或 Binary Ninja 进行分析,并提供 IDA 和 Ghidra 的 explorer 插件以及查看 JSON 结果的浏览器界面。
Avast 推出的基于 LLVM 的可重定向机器码反编译器。可处理 ELF、PE、Mach-O、COFF、AR、Intel HEX 或原始机器码,覆盖 32 位 x86、ARM、MIPS、PIC32、PowerPC 以及 64 位 x86-64 和 ARM64,能恢复函数、类型和 C++ 类层次结构,输出 C 或类 Python 语言代码,并生成调用图和控制流图。
跨平台交互式反汇编器,第 4 版以纯 C 重写:由 C17 引擎库、保留在本仓库中的 Qt6 图形界面,以及以共享库形式加载的加载器、处理器和分析器插件组成。反汇编列表支持重命名、注释和类型化数据,并提供同步的控制流图、交叉引用、字符串检测、十六进制视图、补丁和项目保存。除 PE 和 ELF 外,加载器还支持 DOS MZ、Win16 NE、OS/2 LE/LX、PlayStation 1、初代 Xbox 和 ZX Spectrum 等复古及主机格式,处理器涵盖 x86/x86-64、MIPS32、ARM/Thumb、ARM64、Z80 和 6502。
面向 IDA Pro 和 Binary Ninja 的代码覆盖率浏览插件,载入原生程序的执行轨迹,并在反汇编器的各个视图中为已执行代码着色,无需符号或源码。覆盖率总览按函数列出覆盖情况;组合命令行可用逻辑运算符组合已载入的覆盖率集合,用于比较多次运行的差异、筛选函数或跳转到指定地址;覆盖率交叉引用则显示批量载入的众多集合中哪些执行过某个基本块。它可读取 DynamoRIO drcov 日志、模块+偏移、绝对地址和 Tenet 轨迹,能生成简单的 HTML 覆盖率报告,并附带可输出 drcov 兼容日志的原型 Intel Pin 工具和 Frida 脚本。
腾讯科恩实验室开发的二进制静态漏洞扫描工具,以 Ghidra 扩展或无界面脚本方式运行,在 Ghidra 的 P-code 而非汇编上进行抽象解释,支持 x86、x64、ARMv7 和 AArch64 二进制。它执行流敏感、上下文敏感的过程间分析,可配置值集合大小和调用串深度,可选用 Z3 约束求解,并对外部函数建模,在此基础上运行 13 类 CWE 检查,涵盖命令注入、缓冲区溢出与越界访问、格式化字符串、整数溢出、重复释放、释放后使用和空指针解引用等。告警会列出指令地址及其调用上下文,显示在 Ghidra 控制台中或以 JSON 输出。
Binarly REsearch 团队 VulHunt 引擎的开源社区版,用于在 x86 和 ARM 架构的 POSIX 二进制和 UEFI 固件中挖掘漏洞。Lua 规则运行在 Rust 编写的 BIAS 框架之上(该框架将代码提升为 Ghidra P-code,并内置 Ghidra 的 C++ 反编译器),可结合污点与数据流追踪、基于 Weggli 的反编译代码查询、字节模式、FLIRT 签名和类型库进行检测;结果以 JSON 输出,并附带标注后的反编译代码。命令行可扫描单个二进制、Binarly BA2 归档或 Binary Ninja 数据库,也可作为 MCP 服务器运行,让 AI 助手打开项目、用 Lua 查询、重命名函数并记录注释。
用于协同逆向工程的反编译器插件,把每位分析者的工作记录在共享 Git 仓库中(每位用户一个分支),队友可在 IDA Pro、Binary Ninja、Ghidra 和 angr-management 之间拉取、推送或自动推送更改。可同步的内容包括函数头(名称、参数和类型)、栈变量和全局变量、结构体、枚举和注释,并支持用户自定义类型。它由 mahaloz、angr 团队和 SEFCOM 研究实验室开发,并被 Shellphish 黑客团队使用;脚本操作需借助独立的 DecLib 库。
一款命令行工具,读取 Mach-O 可执行文件、框架和 bundle 中的 Objective-C 运行时元数据,并将其中的类、类别和协议输出为常规的 Objective-C 声明;信息与 otool -ov 所显示的相同,但形式更紧凑。它可以为每个类生成一个头文件,递归展开二进制所用的框架,从通用二进制中选择单一架构,对输出进行筛选或排序,并标注实例变量偏移和方法实现地址。
Markus Gaasedelen 开发的 IDA Pro 插件,用于研究 Hex-Rays 反编译器如何逐步变换其微码(microcode)中间语言。在伪代码窗口中选择 View microcode 即可打开浏览器,它与伪代码保持同步,用户可让选中的微指令依次滚动经过各个微码成熟度层级,把子操作数追溯到来源;若追踪的代码已被优化掉,光标会变色提示。嵌套的子指令可显示为树状图;作者将其定位为面向开发者的原型和代码参考,而不是通用逆向工程工具。
radare2 的反编译插件,通过 pdd 命令把已分析函数的反汇编转换为伪 C 代码。反编译器用 JavaScript 编写,每种架构对应一个模块,编译为 QuickJS 字节码后嵌入原生的 radare2 核心插件;输出可与汇编或偏移并排显示,可只显示作用域块,可显示类型转换或交叉引用,也可输出 HTML 或作为注释写回 radare2。README 列出的架构包括 x86/x64、16/32/64 位 ARM、MIPS、PowerPC(含 VLE)、SPARC、AVR、V850 和 Dalvik,另有实验性的 6502、8051、BPF、m68k、SuperH、WebAssembly 和 RISC-V 支持。
基于 Frida 的 Web 界面,用于在测试设备上观察运行中的 Android 与 iOS 应用。它可列出内存中已加载的类和方法,跟踪方法参数与返回值,为选定的类生成 Hook 模板,在堆上查找类实例;在 Android 上还能按类别监控框架 API 以及少数 libc 文件函数。另有处于测试阶段的文件浏览器,可查看应用的私有目录。
卡内基梅隆大学软件工程研究所(SEI)推出的二进制程序自动化静态分析工具框架,基于劳伦斯利弗莫尔国家实验室的 ROSE 编译器基础设施完成反汇编、控制流分析和指令语义建模。其中最知名的 OOAnalyzer 跟踪对象指针在函数之间的传递,再用 Prolog 规则从这些事实中恢复 C++ 类、方法等面向对象结构,适用于 Microsoft Visual C++ 编译的 32 位 x86 可执行文件,方法见 CCS 2018 论文;结果以 JSON 导出,可供仓库自带的 IDA 插件或独立的 Kaiju Ghidra 插件使用。其他工具可查找 API 调用序列(ApiAnalyzer)、报告 API 调用的静态参数(CallAnalyzer)、生成用于相似性分析的函数哈希和 YARA 签名(FN2Hash、FN2Yara),以及求出从一个地址到达另一地址所需的条件(PathAnalyzer)。
Jonathan Becker 用 Rust 编写的 EVM 智能合约字节码分析工具包,尤其适用于未公开验证源码的合约。其命令行可反汇编字节码、生成控制流图,借助逐函数的符号执行和启发式后处理把字节码反编译为 ABI 以及测试阶段的 Solidity 或 Yul 源码,还能解码原始 calldata、导出合约在某一区块范围内访问的存储槽,并通过解码 calldata、调用跟踪和日志来检查交易。分析目标可以是原始字节码、文件、合约地址或 ENS 名称;函数选择器默认通过 OpenChain 签名数据库解析,也可跳过这一步。
用于查看和编辑 Windows 可移植可执行(PE)文件的 Qt 图形工具,旨在为恶意软件分析人员提供快速的初步查看,并能稳定处理畸形的 PE32 与 PE64 文件。它可显示文件头和节区布局,跟随原始偏移、RVA 和 VA 地址,借助 Capstone 从任意偏移开始反汇编,按签名识别加壳工具,对比两个文件,并能还原从内存转储的映像。
hasherezade 开发的 Windows 进程扫描工具,可在单个运行中的进程里发现并转储植入内容:被替换或注入的 PE 模块、shellcode、内联钩子与 IAT 钩子以及其他内存补丁;README 列出的可检测技术包括 Process Hollowing、Process Doppelgänging 和反射式 DLL 注入。可选功能包括按特征模式或统计方法检测 shellcode,扫描线程调用栈、不可执行内存页以及加密或混淆内容,选择转储模式并为转储的 PE 恢复导入表,生成 minidump 和 JSON 报告。它可构建为 EXE、提供简单 API 的 DLL(Python、Go 和 Rust 绑定均基于该 API)或静态库,也是 HollowsHunter 和 MalUnpack 的扫描引擎。
Philippe Lagadec 开发的 Python 工具包,用于分析 Microsoft OLE2(复合文件二进制格式)文件,如 Office 97–2003 文档、MSI 文件和 Outlook 邮件,也支持 RTF 与 OpenXML 文档,主要面向恶意软件分析、取证和调试。其命令行工具可检测并提取 VBA 与 Excel 4(XLM)宏、嵌入的 OLE 和 Flash 对象以及 DDE 链接(olevba、MacroRaptor、oleobj、rtfobj、pyxswf、msodde),用 oleid 和 ftguess 标记恶意文件中常见的特征,并通过 oledir、olemeta、oletimes 和 olemap 查看目录项、元数据、时间戳和扇区布局。它基于同一作者的 olefile 解析器。
MonkeyDev 基于 iOSOpenDev,为 Xcode 增加 MonkeyApp 工程模板,用于对开发者有权分析的 iOS 应用进行插桩。它在 Xcode 中将开发者编写的 dylib 注入到提供的已解密应用,编写 Objective-C 或 Logos(CaptainHook)Hook,并完成重签名、安装与带源码级断点的调试;可选的构建设置支持还原 Objective-C 符号、导出目标应用的 Objective-C 头文件以及启用 Reveal 视图检查。当前版本还可为 rootless、rootful 或 roothide 环境构建越狱 Logos/CaptainHook Tweak 和命令行工具。
hasherezade 开发的 Windows 命令行内存扫描器,把 PE-sieve 引擎从单个 PID 扩展到多个进程乃至整个系统。它识别并转储被替换或植入的 PE 模块、shellcode、钩子及其他内存补丁,供进一步分析,可按 PID 列表、进程名列表或相对于扫描开始时间的进程创建时间选择目标。扫描可以循环执行;64 位版本还能作为 ETW 监听器运行,由 INI 配置文件选择触发扫描的事件。
运行于 macOS 的命令行工具,为已剥离符号的 iOS 应用 Mach-O 可执行文件重建符号表并输出新文件,使 lldb 等调试器能按 Objective-C 方法名设置断点并显示名称。它借助 class-dump 从二进制的 Objective-C 元数据中恢复方法名和地址,也可以从 JSON 文件合并额外的名称与地址,例如随附 IDA 脚本找到的 block 符号。
Mandiant FLARE 团队面向恶意软件分析人员的动态网络分析工具,是原版 Fakenet 的后继。其 Diverter 将 Windows 本机进程的流量,或在 Linux MultiHost 模式下将其他主机的流量,重定向到可配置的监听器;这些监听器模拟 DNS、HTTP 与 HTTPS、SMTP、FTP、TFTP、IRC、POP 以及原始 TCP 或 UDP 服务,并支持进程和主机过滤、自定义响应,以及在连接到来时启动调试器等命令。会话可保存为 PCAP,结束时生成交互式 HTML 报告,按进程和协议归类展示网络行为指标。
静态代码分析平台,将源代码、JVM 字节码和可执行文件解析为代码属性图并存入图数据库,可在交互式 shell 或服务器模式下用基于 Scala 的查询语言检索。前端覆盖 C/C++、Java、JavaScript、Python、Kotlin、PHP、Go、Ruby、Swift、C#、Rust 和 ABAP 源码,借助 Soot 处理 JVM 字节码及 APK/DEX 文件,并通过内置的 Ghidra 加载二进制文件,文档将这部分列为 x86/x64 支持。它还提供静态污点追踪引擎、收录漏洞模式的 joern-scan 查询库,并可将 AST、CFG、PDG 或整图导出为 DOT、GraphML、GraphSON 或 Neo4j CSV。
Mandiant 的 Windows 恶意软件仿真框架,借助 Unicorn CPU 仿真器,在模拟的 Windows 运行环境(而非完整虚拟机)中运行 PE 可执行文件、DLL、内核驱动和原始 x86/amd64 shellcode。手写的处理程序加上由 win32metadata 和 phnt 生成的签名库,负责模拟 Windows API 调用、进程与线程行为、文件系统、注册表和网络,每次运行都记录为结构化 JSON 报告,其中包含带参数名的 API 事件、释放的文件以及可选的内存快照。它可通过 speakeasy 命令行或作为 Python 库使用,内置的 GDB 桩可让分析者单步调试仿真中的样本。
最初为 CTF 解题编写的单文件 IDA 便捷操作插件。在反汇编和十六进制视图中,它可把选区导出为字符串、十六进制字符串,或按字节、字、双字、四字导出为 C/C++ 数组或 Python 列表,并复制到剪贴板;还能显示选区与单个字节异或后的结果、用 NOP 填充选区,并通过快捷键复制或跳转到地址和文件偏移。配合 Hex-Rays 时,它可把函数返回类型切换为 void、复制条目名称,双击 obj->func 形式的调用时跳转到对应成员函数;另有启发式扫描,列出格式参数并非只读常量的 printf 系列调用。
hasherezade 开发的 Intel Pin 插桩工具,在 Windows 或 Linux 上跟踪运行中的 32 位或 64 位程序,记录 API 调用(对监视的函数还会记录参数和返回值)、指定的本地函数和静态链接库函数、内联系统调用、RDTSC、CPUID 和 INT 指令,以及被跟踪模块各节区之间的跳转,有助于找到加壳模块的原始入口点。它可以继续跟踪模块解包到新内存中的代码,对选定范围进行反汇编,并可在 Windows 上标记样本执行的反调试和反虚拟机检查。每次运行都会生成由“RVA;事件”行组成的 .tag 文件,PE-bear 可直接读取,Wiki 还演示了将其导入 IDA Pro、Binary Ninja、x64dbg、Ghidra 和 Cutter 以标注代码。
IDA Pro 插件,仓库简介称其获得 2016 年 IDA 插件大赛冠军,它把 Triton 框架的污点分析和符号执行引入 IDA 调试器,适用于 x86 和 x64 程序。分析人员对寄存器、内存或 argv、fread 读入的缓冲区等输入进行污点标记或符号化后,Ponce 会单步执行被调试程序,用 Triton 分析每条指令,并重命名受该输入影响的函数。其符号引擎可以求解分支条件,或将条件取反后把满足条件的输入注入内存,再借助执行快照恢复先前状态来尝试该输入;启用 Hex-Rays 支持的构建还会在反编译伪代码中显示分析结果。
CERT Polska 基于 DRAKVUF 引擎构建的自动化黑盒恶意软件分析系统,借助虚拟机自省从 Xen 虚拟机监控器一侧观察 Windows 客户机,无需在客户机中安装代理。通过 Web 界面或命令行提交的样本在恢复的快照中运行,报告涵盖进程树、WinAPI、文件与网络活动、PCAP、截获的 TLS 密钥、内存转储、截图以及基于 capa 的 TTP 指标。drakrun 安装命令负责构建 Windows 客户机、快照及 VMI 配置文件。
面向 IDA Pro Hex-Rays 反编译器的 IDAPython 插件,帮助根据伪代码重建结构体和类。其结构体构建器可在单个函数内,或通过深度扫描在变量被传入的各个函数中,收集该变量访问的字段,识别虚表,解决字段冲突,并生成 C 声明应用到所有已扫描的变量;Classes 视图可编辑类及其虚函数,结构图则展示本地类型之间的关系。伪代码辅助功能可沿赋值和调用两侧统一类型与名称、传播名称、将越界指针改写为包含结构体的 CONTAINING_RECORD、修改函数签名、根据 assert 字符串批量重命名函数,以及整理 if 语句。
源自 Cuckoo v1 的恶意软件沙箱,在隔离的 Windows 客户机中运行样本,记录 API 挂钩行为、创建和修改的文件、PCAP 网络流量、屏幕截图和内存转储。其 capemon 监控组件增加了自动脱壳功能,可捕获被注入、解出或解压的载荷并转储进程映像;内置调试器可由 YARA 签名或提交选项设置断点并输出简短的指令跟踪。结果通过 YARA、Suricata 和行为签名分类,恶意软件配置则由独立的 CAPE-parsers 包中的解析器提取。
Lua 字节码反编译器,可把编译后的代码块还原为 Lua 源码,提供反汇编模式,可按编号只处理某个嵌套函数,并能推测局部变量声明,推测结果也可手动指定。其 -fc 选项会重新编译每个反编译出的函数,并与原函数逐条指令比较。它以 Lua 5.1 为主要目标,Lua 5.2 和 5.3 的支持标为实验性,延续了 Hisham Muhammad 面向 Lua 5.0 的 LuaDec 和 Zsolt Sztupak 的 LuaDec51。
基于 Frida 的命令行工具,可双向观察 iOS 和 macOS 上进程之间交换的 XPC 消息,用于理解 Apple 平台的应用与服务如何通过 XPC 通信。它可通过 USB 或远程 Frida 连接启动或附加到目标,按方向(传入或传出)和带通配符的服务名过滤跟踪,并可选解析 XPC 字典中携带的二进制 plist 负载,其中 bplist00 和 bplist16 被列为正式支持,bplist15 和 bplist17 为实验性。工具由 Python 命令行驱动一个编译为 JavaScript 的 TypeScript Frida 代理。
带 PySide6 图形界面和命令行模式的 Python 反混淆与分析工具包,面向分析被混淆或打包的 Python 程序的人员。它内置针对多种 Python 混淆器(如 Jawbreaker、BlankOBF、PlusOBF、Wodx、Hyperion 和 pyobfuscate)的反混淆器,以及一个 AI 辅助的 "Onyx" 引擎,将本地 Ollama 大模型(默认 qwen2.5-coder:1.5b)与 AST 清理和模式匹配结合。文件分析器可检测 PyInstaller 等打包器、计算哈希、查找可疑字符串并提取元数据;行为监视器和一个执行 Python 代码的交互壳则用于对目标进程做动态检查。它提供插件 API,也可作为库使用。
基于 Frida 构建的 PyQt5 调试器,可附加或启动 Android、iOS 设备、本机或远程 Frida 服务器上的进程。调试会话提供断点、观察点、寄存器上下文、调用栈和线程视图,支持 x86、x64、ARM 与 ARM64 的 Capstone 反汇编视图、十六进制编辑器,以及模块、内存区域和内存搜索面板;Java 浏览、检查与跟踪面板和 Objective-C 检查器则面向移动应用运行时。用户编写的 Frida 脚本和 Python 插件可扩展会话,配套命令可跟踪 Java 方法或原生地址(dwarf-trace)、在 arm64 上记录单个模块发起的系统调用(dwarf-strace),并生成带 Dwarf API 类型声明的脚本项目(dwarf-creator)。
Bitdefender 开发的 x86/x64 指令解码库,以 C 编写且无外部依赖,可报告显式与隐式操作数及其访问方式、CPUID 特性标志、标志位访问和有效模式,并输出 Intel/MASM 风格的反汇编文本。精简 API 使用 64 字节的指令结构,以较少的信息换取速度;配套的 bdshemu 库在原始缓冲区中模拟基本的 x86/x64 代码,用于标记类似 shellcode 的行为,例如 NOP 滑板、读取指令指针、自修改、访问 TEB/PEB 和系统调用。命令行示例 disasmtool 可对文件或十六进制字符串进行解码或模拟。
uncompyle6 作者对该项目的重构版本,可把 Python 3.7 和 3.8 的字节码(包括部分 PyPy 3.7 和 3.8 字节码)还原为等价的 Python 源码;更早版本的字节码仍由 uncompyle6 处理。它借助配套的 xdis 库反汇编代码对象,再用重构后的语法对指令流进行词法处理和解析,生成语法树并据此输出源码;它还能只反编译给定起止偏移之间的代码,或通过 decompyle3-code 只反编译文件中的 lambda、生成器和各类推导式。README 指出,仅靠语法重写并不能解决 uncompyle6 在控制流上的根本问题,作者正在另一个未公开的项目中用基于支配关系的分析来解决。
由 Tamas K Lengyel 开发的基于虚拟化、无需代理的黑盒二进制分析系统:它运行在 Xen 虚拟机监控器上并借助 LibVMI,跟踪 Windows 和 Linux 客户机中从内核函数到用户态代码的执行过程,且无需在被分析的虚拟机内安装任何软件。各插件可记录系统调用、API 调用以及文件、注册表、进程、套接字和内存活动,在文件被删除前从内存中提取文件并转储进程内存;注入器无需客户机内辅助程序即可在客户机中启动程序。CERT Polska 另行开发的 DRAKVUF Sandbox 在其基础上构建了带图形界面的自动化沙箱。
VBA 解析与仿真引擎,由 Philippe Lagadec 创建,自 2017 年起主要由 Kirk Sayre 及其他贡献者开发,用于分析和去混淆 Microsoft Office 文件(如 Word、Excel、PowerPoint 和 Publisher 文档)中的恶意宏,也可处理 VBScript 文件和内含 VBScript 的 HTA 文件。vmonkey 命令通过 oletools 的 olevba 读取宏,从自动运行入口或分析人员指定的函数开始仿真,报告记录到的行为(例如创建进程),并可列出中间 IOC 和代码将写出的文件;vbashell 则是交互式 VBA shell。其 Python API 可求值 VBA 代码片段、遍历并仿真单个代码块、替换函数以及对代码去混淆。
可注入的 x86 实模式调试器,用于在真实硬件或虚拟机上调试传统 BIOS 代码、引导代码和 DOS 程序。放入目标代码中的 16 位汇编小程序会安装中断处理程序、让处理器单步执行,并通过串口与 Linux 上的桥接程序通信;桥接程序把这些简化报文转换为 GDB 远程协议,使 GDB 能读写内存和寄存器、单步、继续执行,并可同时设置一个硬件断点和一个观察点。配套脚本可将地址与标签列表转换为供 GDB 加载的最小 ELF 符号文件。
函数级提升器:对 Windows PE 二进制中的单个 x86-64 函数进行符号化提升,生成 LLVM IR,再反复运行 LLVM 与自定义优化 pass 直至收敛,使经混淆或虚拟化的代码化简为更清晰的控制流和语义,便于分析。其范围文档列出 119 个指令处理器,支持双向分支和若干已测试的跳转表形态;README 示例提升的是作者自己用 VMProtect 和 Themida 保护的小型测试函数,输出的 IR 可编译后在反编译器中查看。
命令行工具集(原名 pev),用于分析 32 位和 64 位 Windows PE 文件。readpe 输出 DOS、COFF 与可选头、节区、数据目录以及导入和导出表;配套工具可反汇编代码(pedis),以 ssdeep、imphash 等算法对整个文件、文件头或节区计算哈希(pehash),列出并提取资源(peres),匹配加壳签名(pepack),标出 TLS 回调、高熵值或异常入口点等特征(pescan),报告 ASLR、DEP/NX、SEH 与栈 cookie 标志并导出证书(pesec),还能查找字符串以及在文件偏移和 RVA 之间换算。输出插件支持文本、CSV、XML、HTML 和 JSON,附带的 libpe C 库提供解析功能。
用于半自动分析 JavaScript 恶意代码的 Node.js 沙箱:在 Node 的 vm 模块中运行样本,并模拟 Windows Script Host 与 ActiveX 对象,例如 WScript.Shell、MSXML2.XMLHTTP、ADODB.Stream、Scripting.FileSystemObject 和 WMI,另有可选择浏览器配置的部分浏览器环境。它记录创建的对象和调用的方法,保留每次 eval() 的参数以辅助去混淆,记下请求的 URL 和 WMI 查询,并保存投放器试图写入的文件,便于检查载荷。运行结束时,整个沙箱上下文会导出为 JSON 供复查。
受 xpcspy 启发的 macOS 命令行 XPC 嗅探工具:把 Frida 代理注入已附加或新启动的进程,记录其收发的 XPC 消息,并标出对应的 libxpc 函数、连接名、对端 PID 与进程名。代理会递归地把 xpc_object_t 字典、数组和标量值转换为可读输出,并解码二进制 plist 负载;基于 frida-go 的 Go 主程序负责选择本地、USB 或远程 Frida 设备,按名称或 PID 过滤连接,并可将跟踪结果保存到文件。它用于观察 Apple 平台应用与服务如何通过 XPC 通信,不会修改或注入消息。
Trail of Bits 开发、现已归档的符号执行工具,可分析 x86、x86-64、AArch64 和 ARMv7 上的 Linux ELF 二进制、以 EVM 字节码表示的以太坊智能合约以及 WebAssembly 模块。它以符号输入运行程序,探索可到达的各个状态,生成能到达指定状态的具体输入,并检测崩溃等错误情形,约束由外部的 Yices、Z3 或 CVC4 求解器求解。manticore 命令行工具把生成的测试用例写入 mcore_ 工作目录,Python API 则支持指令钩子、事件回调和自定义初始状态;manticore-verifier 用于检查以合约自身语言编写的属性。
Thomas Roth(Ghidra Ninja)编写的 Ghidra Python 脚本合集,脚本会出现在 Script Manager 的 Ghidra Ninja 分类下。binwalk.py 和 yara.py 对已加载的程序运行 binwalk 或自带的 YARA 密码常量规则,并为发现的结果添加书签;YaraSearch.py 则使用用户选择的规则文件完成同样的工作;swift_demangler.py 还原 Swift 函数名;golang_renamer.py 依据 .gopclntab 表恢复去符号 Go 二进制中的函数名;export_gameboy_rom.py 可将用 GhidraBoy 导入的 Game Boy 程序重新导出为可运行的 ROM。
移植自 Ilfak Guilfanov 为 IDA 编写的 FindCrypt 插件的 Ghidra 脚本,在程序内存或当前选区中查找密码算法与压缩算法的常量。其序列化签名库保留了原插件的 79 组算法常量,按 README 的统计共含 122 个可检测常量,涵盖哈希函数、分组密码与流密码、Curve25519 代码、Keccak 和 zlib;若找不到完整常量,脚本还会查找其中的单个元素,并报告超过检测阈值的部分匹配。命中结果会生成 Ghidra 书签和结果表,可从表中将匹配位置定义为数据。
由大量可组合的 Python 命令行单元组成的二进制数据转换工具集,涵盖编码、压缩、加密、归档与可执行文件格式提取、数据切割(carving)和模式搜索。各单元从标准输入读取、向标准输出写入,因此可串联成 shell 管道;分帧(framing)、multibin 参数和元变量使一条管道能处理多个数据块,binref 命令可检索各单元的帮助文本。作者称其为面向恶意软件初步分析、在命令行上实现类似 CyberChef 功能的工具;README 还指向独立的 binref/agent 仓库,其中提供供语言模型智能体使用 refinery 的说明。
在 CodeBrowser 面板中调用 angr 符号执行的 Ghidra 扩展。分析者可用快捷键标记目标地址、可选的起始地址和需要避开的地址,并可将程序参数、内存区域或寄存器设为符号值,向内存和寄存器写入具体值,钩住指定指令,或把在 Ghidra 中修补的字节应用到 angr 项目。随附的 Python 脚本对程序的原始文件运行 angr 路径探索,反汇编列表会高亮找到的路径上的指令,面板则显示能到达目标地址的参数、内存和标准输入取值。
基于 Frida 的闭源程序模糊测试套件,本条目收录的是其进程内插桩与覆盖率采集部分。经 Frida 注入的 JavaScript 测试框架会在分析者选定的函数处启动 Stalker,记录每次调用时目标模块中执行过的基本块,再提供给 AFL++ 的覆盖率位图或 fpicker 自己的独立模式。其被动模式相当于跟踪器:附加到正在运行的进程而不发送输入,并在出现新覆盖时保存到达该函数的输入及对应覆盖信息,可用于本机,也可用于通过 USB 或网络连接、运行 frida-server 的设备。
HexHive 开发的静态二进制改写工具,面向 x64 与 aarch64 的 Linux ELF 二进制:将二进制转换为符号化、可重新汇编的汇编代码,从而无需源码、也不依赖启发式规则即可插入插桩。附带的改写模块可添加仅针对二进制的 AddressSanitizer 和 AFL 覆盖率插桩,aarch64 上另有函数入口粗粒度控制流完整性模块;符号化的汇编也可在重新汇编前手工或用其他工具修改。x64 改写器的 KRetrowrite 变体可用 BASan 或 kcov 为 Linux 内核模块插桩,用于内核模糊测试。
源自 Dexcalibur 项目的 Frida 库,借助 Frida 的 Stalker 跟踪进程的系统调用,输出类似 strace 的记录,标明调用线程、模块与偏移,解码标志位取值,并根据文件描述符还原文件路径。跟踪范围可按名称或模式限定到指定模块和系统调用,可在某个库加载时启动,可附加 Interceptor 风格的逐系统调用回调,还能生成 drcov 基本块覆盖率文件。README 说明支持 AArch64 与 x64 上的 Linux 和 Android;源码中另有 AArch32 Linux 以及 macOS arm64、x64 的入口。
macOS 应用及命令行工具,可读取 macOS 或 iOS 的 dyld_shared_cache 文件,显示其头部、映射区和镜像列表,并将单个或全部动态库复制到指定目录。命令行提供 --info、--extract 和 --extract-all,图形界面显示同样的头部信息,并可选择要提取的镜像。README 已将项目标为过时,并推荐作者的 dyld-cache-dump。
Mandiant FLARE 团队已归档的 IDAPython 插件与脚本合集,用于在 IDA Pro 中分析恶意软件和原生代码。它可在代码中搜索 shellcode 使用的预计算 API 名称哈希,恢复在栈上拼接的字符串(静态分析,或在 ironstrings 中借助 flare-emu 模拟执行),为结构体字段和间接调用应用函数类型,用 MSDN 中的函数、参数和常量信息注释导入函数,并通过 idb2pat 从 IDB 中的函数生成可用于制作 FLIRT 签名的模式文件。其他脚本可追踪字符串解码函数等调用的静态参数,在 Mach-O 文件中把 Objective-C 选择器引用关联到其实现,还能为常见 Windows API 导入函数植入简易实现,使解码或解包代码可在 IDA 的 Bochs 模拟模式下运行。
二进制特征词法框架,从可执行文件中提取指令、基本块和函数,并输出可检索的 JSON 特征,用于相似度分析、威胁狩猎和签名工作。它以仿基因组学的层级结构对代码建模,计算 MinHash、TLSH、SHA256、熵和通配字节模式等特征,从而在大规模样本间进行比较、聚类并生成签名。它提供命令行工具套件、Rust API、Python 绑定和 IDA 插件,可依据其模式生成 YARA 规则,并支持本地或通过 IPC 与 HTTP 运行处理器。
用于分诊 Windows 内核驱动的 IDA Pro Python 插件,在 NCC Group 最初的 DriverBuddy 基础上发展而来。其自动分析可识别驱动模型(WDM、KMDF、UMDF、WDF、Mini-Filter、Stream Minidriver、AVStream 或 PortCls),定位设备控制派遣例程,标注 IRP、IO_STACK_LOCATION 和 WDF 结构及调用,并通过 Hex-Rays ctree、switch 跳转表和立即数操作数三种扫描发现并解码 IOCTL 码。它还会报告设备名、符号链接与设备 ACL、池标记、被标记的 API 和指令、基于名称的调用链,以及带逐个 IOCTL 风险评分的启发式漏洞线索,结果显示在 IDA 结果窗口中,并写入 JSON 文件和 HTML 报告。
一个主要以 IDA 插件形式使用的 Python 框架,把定位符号时的手工步骤(例如查找字符串、跟随交叉引用、跳到函数起始处)写成可复用的签名。Hjson 格式的 SIG 文件按平台归入不同项目,其中串联的命令可搜索字节、字符串、立即数或用 Keystone 汇编出的指令,按操作数和交叉引用筛选,再设置名称、类型、常量、枚举和结构体成员;也可用 Python 脚本调用同一解释器。在 IDA 中,它添加 FA 菜单和工具栏,用于查找项目的全部符号、根据当前函数生成临时签名草稿,以及导出符号和 C 头文件;另有一个加载器可在不使用 IDA 的情况下对原始 ELF 文件运行签名。
PyInstaller Extractor(pyinstxtractor)的同一作者所做的分支版本,可从 PyInstaller 构建的 Linux ELF 和 Windows PE 可执行文件中提取打包的 CArchive 文件和 PYZ 模块,并输出修复了文件头的 .pyc 文件,供另行使用的字节码反编译器处理。与原脚本不同,它借助 xdis 库反序列化 PYZ 归档,因此无须在构建该可执行文件时所用的 Python 版本下运行;对于经 PyInstaller 可选 AES 加密保护的 PYZ 条目,它会利用同一可执行文件中打包的密钥模块自动解密。单目录模式会把 PYZ 内容提取到其他文件旁边,便于直接运行提取结果;--info 选项则只输出版本、入口点和加密情况等归档元数据,而不写入任何文件。
Trail of Bits 开发的 C++23 混合布尔-算术(MBA)表达式化简器。MBA 是一种混淆技术,会把简单运算改写为算术、按位与移位运算交织的复杂形式。cobra-cli 接受一个表达式和 1 至 64 位的位宽,输出更简单的等价式:工作列表调度器组合签名向量与基变换技术、带常量掩码的半线性处理、多项式恢复、混合乘积分解和子表达式提升,每个结果都会用随机输入抽查,也可选用 Z3 做等价性证明。同一引擎还以库的形式提供,并可编译为 LLVM 优化遍插件,对其在 LLVM IR 中检测到的 MBA 表达式进行化简。
针对 Obfuscator-LLVM(OLLVM)控制流平坦化的 Python 命令行去混淆工具。给定被平坦化函数的地址后,它借助 Miasm 的符号执行跟踪分发器的状态变量,记录每个状态值对应的基本块及其后继状态,再用 Keystone 按恢复出的顺序重新汇编该函数,并写出一份修改后的二进制副本;可选模式还会沿该函数的调用继续处理。README 涵盖 32 位和 64 位 x86 的 Windows 与 Linux 二进制,并将这种做法与 MODeflattener 的静态方法作了对比。
Ghidra 扩展,其 Golang Analyzer 读取 go1.6 至 go1.27 所编译 Go 二进制中的运行时头部和模块数据,用以识别 Go 版本、重命名函数、修正参数、以注释标出源文件与行号,把 Go 类型加入数据类型管理器,并标注 Go 字符串。插件窗口列出恢复出的函数、类型、源文件和字符串,并可链接到 Go 源码;另行安装 ghidra-wasm-plugin 等 Wasm 加载器后,也能处理 WebAssembly 构建。随附的脚本还会为解码 gobfuscate 式混淆字符串的函数重命名,并以注释写出解码后的文本。
一款 IDA Pro 插件,用于清理 Hex-Rays 伪代码,并为 iOS 用户态二进制和 kernelcache 提供导航辅助,会根据所加载的文件启用相应组件。对 Objective-C 和 Swift 代码,它可隐藏引用计数调用、选择器和静态类参数,折叠 os_log 调用序列,把属性辅助函数还原为普通赋值或字段读取,列出方法选择器的交叉引用,并加入 Swift 类型声明和可读的栈上字符串。对 kernelcache,它可为 safeMetaCast 和带类型的 operator new 的返回值设置类型,为 kalloc_type_view 全局变量命名并设置类型,修正 this 参数,并列出虚函数调用的所有可能实现;通用辅助功能则会移除 __break 调用、改写范围条件、折叠 block 初始化代码并标记外提(outlined)函数。
曼彻斯特大学开发的动态二进制修改框架,可在 32 位 Arm(A32/T32)、AArch64 和 RV64GC RISC-V 上运行未经修改的 Linux 用户态程序,并在执行过程中把代码翻译到代码缓存里运行。事件驱动的 C 插件 API 可在代码扫描与执行事件上注册回调并生成插桩代码;示例插件可统计指令构成、分支与基本块次数,跟踪内存访问和系统调用,查找热点,模拟缓存,检查内存错误并检测数据竞争。
一款 IDA Pro 插件,借助 C++ 运行时类型信息(RTTI)扫描 Microsoft Visual C++ 编译的二进制中的虚函数表(vftable),为找到的虚函数表命名、添加标签和注释,定义 RTTI 数据结构,并识别各类层次结构中的单继承、多继承和虚继承。它还会处理静态初始化与终止函数表,并打开一个列表窗口,显示各虚函数表的方法数量和类层次结构,点击任一行即可跳转到对应的虚函数表。作者指出,IDA 9 内置的 RTTI 插件现已能找到几乎全部此类数据,因此当前版本只为 IDA 遗漏的结构设置类型,主要用作汇总和浏览视图。
McGill 大学数据挖掘与安全实验室开发的服务端平台,可把大量已反汇编的二进制建立索引、存入可共享的仓库,并在其中搜索克隆的汇编函数。平台提供多种应用:在同一指令集家族内进行子图克隆搜索(Asm-Clone),借助符号执行与具体执行在 VEX IR 上进行跨架构语义搜索(Sym1n0),面向编译优化与混淆的 Asm2Vec 表示学习,以及基于 Asm2Vec 的可执行文件分类。IDA Pro 插件把函数发送到服务端,并以控制流图、文本差异和克隆分组视图展示结果;README 中的准确率与查询耗时数据出自作者自己的论文。
用于分析 iOS 应用和 arm64 Mach-O 二进制的工具集,基于 Capstone、Unicorn 与 Keystone 构建。其扫描器可提取应用包元数据(如 URL Scheme 和传输安全设置),定位 Objective-C 类引用和 NSPredicate 用法,识别符号包装函数,并借助 Unicorn 部分模拟 arm64 代码以恢复 objc_msgSend 交叉引用,包括经由 block 传递的调用。生成器可把扫描报告转成 IDA Pro 脚本,用于添加交叉引用和重命名包装函数,也可启动本地查询服务;共享核心库及插件接口可用于开发自定义工具。
Denuvo 发布的研究工具,用于化简线性混合布尔-算术(MBA)表达式;这类表达式混合使用位运算和整数运算,常见于代码混淆。它与 MBA-Blast、MBA-Solver 一样采用纯代数方法,依据线性 MBA 完全由其在 0/1 输入上的取值决定这一性质:对所有 0/1 输入组合求值,再把表达式改写为基本位运算表达式的线性组合,而无需先转换到 1 位空间。所附 Python 脚本可化简单个表达式或整个数据集,可检查输入是否为线性 MBA,并可用 Z3 证明结果与原式等价。
GrammaTech 开发的二进制中间表示,用于在各类二进制工具之间传递反汇编、分析与改写结果,其定位参照 LLVM-IR 在编译器中的作用。一个 IR 包含代表可执行文件或库的模块及其节、字节区间、代码块与数据块、符号和符号化操作数,另有过程间控制流图和存放分析结果的 AuxData 表,所有元素都通过 UUID 引用;它刻意不表示指令语义,机器码以原始字节保存,可交由 Capstone/Keystone 或其他中间语言处理。GTIRB 以 protobuf 序列化,提供 C++、Python 和 Common Lisp API 以及不完整的 Java API;另行收录的 ddisasm 可生成这种表示。
Quarkslab 的二进制导出工具,受 BinExport 启发,把反汇编器的分析结果保存为 protobuf 格式的 .quokka 文件,此后无需反汇编器即可使用其中的函数、基本块、数据、交叉引用、段以及可选的反编译代码。其 Python 绑定将导出文件与原始二进制一并载入,运行时用 Capstone 解码指令,也可选用 pypcode 将其提升为 P-code,并通过统一的 API 提供程序、函数和控制流图。main 分支在 IDA Pro 插件之外新增了 Ghidra 与 Binary Ninja 导出器、可并行批量导出的 quokka-cli,以及可写回 IDA 数据库的名称和类型编辑。
以 Rust 编写的静态逆向工程工具包,安装后为 knife 命令,可在不运行目标的情况下解析 PE、ELF、Mach-O 和 WebAssembly 文件。它能分诊哈希、节区、缓解措施、导入、字符串、威胁指标和加密常量;通过面向 x86/x64 与 AArch64 的递归下降反汇编恢复函数、调用图和控制流图;还能把函数提升为实验性伪代码。分析者添加的命名、注释、类型和暂存补丁保存在按二进制区分的数据库中,由命令行、终端界面和 MCP 服务器共享;另有分析步骤按参数来源对有风险的 API 调用点排序,并汇总 Windows 驱动的派发例程和 IOCTL 接口。
一个 Python 二进制分析框架:加载 ELF 和 PE 程序,借助 Capstone 反汇编 32 位与 64 位 x86 及 32 位 ARM 代码,并将其翻译为 REIL 中间语言,使各项分析不依赖源架构。其模块可恢复控制流图和调用图、模拟执行 REIL,并把代码片段转换为 Z3 或 CVC4 公式,以检查寄存器和内存上的约束;0.6.0 版加入了基础的符号执行。随附的命令行工具可恢复 CFG 和调用图、重放 x86 执行轨迹,以及搜索、分类和验证 ROP gadget。
使用 C 编写、完全不在堆上分配内存的 MIPS 指令解码器,同一仓库还提供 Python、C++ 和 Rust 绑定,目标是生成可匹配的汇编。它逐条解码指令字,重点支持 MIPS I 至 III,部分支持 MIPS IV,还能处理 N64 的 RSP、PlayStation 的 R3000 GTE、PSP 的 R4000 Allegrex 以及 PS2 的 R5900;提供指令有效性检查、按特征分组查询指令、可配置的伪指令与寄存器命名,以及用于自建指针和符号检测的小工具。匹配式反编译工具以它为基础:splat 和 spimdisasm 都把它列为 Python 依赖。
通过 pyghidra 驱动 Ghidra 的 Python 命令行反编译工具:把二进制中的所有函数分别反编译为独立的 C 文件,或借助 Ghidra 的 C++ 导出器生成一个 C 文件和头文件,并保留 Ghidra 项目以便后续运行复用分析结果。可按正则筛选函数,从本地文件或 Microsoft、Chromium、Mozilla、Intel、NVIDIA、AMD 符号服务器应用 PDB 符号,加载额外的 GDT 数据类型库,输出 Mermaid 调用图 Markdown,生成 BSim 函数签名,并用 Semgrep 规则扫描反编译代码、输出 SARIF 报告。
纯 Python 编写的逆向工程框架,集成了 vivisect 静态分析器、vtrace 调试库和 vdb 调试器。Vivisect 可将 PE、ELF、Mach-O、Intel HEX、S-record 和原始数据块文件载入工作区,借助 envi 架构模块对 x86、AMD64、ARM、Thumb、AArch64、MSP430、H8 和 Z80 代码进行反汇编和模拟执行,并提供符号执行、Qt 图形界面和远程工作区服务器。vtrace 可在 Windows、Linux、FreeBSD、macOS 和 Solaris 上控制进程,另有 GDB stub 和 VMware 后端。
radare2 官方的脚本接口,同一仓库内收录了二十多种语言的实现。所有绑定都向 radare2 发送命令字符串并返回其文本输出,这正是 r_core_cmd_str() 背后的设计;README 建议请求 JSON 输出并将其解码为本地语言对象,而不是直接调用 C API。绑定可经由从 r2 内部运行脚本时的 R2PIPE_IN/R2PIPE_OUT 管道、新启动的 r2 -q0 进程、TCP、HTTP 或 radare2 自有的 RAP 协议连接,其中许多支持异步调用;r2pipe 脚本还可用于实现反汇编器、IO 后端或 ESIL 系统调用处理器等 radare2 插件。
Galois 开发的命令行工具、Ghidra 插件和 Haskell 库,借助欠约束符号执行检查二进制程序的性质。它把 AArch32、PowerPC 或 x86_64 的 ELF 可执行文件和共享对象(或 LLVM bitcode)转换为控制流图,从所有寄存器均为符号值的状态模拟每个函数,并在发生越界访问后逐步扩充推断出的内存布局,最终报告除零、非法内存访问等可能的未定义行为,并给出具体化的参数。内置覆盖(override)或用户以 Crucible S 表达式语言编写的覆盖可模拟外部库函数,插件则在 Ghidra 中展示结果。
交互式终端反汇编器,旧名 Reverse,支持 x86 与 x86-64,并部分支持 ARM 和 MIPS/MIPS64,可读取 ELF、PE 和原始二进制。其可视化模式以缩进、着色的伪代码显示函数,分析者可通过反转条件跳转来调整控制流;Python API 可运行脚本,用于提取字符串、生成交叉引用调用图、检测加密常量以及调用 Keystone 汇编。项目自 2019 年起停止开发,仓库没有发布版本。
Derek Selander 编写的 macOS 命令行工具,通过 Apple 的私有 MobileDevice 框架检查和控制经 USB 或 Wi-Fi 连接的 iOS 设备。它可列出设备和已安装应用及其 Info.plist 键值与权限(entitlements),实时输出设备控制台日志,获取崩溃日志,查看描述文件和开发者证书,在沙盒允许时把应用的数据容器拷出设备并传回,还能安装、卸载应用,并带参数和环境变量启动应用。挂载开发者磁盘映像(DDI)后,还能列出和结束进程、模拟定位;输出可按 plist 格式打印,便于脚本处理。
horsicq 开发的基于 Qt 的 PE 文件查看与编辑工具,支持 Windows、Linux 和 macOS;作者也是本目录所收录 Detect It Easy 的作者。其 PE 视图可解析 DOS 头、NT 头和可选头、节区、普通导入、延迟加载导入和绑定导入、导出、资源(包括清单、版本信息和字符串表)、重定位、TLS 回调、异常、调试和加载配置数据、证书、Rich 头以及 .NET 元数据表。另有十六进制、反汇编、字符串、熵、哈希、内存映射和提取器视图,并集成 Detect It Easy、Nauz File Detector 和 YARA 扫描,以及可选的 VirusTotal 查询。
Ruben Boonen 开发的 Electron 桌面应用,把 frida-node 和 Monaco 编辑器整合到同一个窗口中,用于编写、注入和反复调整 Frida 脚本。编辑器提供代码检查、IntelliSense 和 Frida API 类型定义;设备菜单可连接本地、USB 和远程 Frida 服务端,附加到进程或启动新进程;脚本可用快捷键在目标中重新加载,输出显示在代码旁边。原型阶段的 CALL 追踪器从选定的指针或模块符号开始,跟踪线程发出的每一次调用直至返回,并将结果渲染为 Graphviz SVG 图;应用还内置了 Frida JavaScript API 文档。
Mandiant FLARE 团队开发的 Ghidra 扩展,借助 Jep 把用户本机的 CPython 3 解释器嵌入 Ghidra,作为 Ghidra 基于 Jython 的 Python 2.7 脚本支持之外的选择。它提供交互式 Python 3 解释器窗口,可在脚本管理器中编写和运行 Python 3 脚本,也可在无界面的 analyzeHeadless 运行中执行 Python 3 后处理脚本;currentProgram() 等 GhidraScript 状态和 FlatProgramAPI 方法以 Python 内置名称的形式提供。由于直接使用所配置的解释器或虚拟环境,脚本可以导入其中已安装的包;README 以 capa、Unicorn 和 angr 为开发动机举例,并演示在 Ghidra 内用 Unicorn 模拟执行 ARM 代码。
轻量级的 x86/AMD64 C 语言反汇编库,README 称其为“分解器”:除格式化文本外,distorm_decompose 还会为每条指令返回一个二进制结构,描述其操作码、操作数、前缀、控制流类别,并可选地给出受影响的 CPU 标志位。它可解码 16、32 和 64 位代码,可在遇到调用、返回、分支、中断或特权指令时停止,其生成的指令表涵盖整数、x87、MMX、3DNow!、SSE 至 SSE4.2 和 SSE4a、AVX、FMA、AES、CLMUL、VMX 及 SVM 指令集。仓库还包含 distorm3 Python 模块,以及 Java 和 .NET 的示例封装和面向 Linux、Win32 及 Windows 内核驱动的示例程序。
面向 Android 5.0 的 Java 方法动态插桩工具包,让分析人员在没有应用源码的情况下自行编写跟踪和性能分析工具。启动器通过 ptrace 把原生引擎库和用户构建的插桩 APK 注入新启动的目标应用;插桩工具继承 Instrument API,钩挂系统框架或应用自定义的 Java 方法,查看或修改其参数与返回值。README 的演示使用示例工具,记录经 StringBuilder 和 StringBuffer 构造的字符串,以及应用启动的 Activity 和 Service。
一个小型 Python 命令行工具,通过 Frida 附加到正在运行的进程,把其中可访问的内存区域写入文件;可在 Windows、Linux 或 macOS 主机上运行,面向 iOS、Android 或 Windows 应用。默认只保存可读写的内存区域,-r 会连同只读区域一并保存;超过大小上限(默认 20 MiB,可用 --max-size 调整)的区域会拆分成多块;-s 会对所有转储文件做一遍简单的字符串提取,把可打印文本汇总到 strings.txt。其 README 称该工具主要面向渗透测试人员和开发者。
基于 GoRE 库的命令行工具,可从 Go 编译器生成、已剥离符号的二进制文件中恢复元数据。它能报告编译器版本、构建 ID、GOROOT、main 包路径和 Go 模块信息;列出项目包、标准库包和 vendor 包;把接口、结构体及其方法输出为 Go 类型声明;并按包、文件和函数推测源码树布局,估计各函数的行号范围。通过 r2pipe 在 radare2 中运行时,它会为函数和类型添加标记,并分析 main.init 与 main.main。
为 Ghidra 增加 nanoMIPS 反汇编和反编译能力的处理器模块,以 SLEIGH 规范描述小端 32 位 nanoMIPS 指令集,包括其多线程指令。NCC Group 的发布文章称,该模块是在逆向分析 MediaTek 5G 基带固件时编写的,实现了该固件中遇到的指令,部分复杂 P-Code 仿真尚未实现,但已能反编译团队分析过的大部分基带代码。
基于 Capstone 的 Python 递归反汇编库,借助 x86/x64、AArch64、32 位 ARM/Thumb、CIL 和 Dalvik 后端,从 PE、ELF、Mach-O 文件、.NET 程序集、原始 DEX 文件以及已知基址的内存转储中恢复控制流图。其 JSON 报告列出函数、基本块、指令及其间的边,并补充来自导入表、导出表、PDB、Go、Rust 与 Delphi 元数据的符号、被引用的字符串、用 ApiScout 方法推断的 Windows API 引用以及位置无关代码哈希。函数发现有意以完整性优先于精确性;README 称 SMDA 是 capa 的反汇编后端和 MCRIT 的代码分析层,IDA Pro 或 Binary Ninja 的分析结果也可导出为同一报告格式。
供 Frida 代理脚本使用的 JavaScript 库,按声明式描述跟踪原生函数:每个函数都列出返回类型及输入、输出参数,参数类型包括指针、UTF-8 与 UTF-16 字符串,以及长度绑定到其他参数或返回值的字节数组,还可设置条件,例如仅在调用成功时读取输出指针。它从模块导出表或虚函数表解析函数,挂接 Frida 的 Interceptor,并为每次调用向回调传递一个事件。同一仓库中的辅助脚本可借助 libclang 从 C 头文件生成跟踪样板代码。
USENIX Security 2023 论文《Decompiling x86 Deep Neural Network Executables》的研究产物。BTD 将 DNN 编译器 TVM、Glow 和 NNFusion 生成的 x86 可执行文件反编译为模型规格:算子类型、网络拓扑、维度以及权重和偏置等参数。它把 IDA 的反汇编结果拆分为函数,用基于汇编词元训练的分类器推断每个算子的类型,用 Intel Pin 记录执行轨迹并经污点分析过滤,借助基于轨迹的符号执行引擎恢复维度和参数,最后在 PyTorch 中重建模型,并将其输出与原可执行文件对比。
SourceForge 上 Boomerang 项目的分支,是一款通用的机器码反编译器,可将可执行文件转换为 C 代码。README 列出的支持范围为 ELF、PE、DOS MZ、DOS/4GW LE 和 Mach-O 文件中的 x86(仅 IA-32)、PowerPC 和 ST20 代码;指令语义由 SSL 规格文件定义,库函数签名文件以及 printf、scanf 类格式字符串可辅助恢复类型。它提供 boomerang-cli 命令行工具和基于 Qt 的 boomerang-gui 图形界面,并附有单元、回归和重编译测试套件。
纯 Python 编写的 Mach-O 与 Objective-C 静态分析工具包,可作为 ktool 命令行、终端浏览界面(ktool open)或程序库使用,没有需要编译的依赖。其命令可列出加载命令、链接库、符号表、导入与导出符号、Objective-C 类和协议、Swift 类型、函数起始地址以及代码签名权限(entitlements),并可导出重建的 Objective-C 头文件或 .tbd 存根。它还能列出并提取内核缓存中的 kext,拆分和合并 fat 二进制文件,修改安装名并插入加载命令。
由 Federico Dotta 和 Piergiovanni Cipolloni 开发的 Burp Suite 扩展,在 Burp 与 Frida 之间架起桥梁,让分析者直接调用应用自身的函数处理它与后端交换的 HTTP 消息,而不必重新实现其中的加密、编码或签名逻辑。图形化插件引擎把 Frida 导出函数接入 Burp:既可在所有 Burp 工具中处理请求和响应,也可通过自定义消息编辑标签页、右键菜单项和按钮调用;Generate Stubs 工具还能为外部 Burp 扩展生成 Java 或 Python 代码。分析标签页以树形展示应用的 Java 和 Objective-C 类、方法以及导入导出,可从中添加挂钩,记录参数和返回值,或替换返回值;内置编辑器用于编写分析者自己的 Frida 导出函数。
一体化恶意软件初筛工具,可对 Windows PE、Linux ELF(含 Go 二进制)、macOS Mach-O 和 Android APK、JAR、DEX 文件,以及 Office 与 PDF 文档、脚本、快捷方式、压缩包、电子邮件和 PCAP 做静态分析,报告导入表与 API 分类、节区、字符串与 IOC、加壳器、内嵌可执行文件、Android 权限风险和 YARA 匹配,并为 Windows 与 Linux 程序给出 MITRE ATT&CK 映射。VBA/VBScript、JavaScript 和 PowerShell 交由有界的内存内模拟器处理,而不会真正执行;--watch 模式可监视 Windows、Linux 和 Android 上运行中的进程。分析功能可通过命令行、Flask 网页界面和 MCP 服务器调用,还可选择用大语言模型总结 JSON 报告。
基于 Frida 的框架,由 Nishant Das Patnaik 开发,曾在 2016 年 Black Hat Arsenal 展示,用于观察 macOS、iOS 和 Android 原生应用发起的系统 API 调用。其 Sniffer 组件可附加到应用或启动应用,加载内置脚本库中的挂钩脚本(涵盖加密、钥匙串、文件、SQLite、HTTP、IPC 和 WebView 等方面),并把每次截获的调用记录到按应用划分的 SQLite 数据库中,由本地 Flask 网页界面展示。其他组件可追踪 Android 应用中的 Java 类、方法及参数类型,并可把 IPA 或 APK 与 Frida Gadget 一起重新打包,以便在未越狱或未 root 的设备上进行检查。
Airbus CERT 开发的插件,把 Ghidra 的原生反编译器嵌入 IDA Pro 和 IDA Free:在函数上按 F3 即可在 IDA 中查看 Ghidra 生成的 C 代码,在其中所做的修改(包括函数原型等全局符号,以及栈变量和寄存器变量的名称与类型)会保存到 IDA 数据库。README 列出已支持 x86、x86-64、ARM、AArch64、PowerPC、MIPS、SPARC、AVR8、6502、Z80 和 eBPF,而 Dalvik、JVM、RISC-V、68000 等其他 Ghidra 处理器尚未启用。
Marco Ivaldi(raptor)编写的 Frida JavaScript 插桩脚本集,用于逆向移动应用和 Linux 程序。主力 Android 与 iOS 追踪脚本按名称、通配符或正则表达式挂钩 Java 或 Objective-C 的类与方法,并通过 exports:*!open* 等 Frida ApiResolver 模式匹配原生函数,记录每次调用的参数与返回值,并可输出调用栈。配套脚本可枚举已加载的类与方法;另有一对 Linux 脚本用于追踪并枚举 ELF 二进制文件及其共享库中的函数。
Windows 进程查看与系统检查工具,前身为 Process Hacker,用于检查运行中的程序及其所在的系统环境。它以高亮方式概览系统活动,可在各进程的句柄和已加载 DLL 中搜索,找出正在占用某个文件的进程,显示活动网络连接和实时磁盘访问,查看支持内核模式、WOW64 和 .NET 的详细调用栈,并能创建、编辑和控制服务。4.0 版新增 Process Monitor,借助内核驱动实时记录进程、线程、映像、注册表、文件、句柄和 silo 事件;插件还提供 .NET 程序集与性能页、窗口浏览器和 Hybrid Analysis 在线查询。
GCHQ 开发的浏览器端数据处理工具,把多个操作串成“配方”(recipe),对数据进行解码、解密、解压、解析和提取,所有处理都在本地浏览器中完成。所固定版本的操作目录列出 506 个操作,包括 XOR 暴力破解、AES/DES/Blowfish 解密、x86 与 ARM 反汇编、ELF 信息解析、文件类型识别、文件提取、熵与字符串分析、YARA 规则匹配、Protobuf 解码,以及以太网帧和 IPv4、TCP、UDP 报头解析。Magic 操作会尝试自动识别多层嵌套编码;在配方中设置断点后,可逐个操作执行,查看数据在每一步的变化。
VirusTotal 推出的模式匹配工具,用规则识别和归类恶意软件样本等文件;每条规则由文本、十六进制和正则表达式字符串加一个布尔条件组成。可通过命令行、libyara C API 或 Python 扩展 yara-python 扫描单个文件、文件夹或运行中的进程。各模块向规则提供解析后的结构信息:pe 和 elf 模块提供 PE 与 ELF 头部的大部分字段,dotnet 模块提供 .NET 元数据,math 模块提供熵等计算,可选的 magic 和 cuckoo 模块则提供 libmagic 文件类型和 Cuckoo 沙箱行为报告数据。
集内存扫描、调试、反汇编和汇编于一体的工具,用于检查和修改运行中的游戏及其他应用;README 称其为专注于游戏和应用改造(仅供个人使用)的开发环境。项目网站列出的功能包括:快速扫描游戏所用变量的内存扫描器,以及调试器、反汇编器、汇编器、变速(speedhack)、修改器(trainer)制作、Direct3D 操控和系统检查工具;README 中的构建说明还提到 Mono、.NET 和 Java 运行时检查、VEH 调试器接口、在脚本中嵌入 Lua 与 C 代码,以及可选的内核模式驱动。
调用 Sysinternals Process Monitor 记录程序运行时行为的 Python 脚本,会滤除常规系统活动,并生成文本报告,列出程序创建的进程及其文件、注册表和网络活动。它可以当作轻量级恶意软件沙箱使用,也能在分析人员手动运行样本时记录事件,例如样本需要特定命令行参数、需要用户交互,或在调试器中单步执行时。新建的文件可用 YARA 规则扫描,其哈希值可在 VirusTotal 上查询。2.1.0 版新增 DLL 加载监控、ASCII 进程树和 JSON 输出;NoribenSandbox.py 可在客户机虚拟机中自动完成分析流程。
机器级与用户态模拟器,借助 TCG 动态翻译,在一种 CPU 架构上运行为另一种架构编译的代码。系统模拟可完整模拟一台机器,例如在 x86_64 PC 上运行 ARMv7 开发板;用户态模拟则通过转换系统调用,直接运行为其他 ABI 编译的 Linux 或 BSD 程序。在分析方面,gdbstub 允许用 GDB 暂停客户机、查看寄存器和内存、设置断点与观察点;TCG 插件能以被动方式插桩,粒度可细到单条指令和每次内存访问(自带示例可统计指令数、跟踪系统调用和记录执行过程);系统模拟还支持确定性执行,便于录制/回放调试。
开源的 macOS 十六进制编辑器,无需把文件载入内存即可查看和编辑任意大小的二进制文件。它支持插入与删除字节和快速搜索,数据检查器可按有符号或无符号、大端或小端解读整数和浮点数。通过 File > Compare 可比较两个文件,并考虑插入或删除字节带来的偏移;用 Tcl 编写的二进制模板会在字节旁显示文件结构,自带模板涵盖 COFF、ELF、Mach-O 和 MS-DOS EXE 文件头、6502 反汇编、Commodore 64 PRG 文件,以及压缩包、文件系统、分区表和媒体格式。其十六进制视图和数据视图还以可嵌入框架的形式提供。
面向 32 位和 64 位 Windows 程序的用户态(ring 3)反反调试库,通过挂钩系统函数,让被调试程序察觉不到调试器。其文档逐项说明各个选项:处理 BeingDebugged、NtGlobalFlag 和堆标志等 PEB 调试标志,应对借助 ThreadHideFromDebugger 隐藏的线程,在窗口查询和进程列表中隐藏调试器的窗口与进程,应对以无效句柄调用 NtClose 的检测,以及输入屏蔽、计时检测、硬件断点检测和基于异常的检测;附加选项可注入 DLL、阻止创建线程,并转储以 RunPE 方式启动的进程。它以插件形式集成到 x64dbg、OllyDbg v1/v2、IDA 和 TitanEngine,也可用独立的 InjectorCLI 把钩子库注入到任意调试器下的进程。
VirusTotal 用 Rust 重写的 YARA,以模式匹配规则识别和归类文件。它的目标是取代 YARA,提供更详细的错误报告、更快的正则表达式与十六进制模式匹配,以及功能更强的命令行。规则沿用 YARA 的语法,即文本、十六进制和正则表达式模式加布尔条件;各模块可解析 PE、ELF、Mach-O、.NET、Android DEX、Chrome CRX 和 Windows LNK 文件。命令行无需任何规则即可把模块的解析结果输出为 JSON 或 YAML,因此也能当作文件结构剖析工具使用。项目提供 Rust、C、Go 和 Python API、规则格式化工具,以及带 Visual Studio Code 扩展的语言服务器。
用于重建运行中 x86 或 x64 进程内类与数据结构的内存结构编辑器,是 ReClass 移植到 .NET 平台并大量扩展后的版本。使用者把内存布局成带类型的节点,如整数、浮点数、向量与矩阵、文本、指针、数组、联合体、虚函数表和函数指针,可自动剖析节点、高亮变化的内存、读取 PDB 调试符号中的类型和 RTTI 类名,再根据结果生成 C++ 或 C# 代码。它还提供内存查看器和扫描器、模块与节区转储、可找出哪些代码写入或访问某个地址的调试器,以及能提供其他内存访问方式或游戏专用类信息(例如 Frostbite 游戏)的插件。
基于 Keystone 汇编引擎的 IDA Pro 插件:可直接输入汇编指令修补二进制文件,用指令或原始字节填充一段地址范围,并在已加载的二进制文件中搜索汇编指令。它支持 Arm、Arm64、Hexagon、MIPS、PowerPC、SPARC、SystemZ 以及 16/32/64 位 x86,输入时即时显示编码,可用 NOP 填充到下一条指令边界,在 IDA 注释中保留原指令,并可撤销上一次修补。
基于 Qt 的图形化调试器,受 OllyDbg 启发,支持 AArch32、x86 和 x86-64 程序,目前只正式支持 Linux。界面可停靠反汇编、寄存器、栈和数据视图,并提供内存区域窗口、附加到进程、符号支持、表达式语法,以及类似 IDA Pro 的分析条;默认插件包括 Analyzer、Assembler、BinarySearcher、BreakpointManager、FunctionFinder、HardwareBreakpoints、HeapAnalyzer、OpcodeSearcher、ROPTool 和 SymbolViewer。
Google 开源的二进制分析 IDE,可查看、浏览、编辑和注释反汇编代码的控制流图与调用图。它还能收集并合并执行跟踪,帮助分析团队共同跟踪分析结果。反汇编数据由随附的 IDA Pro 导出插件写入 PostgreSQL 数据库,BinNavi 用该数据库存储反汇编、注释和跟踪记录;README 指出目前还没有面向其他反汇编器的导出工具。
Mandiant FLARE 团队的 Python 库,把 IDA Pro、Rizin 或 Radare2 与 Unicorn 模拟器结合起来,让分析人员能以脚本方式模拟执行正在分析的二进制代码,支持 32/64 位 x86、ARM 和 ARM64。它提供的接口可在指定寄存器和栈值下模拟一段指令或一个函数,强制走到目标地址或某函数全部交叉引用所需的分支,遍历函数的所有路径,单独运行一段字节,或从某个地址一直模拟到没有代码可执行为止,并支持指令级和调用级钩子。README 中的常见用法是在每个调用点模拟恶意软件的字符串解密函数,并把解密结果写成注释。
Hex-Rays 推出的商业交互式反汇编器、反编译器与调试器,可将 70 多个处理器家族的已编译代码转为带注释和交叉引用的汇编代码及反编译伪代码。其 15 款反编译器覆盖 32 位与 64 位的 x86、ARM、MIPS、PowerPC 和 RISC-V,以及 ARC、V850、TriCore、Hexagon 和 Android DEX;其中 Dalvik、TriCore 和 Hexagon 反编译器为 IDA 9.5 新增,Dalvik 反编译器可把 DEX 字节码还原为 Java 伪代码。文档列出的加载器支持 PE、ELF、Mach-O(含 Apple dyld 共享缓存和 kernelcache)、DEX、UEFI 固件镜像、WebAssembly 模块,以及 Xbox XBE、N64、SNES ROM 和 PlayStation PSX 可执行文件等游戏机格式;处理器列表也涵盖从 NES、Game Boy 到 PlayStation 3 的 Cell、Xbox 360 的 Xenon 和 PSP 的 Allegrex 等游戏机 CPU。调试器既可本地调试,也可通过远程调试服务器调试 Windows、Linux、macOS 和 Android 目标;分析可用 IDAPython、IDC 和 C++ SDK 编写脚本,借助 idalib 库在无图形界面的环境中运行,或通过 IDA MCP 交由 MCP 客户端驱动。
Vector 35 推出的商业交互式反汇编器、反编译器与调试器,其反编译器建立在 BNIL 中间语言家族之上,可为所有官方支持的架构输出 C 或 BNIL。视版本不同,它可反编译 x86/x86-64、ARMv7/Thumb2、AArch64、PowerPC、MIPS、RISC-V、MSP430、6502、nanoMIPS、TriCore、C-SKY、M·CORE、Hexagon、NDS32 和 TMS320C6x,并能加载原始二进制以及 PE/COFF、ELF、Mach-O、TE、Intel HEX、Motorola S-Record、TI-TXT、MD1ROM 和 VxWorks 文件。C++、Python 和 Rust API 可在界面内外自动化分析;开源调试器可在 Windows、Linux 和 macOS 上本地或远程调试,也能连接 GDB、LLDB 和 iOS debugserver 目标;补丁可通过直接修改汇编、十六进制编辑器或内置的 SCC 编译器完成;6.0 版还加入了 MCP 服务器。Ultimate 版另含面向嵌入式固件的 Firmware Ninja,可按熵值识别代码与数据区域并检测对内存映射 I/O 的访问;EFI Resolver 工作流则为 UEFI 的 PEI、DXE 和 SMM 模块中的协议调用补全类型信息。
Cryptic Apps 推出的商业反汇编器、反编译器与调试器,运行于 macOS 和 Linux,可读取面向 32/64 位 Intel、ARMv6、ARMv7、ARM64 和 PowerPC 处理器构建的 Mach-O(macOS 与 iOS)、PE 和 ELF 可执行文件。每个函数都能以汇编、可导出为 PDF 的交互式控制流图或类 C 伪代码呈现,并能还原 Swift 修饰名、提取 Objective-C 选择器与消息;还可通过十六进制编辑器、内置汇编器或 Python 修改二进制。调试 Mac 应用时可使用 LLDB 或 GDB;Python 脚本可调用大部分功能,SDK 可扩展文件格式解析器和 CPU 后端;Hopper 6 推出了新的反编译器以及供大语言模型客户端使用的 MCP 服务器。
微软的 WinDbg 调试器及 Debugging Tools for Windows 工具包,文档发布于 Microsoft Learn,用于调试运行中的用户态和内核态代码、分析崩溃转储,以及检查 CPU 寄存器和内存。当前的 WinDbg 应用沿用 WinDbg (Classic) 的调试引擎、命令和扩展,并新增时间旅行调试(Time Travel Debugging,可录制用户态进程并向前、向后回放)、JavaScript 与 NatVis 脚本和 Linux ELF 转储分析;自 1.2610.1001.0 版起还提供面向受支持 AI 客户端的 WinDbg MCP。
SweetScape Software 推出的商业十六进制与文本编辑器,其 Binary Templates 采用类似 C/C++ 结构体、可含控制流语句和函数的写法,将二进制文件解析为可编辑的层级结构。模板可在打开文件时自动运行,并能通过在线仓库分享;语法类似 C/C++ 的脚本可自动完成编辑和批处理;工具还包括基于 Capstone、支持 x86、ARM、MIPS、PowerPC 等架构的反汇编器、逐字节比较、校验和与哈希计算,以及磁盘和 Windows 进程内存编辑。
Winitor 推出的 Windows 恶意软件初步评估工具,以静态方式检查 Windows 可执行文件,报告硬编码的 URL 和 IP 地址、被标记的导入函数、资源及附加数据(overlay)等关键指标。免费的基础版还能识别文件签名、调试信息和 TLS 回调,计算熵值与 imphash,显示 rich header 和 .NET 元数据,并凭哈希查询 VirusTotal 评分;pestudio-pro 另提供 MITRE ATT&CK 映射、XML 报告和命令行版本 pestudiox.exe。
面向 Windows 的 32 位汇编级分析型调试器,侧重二进制代码分析,适用于没有源码的程序;其网站称开发已冻结,列出的最新版本是 2013 年 9 月 27 日发布的 2.01。它能识别过程、循环、API 调用、switch 结构、表、常量和字符串,解码对 1900 多个标准 API 和 400 个 C 函数的调用;还可附加到运行中的程序、直接调试 DLL,设置条件、日志、内存和硬件断点,并把补丁写回可执行文件。
用于浏览二进制程序执行跟踪的 IDA Pro 插件:载入外部录制的跟踪后,分析人员可沿时间轴向前或向后单步,反汇编视图会标出前后两个方向的执行流。执行断点、内存断点和区域断点可在跟踪时间轴上标出某条指令的每次执行,或某个地址、某段内存的每次读写;寄存器回溯可直接跳到设置该寄存器当前值的指令;时间戳命令行可跳转到跟踪中的指定位置或百分比处。
IDA Pro 插件,用 YARA 规则在已加载的数据库中扫描密码学常量等特征,在结果窗口中列出匹配项,并按规则名为每个匹配地址命名。随附的 findcrypt3.rules 包含 126 条规则,涵盖 MD5、SHA-1、SHA-256、SHA-512、RIPEMD-160、Whirlpool、DES、Blowfish、RC6、TEA 和 CRC32 等哈希、加密与校验算法的常量和查找表,大数与素数常量,加密 API 名称,以及 OpenSSL、Crypto++、MIRACL 和 FGint 等库中的函数;用户还可添加自己的 .rules 文件。
为 IDA Pro 调试器新增寄存器视图和栈视图的插件,视图中会显示解引用后的指针并加以着色,效果类似 PEDA、GEF、pwndbg 等 GDB 插件的上下文显示。它支持 x86、x86-64、ARM、ARM64、MIPS32 和 MIPS64;两个视图可从 Debugger > Debugger Windows 菜单或用 Alt-Shift-D、Alt-Shift-E 快捷键打开,保存桌面布局后,之后的调试会话会自动重新打开它们。
一组 IDAPython 脚本,通过对反编译得到的 ctree 运行用户编写的 lambda 查询,在 Hex-Rays 反编译输出中查找代码模式,与二进制文件的处理器架构无关。查询可在 IDA 内的 hxtb-shell 图形界面中运行,也可在 IDAPython 中通过 find_expr()、find_item() 等函数调用,或借助交互式命令行辅助函数运行,还能以批处理方式对一组文件执行。README 列出的用途包括查找漏洞及其变种、在新反编译的代码中定位此前逆向过的程序里的代码模式、恶意软件变种分析,以及在为不同架构编译的二进制文件之间查找相同模式。
在 IDA Pro 中重建 C++ 虚函数表的 IDAPython 工具,适用于 32/64 位 Intel 和 AArch64 代码,通过在 IDA 调试器中运行程序并观察间接调用来完成。静态部分负责找出间接调用,并用条件断点挂钩其调用目标的赋值;断点命中后,动态部分会创建虚表结构体、重命名虚表和虚函数、为调用指令加上结构体偏移,并从每个间接调用添加指向其实际调用的虚函数的交叉引用;对 AArch64 固件,它还会尝试修复未定义的虚表及相关函数。
x64dbg 插件,为被调试的 x86 或 x64 可执行文件的静态代码添加函数调用、参数和循环分析注释。它依据覆盖近 200 个 DLL、超过 13,000 个 API 的定义补充参数和类型信息,对未定义的调用和基于寄存器的调用做通用处理,并自动识别循环。分析可通过菜单或 xanal 命令作用于选中范围、单个函数或整个模块,也可像 OllyDbg 的初始分析那样在到达入口点时自动执行;用户还可以自行扩充其 .api 定义文件和头文件。
可扩展的 Python 调试器界面工具包,能为 LLDB、GDB、VDB 和 WinDbg/CDB 会话附加实用视图。每个视图从调试器宿主获取数据,并可在单独的终端中运行,使用者可借此组合出自己的调试界面;内置视图涵盖寄存器、反汇编、栈、内存、断点和调用栈回溯,任意调试器命令都能拆分成独立视图,并用指定的 Pygments 词法分析器高亮显示。这些视图是对调试器命令行的补充,而不是替代。
静态二进制翻译库,可把 AArch64、SPARC32、SPARC64、x86 和 amd64 机器码(包括 AVX 与 AVX512 指令)提升为 LLVM bitcode,AArch32 支持正在开发中。它专注于准确提升单条指令,定位是供 McSema 等其他工具调用的库;文档逐步介绍了一条指令如何被提升、如何实现指令语义以及整体设计。
radare2 逆向工程框架的官方图形界面,基于 Qt 构建,力求在命令、功能和快捷键上与 radare2 保持一致,现有的 r2 插件和脚本都能继续使用。README 列出的功能除反汇编外,还包括取证分析、二进制对比和二进制修补;iaito 是该项目被分叉为 Cutter 之前的原名。
用于在 IDA 伪代码窗口中浏览和重建 C++ 代码的 Hex-Rays 反编译器插件。它能根据选中的指针变量重建 C++ 对象类型并存入 IDA 本地类型,识别虚函数表并为其生成结构体,在对象类型确定后可直接点击跳转到虚函数调用,以图形方式展示函数的 ctree,从伪代码行跳转到对应的反汇编,并把 ctree 和类型导出到文件。其 Object Explorer 可列出虚表及其交叉引用并解析 RTTI,批处理模式可在无人干预的情况下处理大量文件。
用 GDB Python API 编写的独立 .gdbinit 文件,被调试程序每次停下时显示模块化的状态界面,减少查看程序状态所需的命令。它不重定义任何 GDB 命令,所有功能都集中在 dashboard 命令之下。
面向逆向工程的跨平台十六进制编辑器,可处理超过 1 TB 的文件。它提供内联反汇编、整数与浮点数解码、字节范围标注、并排比较、虚拟地址映射和位图可视化,还支持自动标注数据的 Binary Templates 和 Lua 脚本。
轻量的模块化钩子框架,支持 Windows、macOS、iOS、Android 和 Linux,覆盖 x86、x86-64、ARM 和 ARM64 架构。
用于从 xls、xlsm 和 xlsb 文件中提取并解码混淆 Excel 4.0(XLM)宏的命令行工具和 Python 库。内置的 XLM 模拟器解释宏,但不完整执行其代码,结果可导出为 JSON。
基于 pefile 和 PyQt5、以树状视图展示 PE 文件的 Python 模块,既可作为独立应用,也可作为 IDA Pro、Ghidra、Volatility、Rekall 和 minidump 的插件使用。它能从文件、ZIP 压缩包、Windows 内存转储和分析数据库中读取 PE 映像。
开源 Windows 工具,用于查看并反编译 Microsoft 系统上存在的 RPC 功能。若要支持新的 rpcrt4.dll 运行时版本,可扩充其版本表,或逆向该运行时的内部结构。
用于二进制符号分析的 Python 软件包。它包含便于添加新架构的指令解码框架、描述指令语义的符号代数模块、抽象内存与执行模型,以及从线性扫描、递归遍历到基于求解器的路径谓词探索等反汇编技术。
用于调试 iOS 应用的 LLDB 命令集。这些命令可打印视图和视图控制器层级,按类名正则查找视图,无需继续运行进程即可显示或隐藏视图,可遮罩视图或为其加边框,还能为类方法设置符号断点、为实例变量设置观察点,并支持自定义命令。
GNU 调试器 gdb 的浏览器前端。
把以太坊虚拟机字节码反编译为可读的 Solidity 语法合约的工具,支持 Linux 和 macOS。
面向自动化的反汇编与静态分析库,处理 shellcode 和 PE 二进制文件,并以 JSON 输出反汇编、函数和导入表。它提供枚举所有路径的轻量模拟模式和较慢的完整模拟模式,以及模拟的 TEB、PEB 结构和 FLIRT 风格签名。
可视化逆向工具,用于快速了解文件中存在的数据类型。它不依赖任何特定文件格式,因此在文件头缺失或损坏、格式未知时也能使用。
逆向工程软件接口,核心是 ELFsh 和 e2dbg:前者是可交互、可脚本化的 ELF 对象读取与修改 shell,后者是嵌入式 ELF 调试器。ELFsh 可分析节,编辑文件头、符号表和重定位表,通过 libasm 反汇编,绘制控制流图,并向 ELF 文件注入代码。
终端工具,以类似十六进制转储的方式可视化二进制数据,但把每个字节画成调色板中的彩色方块。
Universal Extractor 的非官方扩展延续版本,可从标准压缩包、应用安装程序、磁盘映像和游戏归档中解包文件。第 2 版增加了批处理模式、只检测文件类型的扫描模式、密码列表和静默模式。
面向 arm64 XNU 设备的函数钩子工具包:包括直接修补内存页的 C 函数钩子、Objective-C 函数钩子、arm64 汇编器、Swift JIT 内联汇编,以及 Substrate 和 libhooker API 的重新实现。README 列出 Dopamine、palera1n 和 meowbrek2 越狱工具为其使用者。
Sysinternals ProcDump 工具在 Linux 和 macOS 上的重新实现,可按性能、运行时、信号和资源跟踪触发条件写出进程转储,包括通过 Rust ELF 写入器生成的原生转储,以及通过 .NET 诊断 IPC 生成的托管转储。
小型库,可动态重新绑定运行在 iOS(真机和模拟器)上的 Mach-O 二进制文件中的符号,方法是更新 dyld 使用的惰性和非惰性符号指针。
基于 pcodedmp 的 VBA p-code 反编译器,用于处理宏源代码已被抹除、只留下字节码的 Office 文档。它接受文档或先前保存的 pcodedmp 转储,也可作为 Python 模块使用。
rust-deobf 分析以 Rust 为主的 ELF、PE 和 Mach-O 二进制文件,恢复隐藏字符串及相关信息。工具结合静态调用点分析与 Unicorn 函数仿真,还可识别 Rust 元数据和库函数、处理打包样本并为 Ghidra 添加注释。核心功能提供命令行和 MCP 接口;更深入的控制流及虚拟化模块另有许可。
CFG Visualizer 借助 radare2 从 ELF、PE 和 Mach-O 文件提取函数控制流图,在浏览器中交互式显示三维节点、分支边及反汇编。FastAPI 后端负责分析并输出图结构 JSON。
Cpp2CS 从 Android ARM64 Unity IL2CPP ELF 二进制文件和匹配元数据中恢复托管方法,输出 CIL 程序集、C# 源码及逐方法诊断。其流程建模机器 IR、运行时惯用法、内存 SSA 和类型,并标记未恢复部分。
ghidra-c6000 为 Ghidra 12.x 增加德州仪器 C64x、C67x 和 C674x DSP 支持。其 SLEIGH 语言解码完整及紧凑指令,提供反编译所需的 p-code,并为 ELF 或原始镜像加入 C6000 调用约定和指令包分析器。
cocos2d-dumper 使用 GNU binutils 从 ELF 共享库提取已定义的函数符号,并对 C++ 名称进行反修饰。它生成 ELF 符号表值与名称的对应表,可用于检查未剥离符号的 cocos2d-x 二进制文件及其他原生库。
Binary Ninja Security Analysis Plugin 是用 Rust 编写的批量二进制分析插件,输出 Parquet 报告。报告包含架构、哈希、函数、字符串、段、圈复杂度、熵,以及指向指定进程执行函数的交叉引用。
Human-Readable Decompilation 使用 ANTLR 解析 Ghidra 从二进制文件反编译得到的 C 代码,并进行 AST 转换。功能包括从条件链恢复 switch、引入卫语句、压平嵌套分支及简化部分表达式;图形界面可先启动 Ghidra 无头分析,命令行也能处理已有 C 文件。
BinStruct Inspector 是通过自定义字段树检查二进制文件布局的图形工具。编辑结构时可实时解析文件,并同步显示字段值、十六进制和 JSON 视图;差异监控记录字节级增删替换,插件可扩展数据类型。
SimpleParserPE 是检查 PE32 Windows 可执行文件的 C++ 命令行工具。它读取 DOS、NT 文件头、节信息、数据目录和 DLL 导入函数,并通过节表换算 RVA;实现不依赖 Windows 头文件或外部库。
tenet_tracer 使用 Intel Pin 采集指令级执行轨迹,供 Tenet 查看。它记录程序计数器、寄存器变化和内存访问,将轨迹存入 SQLite 表,并提供导出文本的脚本。
BinScan 批量扫描文件,为每个文件输出含格式识别、结构信息、哈希和熵值的 JSON。其 C++ 库包含 PE、ELF、Mach-O 可执行文件及压缩包、安装包、文档和图像的解析器,按读取、分析、写入三个阶段处理。
Patch-0xC0000022 修改运行中的 Windows SysMain 服务,使 NtCreateFile 返回 STATUS_ACCESS_DENIED。该 C++ 程序定位服务进程和远程函数地址,再应用六字节补丁,以研究预取行为的变化。
iMonitor 是用于观察 Windows 运行中软件的系统行为工具,可记录进程、文件、注册表和网络事件,分析 DLL 加载,并通过插件和脚本扩展列及匹配规则。
m68kdasm 用 Go 反汇编 Motorola 68000 系列机器码,同时输出汇编文本和结构化指令信息。它支持选择 CPU 型号、按需解码 FPU 与 PMMU 指令、符号和标签格式化、流式输入,以及 68000 ELF 文件辅助功能。
IR Lifting Benchmark 比较 Ghidra P-code、angr VEX、BAP BIL 及可选 LLVM IR 的二进制提升流程。Shell 与 Python 脚本分析样本、收集性能和控制流指标、检查提升后的语义,并生成报告与图表。
Bin-Hunter 是用于二进制文件初步静态检查的 Python 命令行工具。它通过魔数字节识别格式,计算整体及高熵区域的 Shannon 熵,提取可读字符串,并查找其中的 URL、IP 地址、邮箱和可疑关键词。
BinaryInsight 以交互式终端界面或文本报告检查 ELF、PE、Mach-O 可执行文件和库。其 Rust 核心使用 goblin 解析文件结构,展示节、符号、可打印字符串,以及 PIE、NX、RELRO、ASLR 和 DEP 等安全缓解标志。
rust-sig-gen 为可执行文件分析生成 Rust crate 的 IDA FLAIR 库签名。其 Python 脚本获取排名前 100 的 crate,编译 Linux 与 x86-64 Windows 版本,再使用 sigmake、pelf 和 pcf 处理编译产物。
1C 7.7 Configuration Parser 检查 1C:Enterprise 7.7 的 1cv7.md 配置容器。其 Win32 界面展示 OLE 流,解压 ZLib 数据、去除文档所述的 XOR 加密层,并将 Main MetaData Stream 解析为对象层级。
x64dbg-tenet 是将执行步骤录制为 Tenet 轨迹格式的原生 x64dbg 插件。命令可启动和停止记录,也可追踪指定步数,或在执行离开当前模块时停止。
NullSec BinGaze 通过解析 ELF 头、列出节区和计算熵来分析可执行文件。命令行提供完整分析、节区列表和安全属性检查,可报告 NX 栈、PIE、RELRO、栈保护及 RWX 段。
pdbinspector 分析 Microsoft PDB 文件,列出结构体、类、枚举、函数、公共符号和导出项。它可还原 MSVC C++ 符号名、解码 MSVC 字符串字面量,并通过命令行输出文本、JSON 或制表符分隔报告;另有 WebAssembly 在线版本。
8086 Register Command Debugger 是以 8086 汇编编写的 MS-DOS 机器码分析工具。它把程序装入 64 KB 段,反汇编 8086 指令,供用户查看和修改内存、寄存器,并借助 Trap Flag 逐条执行真实 CPU 指令。
advantage 用于检查 Lenovo Vantage 及其插件的 RPC 命令。它把存根注入 Lenovo 签名进程,从本地服务器提供 RPC JSON 请求,并通过命令行或网页界面返回响应;仓库还包含导出契约和请求的 Frida 脚本。
Valkyrie 通过静态检查和 Docker 执行环境分析可疑二进制文件。文档所述流程检查 PE 头、熵和加壳,并采集系统调用、文件活动及 PCAP 流量,生成分析和威胁情报报告。
PE Disassembler 是一款 WPF 程序,从 32 位 Windows PE 可执行文件的 .text 节提取并显示 x86 指令。它检查 MZ 和 PE 签名,解码有限的传送、算术与控制流指令,并可保存文本清单。
SIC/XE Disassembler and Linking Loader 将 SIC/XE 目标代码转换为汇编清单与重建的符号表。第一遍识别指令边界和寻址方式,第二遍输出汇编;另有链接装载器解析外部符号并处理重定位记录。
Malware Deobfuscator 分析经过混淆的恶意脚本,输出代码、行为和指标报告。确定性流程用正则表达式提取 IOC、以关键词签名映射 MITRE ATT&CK;OpenAI 或 Ollama 模型补充去混淆代码与执行流程解释。命令行支持单文件和目录,并可输出 JSON。
flashkit 是分析 Adobe Flash SWF 与 AVM2 字节码的 Python 工具包,可解析及重建 SWF 和 ABC 结构、反汇编指令、建立调用与引用索引,并通过控制流分析将类或方法反编译为 ActionScript 3。
Kaiju 是带无界面命令行工具的 Rust 逆向框架。现有模块解析部分 ELF、PE、Mach-O 元数据,提取字符串,解码有限的 x86-64 指令集,并检查保存的网络证据。
sqlce 根据对反编译 SQL CE 组件的分析,以跨平台 C++ 解析器读取 SQL Server Compact .sdf 数据库文件。Python 与 WebAssembly 绑定可读取表名、结构和记录,也支持使用提供的密码读取加密文件。
inkterop 通过有文档说明的中间表示转换笔记应用和电子墨水设备的原生手写文件。它读取笔画及文件中保存的压力、倾斜数据,实现 GoodNotes、Notability 等格式的读取器,并发布格式调查记录和转换保真模式。
wMatcher 比较两个版本的 Java 归档文件,匹配版本间重命名或混淆的类。桌面界面可加载新旧 JAR 和所需依赖,供分析者修正不确定的匹配,并将结果保存为 .wmatch 工程。
tasm-rs 用 Rust 实现 TVM 字节码的汇编与反汇编,提供 tdisasm 命令行程序、指令表、Fift 解析及轨迹和覆盖率报告。项目用仓库内的对照样例与上游 TypeScript 实现比较;作者报告 959 个样例匹配。
Sogen Dart bindings 通过 Dart FFI 包和原生桥接层提供 Windows 与 Linux 可执行文件仿真。接口涵盖执行、快照、内存和寄存器、进程视图、回调及底层钩子,也支持拦截 Windows API 调用和 Linux 符号。示例展示了对仿真程序中 Sleep 调用的钩取。
cupertino-files 是读写现代 Apple Pages、Numbers 和 Keynote 文档的 TypeScript 库。它通过实际文档研究未公开的文件结构,提供编辑 API、命令行工具、格式说明及跨语言一致性测试集。
PackerScope 检查 Windows PE 可执行文件的熵、节区、导入表、入口指令和加壳签名。对受支持的文件可执行脱壳,并检查 PE 结构、熵及导入表恢复情况,随后生成报告。
imprint 不执行映像,直接解析 Windows PE 文件的导入、延迟导入和导出目录。它把导入的 Windows API 映射到行为类别与 MITRE ATT&CK 技术,再以文本或 JSON 输出能力模式及触发依据。
kdemulator 在真实内核之外执行 Windows x86-64 内核驱动二进制文件,以分析 IOCTL。它将 PE 节映射到 Unicorn,截获导入的 NT API 调用,并提供最小化的内核对象与内存模拟;命令行可运行 DriverEntry、发送单次 IOCTL 或循环变异输入。
基于 angr 平台的跨平台图形化二进制分析工具,提供反汇编和反编译视图。
QIRA 是用于查看程序执行轨迹的工具。用户可以通过界面浏览指令变化、寄存器值、内存读写和执行分支。
Dependencies 是一款提供命令行和图形界面的 Windows PE 依赖分析工具。它可显示导入、导出及 DLL 加载依赖,帮助排查加载问题。
Hachoir 是一个 Python 库,可将二进制流按字段组织成树状结构,查看和编辑细至单个位的内容。其命令行工具可在二进制文件中搜索文本、提取或删除元数据,并以文本模式显示文件内容。
Pigaios 是一款在 IDA 中将 C 源代码与二进制文件进行匹配的工具。它从源码提取函数特征,在 IDA 数据库中查找对应函数,并导入符号、结构体和枚举。它也能处理无法完整编译的部分源码。
MachOExplorer 是用于检查 Mach-O 二进制文件、Universal 二进制文件、静态归档和 dyld 共享缓存的桌面及命令行工具。它可展示文件结构、符号、反汇编结果和 Apple 平台特有的元数据,并以文本或 JSON 导出分析结果。
FLEX 是用于探索和调试运行中 iOS 应用的应用内工具。它可以检查和修改视图及对象状态、浏览应用文件和数据库,并查看网络请求记录。
classdump-dyld 是一款命令行工具,可从 Mach-O 应用程序二进制文件、库、框架、捆绑包及 dyld 共享缓存中的映像生成 Objective-C 头文件。它支持提取单个类,也能递归处理兼容文件。
Process Dump 是一款 Windows 命令行工具,可将运行中进程的代码保存到磁盘,供恶意软件分析使用。它能查找隐藏模块和独立的可执行代码,重建 PE 文件头与导入表,并通过已知文件的哈希数据库跳过常见模块。
mal_unpack 是基于 PE-sieve 的 Windows 动态脱壳工具。它运行经过加壳的恶意软件,等待载荷解包后将其转储,并终止原始进程。
Bloaty 是一款二进制文件体积分析工具,可按符号、编译单元和节等来源统计文件大小与内存占用。它还能比较二进制文件的体积变化,支持 ELF 和 Mach-O,并以实验性方式支持 PE/COFF 和 WebAssembly。
bingrep 是用于查看二进制文件并以颜色区分其内容的命令行工具。它可显示 ELF、Mach、Unix 和 BSD 归档文件及 PE 文件的信息,并提供实验性的十六进制数据和文件偏移范围视图。
libPeConv 是用于加载和处理 PE 文件的 Windows 库。它支持节区重映射、重定位、导入项加载、资源解析,以及从内存转储中重建导入地址表。
Viper 是一个二进制分析框架,也用于整理恶意软件样本、漏洞利用样本和研究脚本。Viper 1.x 仓库已归档,开发已停止。
Cuckoo3 是一款恶意软件分析工具,可在沙箱化的平台模拟器中检查可疑文件和链接。它会生成报告,记录文件或网站在检查过程中的行为。
Cuckoo Sandbox 是自动化恶意软件分析系统,可在隔离环境中执行可疑文件并报告其行为。
fq 是用于查看和解码二进制格式的命令行工具及查询语言。它提供结构化十六进制视图、位级解码、嵌套格式解析和交互式查询界面。
在非 Windows 系统上解包 Inno Setup 安装程序,无需运行它们。它也支持修改版安装包,包括 GOG.com 基于 Inno Setup 的游戏安装包。
Metasm 是一套用于汇编、反汇编、调试和修改可执行二进制文件的 Ruby 工具。它支持 PE、ELF、Mach-O 和 shellcode 等格式。
149 项带“固件”标签 · 查看全部 149 项 →
案例
19 个案例
从 Intel Windows 驱动包中恢复选定的相机调校结构,用于修复一个 ThinkPad 型号在 Linux 下的图像采集。公开的 CPFF/AIQB 解析器、内核补丁及 libcamera 修改,配有作者报告的 Claude 辅助调查和有限范围的前后测量。
设备所有者记录了 RK3229 电视盒的硬件识别、原厂 Android ROM 调查、用户态手柄驱动及 Armbian 改造;REA 用于 ADB 清点和 Android 分析引擎引导,APK 分析与设备修改属于混合工作流,并非固件重建。
XM530V200 摄像头所有者授权案例以 REA/Ghidra 调查原生 Sofia 命令处理器,再添加本地控制及 Home Assistant 集成,保留原厂驱动和录像;源码扩展明确区分静态、模拟协议及实机证据。
一款 Flipper Zero 应用,以位操作驱动 Telink 的 SWire 调试接口,用于转储并重刷 TLSR825x Zigbee 设备;仓库还附有对转储固件的静态分析笔记,以及为其中两款设备全新编写的固件。针对 Tuya TS0044/TS0046 场景遥控器,笔记将原厂约 500 ms 的单击延迟追溯到双击判定窗口;替换固件取消该窗口,同时向 Zigbee2MQTT 呈现原厂型号标识。最新 Zigbee 版本的配对、动作及电量上报被标注为尚未验证。
为 Supermodel 街机模拟器加入对 Real3D Pro-1000 的模拟。Pro-1000 是通过 SCSI 连接主机的图像生成器,世嘉 Model 3 的图形硬件即由其衍生。该实现可启动使用者自备的、来自 SDK 光盘的 Pro-1000 固件,模拟板上的中断、JTAG 与 UART 硬件,并在控制台中提供固件内置的监控程序。目前尚无任何画面输出,与 SCSI 主机的通信也尚未实现。
用 C 语言重新实现 Wii U 的 DMCU 固件。DMCU 是其 AMD 图形控制器中兼容 M68HC11 的显示微控制器,在 Wii 模式下读取视频接口(VI)状态,并配置显示输出、去隔行、缩放与过扫描。README 称这项工作基于对原固件的逆向工程,但并非逐字节一致的反编译,并说明项目仍在开发中。构建出的镜像经 evWii 插件载入后,在 Wii 模式下替代原厂固件。
模拟 Lexicon 224、224X 与 224XL 数字混响器,使其原厂固件能在浏览器页面或 JUCE 插件中运行。仓库分层包含 KiCad 原理图、门级与板级 Verilog 模型、以 8080 为主机的 C++ 模拟器及模拟输入/输出模型,并用使用者自备的 ROM 以较慢层级校验较快层级。这是仍在开发、文档尚未完成的硬件与固件模拟,并非恢复出的算法源码。
以可自托管的 C 服务器重新实现 Toniebox 所连接的 Boxine 云服务,使盒子能在本地获取音频、设置和无线下发内容,同时由用户控制哪些数据发往厂商。它可提供并缓存 tonie 音频,把其他音频转换为盒子使用的 TAF 格式,可将请求透传到原云端,并提供网页界面、MQTT 及 Home Assistant 集成。仓库中的 protobuf 定义描述了盒子的 freshness-check、RTNL 日志和 TAF 头部报文。
用运行在已 root 机器人上、与厂商固件并存的本地服务取代受支持扫地机器人的厂商云,并模拟固件所期待的云端接口,包括 miio 模拟云(dummycloud)以及对应 Midea MSmart 协议的实现。其 FAQ 说明,每支持一个新厂商,都需要在没有厂商文档的情况下逆向分析数据格式、认证和通信;Valetudo 将各家专有地图格式转换为统一的 ValetudoMap 格式,并保留 Dreame、Roborock、Viomi 地图文件的 Kaitai Struct 描述和一份 Midea protobuf 模式作为参考。它提供网页界面、带 Swagger UI 的 REST API 以及 MQTT/Home Assistant 集成,但明确不以与厂商应用功能对等为目标。
替换已解锁的第二代 Amazon Echo Dot(2016 年款,代号 biscuit)上的软件,使其通过 ESPHome API 成为本地 Home Assistant 语音终端:EchoMuse 自己的 Go 固件驱动麦克风、扬声器、LED 灯环和按键,局域网中的控制器负责唤醒词、设备管理和仪表盘。默认的 emOS 模式用项目自有的 init 和 busybox 取代 Amazon 的 Android 用户空间,同时保留取自机主自身启动镜像的 Dot 内核。工程日志记录了如何通过在设备上测量,并在原厂 FireOS 播放声音时对比混音器和 DAPM 状态,摸清编解码器通路、静音键等硬件行为。
OSIRIS 以自制引导程序、Linux 服务和 DSP 代码替换 Onkyo TX-NR515、TX-NR717 功放的 DSP 板软件。项目依据原厂固件和日志整理主 MCU 与 DSP 板之间的 SPI 通信,记录 1032 字节传输、帧格式及命令含义。
Virtual MPC Sample 使用定制实验内核和浏览器控制面板,在 QEMU 中运行 Akai MPC Sample 1.3.0.12 固件。仓库记录固件及设备架构,模拟面板 UART 通信,并可对用户自备固件进行 shell 检查、跟踪和改装测试。
OpenJooki 替换 Jooki 2 音乐音箱的嵌入式 Linux 核心,提供手机控制、更新与 SD 卡恢复。技术文档记录 Ingenic Linux 与 ESP32 的分工、存储分区、Mender 更新槽及恢复机制;仓库包含替代 Lua 服务和安装工具。
Stickwalker 将 Pokéwalker 的匹配固件重建成果移植到 M5Stack Stick S3。仓库提供固件源码、构建工具和占位图像;用户可从自有 ROM 提取原版图像参与构建,并通过 BPV10NF 光电二极管接收红外信号。
sony-bravia-linux 调查基于 Linux 的前 Android 时代 Sony BRAVIA 平台,并为用户自建服务还原部分媒体和门户行为。文档记录了 2011 至 2012 年 AZ1、AZ2、AZ3 系列电视的遥控输入、浏览器媒体处理和 3D 信号表现;仓库也提供处理 H.264 3D SEI 等媒体流程的工具。
VanMoof BLE 用 Python 实现 VanMoof S5、A5 和 S6 自行车的 BLE 协议客户端。它使用 Ed25519 证书认证,读写文档化的主题、解码抓取的消息,并按不同车型的消息格式提供控制与遥测功能。
open-picpak 记录 PicPak 4.2 英寸电子墨水相框的原厂固件行为、BLE GATT 协议及图像转换流程。作者报告从原厂 ESP-IDF 镜像和设备客户端提取字节级信息,并据此开发自定义 ESP-IDF 固件、主机工具和自托管后端。
Hisense AEH-W41H1 本地控制项目通过 ESP32 板替换空调原有的 Wi-Fi 模块,或在原装 RTL8710C 模块上刷入 ESPHome 固件。固件通过空调的 RS-485 总线通信,并向 Home Assistant 提供温控和诊断信息。协议文档记录了通过设备观察确定的帧结构、校验和、总线角色及命令与状态的交互行为。
nRF52 e-paper tag 重建采用 nRF52832 电路板和 SSD1675A 类面板的无文档电子价签控制方式。仓库记录引脚、9 位 SPI 连接、波形表结构及刷新行为,并提供替代 Zephyr 固件和可移植的 C99 显示驱动。
工具、项目与集成
70 项资源
Binwalk
工具识别固件中的嵌入格式并按需提取内容,辅以熵分析帮助初步分诊。
unblob
工具递归提取二进制数据中的归档与文件系统,同时报告数据块边界和未识别区域。
面向 PCI Option ROM、UEFI 固件卷、Intel Flash Descriptor 和 coreboot 镜像的 Ghidra 加载器与辅助脚本。
EMBA
工具提取固件,结合静态检查与仿真分析,整理软件组件清单,并生成 Web 报告和 SBOM,供进一步调查。
通过可扩展平台解包和分析固件,使用 Web 界面与 HTTP API 搜索组件内容和分析结果,并比较不同样本。
OFRAK
工具通过资源树图形界面与 Python API,递归识别、解包、分析、修改和重新打包固件及二进制格式,并可接入可选反汇编后端。
FirmAE
工具仿真路由器与 IP 摄像机固件,检查网络服务和运行时行为,提供自动仿真检查,以及独立的分析、运行和调试模式。
通过 sigrok 的图形前端检查逻辑与模拟波形;协议解码器及分层解码可展示总线消息和更高层的设备操作,便于利用硬件通信记录开展固件与互操作性分析。
将 UEFI 固件镜像解析为可检查的树状结构,并检查其结构;配套的 UEFIExtract 与 UEFIFind 可提取解析后的内容、查找模式,辅助分析固件组件与厂商格式。
借助基于 FPGA 的开源硬件和 Python 小程序(applet),读写 SPI 闪存、I2C EEPROM 及并行存储芯片,自动确定 JTAG 引脚,调试受支持的处理器,并分析实体设备上的 UART、SPI 和 QSPI 事务。
以提取出的根文件系统为输入,生成可编辑的仿真变换配置来重托管嵌入式 Linux 固件,再借助客户机 root shell、转发到主机的网络服务和记录下的动态分析输出,逐步完善配置。
面向 Apple 固件研究与逆向工程的命令行工具包。可下载并解包 IPSW、OTA 和 KDK 并比较不同构建;检查 Mach-O 的加载命令、符号、签名和权限,并反汇编 ARM64 代码;在 dyld 共享缓存中查找符号和交叉引用、提取 dylib、导出 Objective-C 头文件并查看 Swift 元数据;提取 KEXT 并比较 kernelcache;还能解析 IMG4、解密 AEA 归档,以及检查 iBoot 和协处理器固件。
由 EURECOM S3 小组开发的 Python 框架,可协调模拟器、调试器和物理设备,对嵌入式固件进行动态分析。分析脚本先声明目标(如修改版 QEMU、PANDA、Unicorn、gdbserver,或 OpenOCD、J-Link 调试探针),再定义内存布局(其中的内存区间可把访问从一个目标转发到另一个目标)和执行计划。执行过程以及寄存器、内存状态可在目标之间转移,从而让固件在模拟器中运行,同时把外设访问转发给真实设备。
用于自动化 UEFI 固件静态分析的 IDA Pro 插件与加载器。插件可标注 Boot、Runtime、SMM 和 PEI 服务调用,列出模块安装或使用的 EFI 协议与已知 GUID,在 Hex-Rays 反编译器中应用协议接口类型,标记疑似 SMM callout 及 GetVariable 越界写入模式供人工复核,并保存 JSON 报告。efiXloader 加载模块可在单个 IDA 数据库中打开整个固件镜像,提供各驱动入口点、驱动间导航和 DXE 驱动依赖关系图。
通过定位并解码内嵌的 kallsyms 符号表,从 Linux 内核镜像重建带函数与变量符号、可供分析的 ELF 文件;输入可以是原始或压缩的 vmlinux、vmlinuz、zImage、bzImage 数据块,部分 Android boot.img 文件,或已去除符号的内核 ELF。工具会检测压缩格式、指令集、字节序、位宽、入口点和近似基址,并生成可在 IDA Pro 或 Ghidra 中分析的 ELF;另附列出符号的 kallsyms-finder、独立解压工具和 GTK 图形界面。
基于逆向 Sony 数码相机而开发的 USB 工具。在受支持的机型上,它可读取相机信息,并借助 PlayMemories Camera Apps 机制安装 Android 应用;其固件更新模式和服务模式下的 shell 可转储固件、执行 Linux 命令并调整设置。仓库中的说明文档记录了 Sony 应用商店、浏览器插件与相机之间的应用安装交互过程。
对任意二进制文件(例如来历不明的固件镜像)中的 CPU 指令集进行统计识别:把字节的马尔可夫链统计与默认语料库比较,语料库涵盖数十种架构,从 6502、8051 到 ARM、MIPS、PowerPC、RISC-V、x86-64 和 WebAssembly。它先给出整个文件的匹配结果,再找出与单一架构匹配的最大数据块,并显示熵值,以便排除加密或压缩区域。可独立运行,也可作为 Python 函数或 binwalk 模块使用。
解析 Intel 管理引擎 (CS)ME、TXE 和 SPS 固件、图形系统控制器(GSC)固件,以及与之配套的独立 PMC、PCHC、PHY 和 Option ROM 镜像,报告系列、版本、发布类型、SKU、平台、大小和健康状态。研究用参数可显示 Flash 分区表、BPDT/IFWI 和 CSE 布局表,校验 RSA 签名与校验和,并解包所支持的 CSE、GSC 代码及文件系统。附带的数据库能识别已知镜像,并报告社区固件仓库尚未收录的镜像。
平台安全评估框架(源码带有 Intel Corporation 版权声明),可在 Windows、Linux 或 UEFI Shell 中分析 PC 硬件配置、BIOS/UEFI 系统固件及平台组件。chipsec_main 运行检查模块,报告预期的保护措施是否到位,例如 BIOS 与 SPI 闪存的写保护和锁定、SMM 与 SMRR 保护、内存映射锁定及安全启动变量,结果分为 PASSED、FAILED、WARNING 和信息类,并可输出 JSON、XML 和 Markdown。chipsec_util 通过命令行和 Python 访问底层接口和固件数据,包括将 SPI 闪存转储为镜像、把闪存镜像解析为固件卷、文件和 NVRAM 变量,以及列出 UEFI 变量和表。
Quarkslab 开发的命令行工具,通过对内容做简单统计来推断无文件头原始固件镜像的基本属性,因此 README 称其适用于所有架构。它根据指针宽度数值的高位字节在两种字节序下的聚集程度推测端序,并按候选加载地址(基址)下有多少数值会指向已索引的文本字符串和指针数组,对候选地址排序。给定基址后,它还能在汽车 ECU 固件中查找统一诊断服务(UDS)命令 ID 表,并输出推断出的结构体布局,供反汇编器使用。
Asahi Linux 面向 Apple Silicon Mac 的引导程序与硬件研究环境。它将 Apple 的启动链衔接到 Linux,加载附加在其后的设备树、initramfs 和内核;在代理模式下,Python 客户端可通过 USB 连接实时探查硬件,并在 m1n1 的虚拟机监控器中运行 macOS 或 Linux,同时追踪其硬件访问。
leveldown security 发布的 Ghidra 脚本,读取 CMSIS-SVD 文件(描述微控制器内存映射外设及其寄存器的 XML 格式),并将其应用到已载入 Ghidra 的固件上。它为外设地址范围创建内存块,为每个外设生成以寄存器为字段的结构体类型,并在各外设基址处添加标签,从而可按外设和寄存器名称阅读寄存器访问。它面向小端 Arm Cortex-M 设备,并附带一份移植到 Ghidra Jython 环境的 cmsis-svd 解析器分支。
Python 库及 uefi-firmware-parser 命令行工具,用于识别、解析和提取 PC 固件镜像:UEFI 固件卷、胶囊(capsule)、固件文件系统、文件与节(section),以及 Intel PCH Flash Descriptor、Intel ME 模块和 Dell PFS 更新包。AutoParser 可自动判断格式,暴力扫描模式则在未识别的数据块中查找固件卷及其他已知对象;结果可打印为对象层级或导出为文件,Tiano/EFI 与 LZMA 压缩的节由内置 C 扩展解压。附带的脚本可按 GUID 替换固件卷中的节或文件,根据解析出的固件卷生成 FDF 闪存描述文件,并输出供 IDA 脚本使用的 GUID 标签。
开源固件,可把 ESP32-S3 开发板变成受 Bus Pirate 启发的多协议硬件工具,通过 USB 串口终端、Wi-Fi 网页命令行,或直接用 M5 Cardputer 自带的键盘和屏幕操作。各模式可与 I2C、SPI、UART、1-Wire、CAN 等总线通信、嗅探并编写脚本,读取 EEPROM 和闪存芯片,还能扫描 JTAG 与 SWD 引脚。USB 适配器模式让 flashrom、OpenOCD、sigrok/PulseView 等主机工具把开发板当作 SPI 编程器、调试适配器或逻辑分析仪使用。
Attify 的固件安全研究工具包,第 2 版改写为以单个镜像项目为中心的 Rust 命令行工具。它可识别未知数据块和固件镜像、提取文件系统,梳理启动脚本、凭据字符串和密码学材料,借助基于 radare2 的反编译与源到汇的污点分析初筛 ELF 二进制,还能检查裸机 MCU 镜像、BMC 闪存、边缘 AI 模型文件和 Android APK。之后可对项目做运行前检查,并通过原生、FirmAE、Firmadyne 或 EMUX 后端进行 QEMU 仿真。
以逆向 Fujifilm 相机为目标的研究代码库,使自定义代码能够在打过补丁的固件下于相机上运行。其中包括 ARM 固件补丁,最主要的是为 PTP/USB 增加内存读、写和执行命令的调试器补丁;一个通过 USB 上传代码并转储内存的主机命令行工具;以及记录 Fujifilm RTOS API 的 C 头文件,附各机型的固件地址和函数桩。相机端代码在该 RTOS 之上提供 POSIX、图形和 I/O 封装,并包含解除录像时长限制的修改、按键重映射,以及名为 Frontier 的界面与模块系统。
Digital Security 开发的 Ghidra 分析器扩展,面向单个 UEFI 模块,在自动分析带 EFI 子系统的 x86 和 x64 PE 映像时默认启用。它依据自带的数据库标注已知 GUID,从自带的数据类型归档应用 UEFI 类型,把入口点的映像句柄和系统表参数传递到被调用的函数中,并标记通过 LocateProtocol 定位或通过 InstallProtocolInterface 安装的协议、协议通知回调,以及为软件、硬件和子中断注册的 SMI 处理函数。分析结果还以 JSON 形式保存在程序中,无界面模式脚本据此按处理函数类型把 SMM 模块分到不同的项目文件夹。
针对固件中文件系统镜像的规则检查工具:读取 ext2/3/4、FAT/VFAT、SquashFS 和 UBIFS 镜像、cpio 归档或目录,并以 JSON 报告列出所有违反 TOML 配置规则的文件。规则涵盖 SUID 与全局可写文件、允许的属主、SELinux 标签与 Linux capabilities、单个文件的元数据、内容正则、SHA-256 摘要、JSON 字段,以及外部脚本(例如附带的 checksec 包装脚本);还能提取版本字符串等数值,并把文件树或指定文件与上一次运行的结果比较。Cruise 将其定位为固件安全检查流程的一环,check.py 搭配 Android OTA 解包脚本可对固件包中的每个镜像逐一运行检查。
Binarly 推出的 Python 扫描器,用 FwHunt 规则检查 UEFI 固件模块;FwHunt 是针对已知 UEFI 固件漏洞的 YAML 检测规则格式,规则本身存放在独立的 fwhunt 仓库中。其基于 rizin 的分析器可报告 PE 或 TE 模块的 Boot、Runtime 与 PEI 服务调用、协议、PPI、GUID、NVRAM 变量和 SMI 处理程序,规则将这些信息与代码模式、字符串和十六进制串组合匹配。命令行工具可分析或扫描单个模块,也可从整个固件镜像中提取模块后逐一扫描,相同的类也能作为 Python 库调用。
通过被动总线抓包重建串行闪存内容的 Python 工具:它解析 Saleae Logic 的 SPI 或 I²C 分析器导出文件(这些数据记录了设备读写自身闪存芯片的过程),并把观察到的数据按原始内存地址写入二进制镜像。它可识别 Winbond、Macronix、Spansion、GigaDevice 等厂商的 100 多条 SPI 闪存命令,目前可解析其中 12 条,能报告 JEDEC ID 读取中出现的厂商和设备 ID,还可输出命令摘要、显示已捕获地址范围的可视化分布图,并绘制读写操作的时序图。
Google 发布的 Linux 命令行工具,可从基于 Intel 平台的工作站和笔记本电脑的 SPI 闪存中读出 BIOS/UEFI 固件镜像。它以 root 权限运行,通过 PCI 识别芯片组的 LPC 桥,借助 /dev/mem 映射芯片组的根复合体寄存器,并报告读到的闪存描述符分区以及 BIOS 写保护和读保护设置。随后它通过 SPI 控制器的硬件时序读取闪存,写入单个镜像文件;README 建议再用 UEFITool 等工具进一步处理。
EMBA 固件安全扫描器的 Web 企业级界面,会安装 EMBA 并将其作为扫描后端运行。用户可在浏览器中上传固件、配置并跟踪 EMBA 扫描,查看完整的 EMBA HTML 报告和每个固件的安全概览,并在汇总仪表板中比较结果;结果按用户控制访问,也可归档隐藏。当前 main 分支还加入了用于上传、查询扫描状态和获取 SBOM 的 REST API,以及通过 SSH 将扫描分派到 EMBA 工作节点的编排器。
Maddie Stone 编写的 IDAPython 脚本集,用于在 IDA Pro 中对嵌入式设备固件镜像进行初步梳理和标注,曾于 2017 年在 RECON Montreal 和 DerbyCon 上介绍。梳理类脚本依据各架构的函数序言和尾声模式定义代码与函数,把地址范围标记为字节、字或双字,并把未探索的字节转换为字符串;分析类脚本根据已知基址解析以偏移方式进行的内存访问,并添加交叉引用和数值注释;标注类脚本列出 CPU 端口(GPIO)的使用位置,把没有交叉引用的函数标为可能的死代码,并追踪某个操作数的使用位置。Android 文件夹另有一个为原生库中的 JNIEnv 函数调用添加注释的脚本,以及一个解密经 WeddingCake 反分析外壳打包的 ARM32 库中字符串的脚本。
LinuxBoot 项目用 Go 编写的 UEFI 固件镜像解析与修改工具及库。其 utk 命令可用表格或 JSON 展示镜像中的固件卷和文件,查找、转储、插入、删除或替换文件,并把镜像解包到可重新组装的目录中,还提供用于删除多余 DXE 驱动的 DXE 清理功能。其他命令涵盖闪存布局(fmap)、coreboot CBFS、Intel FIT 表、FSP 头部、微码和 LZMA 数据;其 Go 包还能解析 Intel ME 区域、Boot Guard 与 CBnT 清单以及 AMD 固件结构。
Quarkslab 的固件“测绘”工具,将已提取的固件文件系统编入数据库,再用 NumbatUI(Quarkslab 基于 Sourcetrail 代码浏览器的分支)浏览。fs 映射器借助 LIEF 映射 ELF 和 PE 文件、其导入与导出,以及指向这些文件的符号链接;fs-cg 用 IDA Pro 或 Ghidra 反汇编每个可执行文件,并把各二进制的调用图跨文件连接起来;decomp 则为单个可执行文件的反编译函数建立索引并附调用交叉引用。JSON 导出可用 Python 进一步处理,例如比较两个固件版本的差异。
面向 Polyend Tracker 音乐设备的 Python 逆向工程框架:为厂商原版固件打补丁,用自己的命令处理程序替换一个未使用的 USB RAWHID 处理程序。刷入打过补丁的固件后,主机命令行工具即可按 ARM 或 Thumb 模式读取、十六进制转储和反汇编设备内存,还能写入内存、在指定地址执行代码,汇编并运行称为“Polyp”的位置无关模块(如在打击垫上显示滚动文字和屏幕淡入淡出),以及通过 USB 向 SD 卡复制文件。其 fwtool.py 还可解包和重新打包 Intel HEX 格式的 .ptf 固件镜像,便于载入反汇编器。
Quarkslab 发布的 Google Pixel 手机 Titan M 安全芯片研究工具:包括用于 Titan M(Citadel)固件文件的 Ghidra 加载器;可在 Android 上跟踪并发送芯片基于 protobuf 的命令的 nosclient,内含基于 libprotobuf-mutator 的黑盒模糊测试器;sigrok SPI 抓包解析器;以及把固件镜像转换为芯片 SPI rescue 功能所用 rec 文件的脚本。仓库还收录 Black Hat Europe 2021 白皮书与幻灯片、ROOTS'21 论文和 Black Hat USA 2022 幻灯片,介绍固件逆向、嗅探芯片与应用处理器之间的 SPI 通信,以及黑盒与基于仿真的模糊测试;作者称所发现的漏洞均已向 Google 披露。
用于 UEFI 固件逆向工程的 Python 命令行工具及 IDA Pro 插件。uefi_retool.py 用 uefi-firmware-parser 解包固件镜像,收集其中的可执行模块,并以批处理模式逐一交给 IDA 分析,把各模块的引导服务调用和协议 GUID 写入 JSON;另一条命令则把 GUID 不在其 EDK2、AMI 及厂商 GUID 表中的协议列为专有协议。在 IDA 中,插件会应用 EFI 系统表的类型和名称,在浏览窗口中列出协议,并根据该 JSON 展示固件各模块之间的依赖浏览器和依赖图。
用于 IDA Pro 的加载器和后处理脚本,处理带 TOC 头的三星 Exynos“Shannon”基带调制解调器镜像,也支持崩溃转储。加载器把 TOC 条目映射为对齐的段并设置入口点;自动分析完成后,后处理程序会恢复调试跟踪结构,依据字符串和调试日志调用为函数命名,重建 MPU 表和内存映射,为 MMU 相关的协处理器指令添加注释,执行 ARM 分散加载及其解压,并标注平台抽象层与任务初始化函数。README 还附有作者对 ShannonOS、PAL 以及从 Cortex-R 转向 Cortex-A 内核的说明。
基于 Qt 的桌面编程器,通过低成本的 CH341A、CH347T 和 FT232H USB 编程器读取、写入、擦除和校验 I2C、SPI 与 MicroWire EEPROM、FeRAM、DataFlash 以及 SPI NOR/NAND 闪存芯片。它根据 JEDEC ID 在可编辑的芯片数据库中识别 SPI 闪存,显示 SFDP、状态寄存器和安全寄存器,可扫描 NAND 坏块,并把芯片镜像放在十六进制编辑缓冲区中,支持按区段保存或载入以及导入导出 Intel HEX。配套程序用于编辑芯片数据库,并从作者的网站更新数据库。
一个多线程 Rust 命令行工具,以暴力搜索推算平面 32 位固件镜像的加载基址,是 mncoppola 的 basefind.py 和 rsaxvc 的 basefind.cpp 的重新实现。它记录 ASCII 字符串的偏移,把每个 32 位字都当作可能的指针,再按候选基址能让多少字符串成为指针目标来排序。README 称这只是一个简单的启发式方法,对部分 ARM(非 Thumb)二进制效果相当好,但不会创造奇迹。
在浏览器中运行的 AMI Aptio V UEFI 固件设置菜单编辑器,作为 AMIBCP 的替代工具。它根据使用者从自己的 BIOS 镜像中取得的四个区段重建设置表单及其引用关系,并显示每个设置项的 VarStore、偏移、大小、选项、故障安全和最优默认值、访问级别以及 Suppress If 条件。对顶层菜单目标、隐藏条件、访问级别和默认值的修改会写回区段文件并附带变更日志,会话可另存为带哈希校验的 JSON;另附的 IFR-Formatter.js 脚本可将 IFRExtractor-RS 的输出整理为按设置项列出 VarStore 与偏移的清单。
为原始微控制器固件镜像套用芯片内存布局的 IDA 插件:分析者选定 MCU 型号后,它会创建 RAM 等内存段,添加带有寄存器命名的外设段,并在描述文件包含中断向量表时标注各表项,把它们指向的处理程序创建为函数。README 称其类似 IDA 内置的 SVD 加载器,但采用更简单的 JSON 描述格式,可依据公开的数据手册手工编写。所审阅提交附带 813 个描述文件,涵盖 Microchip/Atmel、ST、NXP、TI、Silicon Labs 等厂商的 MCU。
面向已解包 IoT 固件的静态分析流水线:对单个 ELF 或解包后的根文件系统,它用 Capstone 反汇编 x86、ARM/Thumb-2、AArch64 和 MIPS 二进制,恢复函数、调用图和漏洞缓解措施,并从危险函数调用、调用图污点路径、借助 cve-bin-tool 的 CVE 关联、内嵌密钥、脚本注入模式和文件系统加固检查中报告候选问题。报告以 JSON、Markdown 和 CycloneDX SBOM 输出。可选组件包括 Ghidra 无界面伪代码、基于 moria 的原始镜像解包,以及一个 Go 服务,提供任务队列、REST API、中英双语网页界面,并可由大模型智能体对已完成的扫描结果进行分诊。
一个 Python 脚本,无需暴力枚举每个候选基址即可估算平面 32 位小端固件镜像的加载地址,在 mncoppola 的 basefind.py 和 rbasefind 的基础上改进而来。它在排序后指针值的相邻差值中,查找与一段相邻字符串偏移差值完全相同的连续序列,把每处匹配视为候选基址,再按抽样字符串在重定位后的地址同样作为指针出现的比例为其打分。README 中的示例约用 26 秒找出了一个镜像的正确基址。
Joe Grand 开发的开源硬件工具及其 Parallax Propeller 固件,用于在陌生电路板的测试点、过孔、元件焊盘或连接器中找出片上调试接口。它通过串口终端操作,用 24 路电平转换通道逐一尝试引脚排列:以 IDCODE 或 BYPASS 扫描识别 JTAG 引脚,以 IDCODE 识别 SWD 引脚,并识别 UART 引脚及其波特率。已知 JTAG 引脚后,固件还能读取器件 ID、探测指令寄存器和数据寄存器,并用 EXTEST 把芯片引脚对应到边界扫描寄存器中的位置;其他模式可透传 UART 数据、充当兼容 SUMP 的逻辑分析仪,或模拟 Bus Pirate,让 OpenOCD 把它当作 JTAG 适配器使用。
用 Python 编写的厂商 BIOS/UEFI 更新格式解析与提取工具集,共 16 个工具,涵盖 AMI BIOS Guard(PFAT)与 UCP、Dell PFS、Insyde iFlash/iFdPacker、Phoenix TDK Packer、Award、富士通、松下、Portwell、东芝和 VAIO 的更新包,以及多种 Apple EFI 容器。每个工具先判断输入是否属于其格式,再将固件组件(如 SPI/BIOS/UEFI、EC、ME 镜像)及随附的实用程序解包到输出目录,并可选输出结构信息;Apple EFI 识别工具则依据 IBIOSI 标签为镜像命名。main.py 脚本会对给定文件依次尝试所有工具,biosutilities 软件包也向 Python 程序提供同样的类。
一个 Python 脚本,通过比较字符串地址与每个可能指针的目标地址来估算固件镜像的基址,支持任意指针长度和两种字节序。它不逐个尝试基址,而是在几个两两互素的模数下用 FFT 计算互相关来衡量重叠程度,再用中国剩余定理还原基址,因此也能处理 64 位地址空间。作者有意保持代码简短,方便分析者换用自己的启发式方法,例如把绝对调用的目标与返回指令之后的位置对应起来。
用于逆向分析 iOS 与 macOS 上 Apple kernelcache 和内核扩展的 Ghidra 脚本框架。它以 Siguza 的 iometa 提取的 C++ 类信息为起点,为内核恢复符号,重建 IOKit 类层次、结构体、命名空间和带类型方法定义的虚表,并通过 arm64e 指针认证常量或基于 p-code 的数据流分析解析虚函数调用引用。其他脚本可修复 externalMethod 和 getTargetAndMethodForIndex 分派表、根据头文件应用 XNU 函数签名、传播类型、加载 KDK 的 DWARF 符号,以及在项目之间复制结构体定义。
Tenable 发布的 Python 命令行工具,其仓库简介称之为辅助逆向 ESP32 固件的工具包:它读取 ESP32 闪存转储中的分区表,并将 factory、ota_0 等应用分区重建为 Xtensa ELF 文件。其他操作可列出分区、导出某个分区的原始字节,并将 NVS 分区的键值条目解析为文本或 JSON;create_elf 借助 esptool 载入应用镜像,把其中的闪存、DRAM 和 IRAM 段映射为 ELF 节区,并加入仓库自带 ROM 符号表中的符号。
以 FTDI FT2232H 为核心的开源硬件板卡,通过工作电压为 1.8–5.5 V 的电平转换器,把计算机连接到目标设备的 UART、SPI、I2C、JTAG 和 SWD 接口。芯片的两个端口中,一个专用于 UART,另一个由其余接口共用;拨动开关用于选择参考电压以及 SPI/JTAG 或 I2C/SWD 接线方式,逻辑分析仪排针则可让外接分析仪观察通信。Tigard 本身不带软件,而是按现有 x232H 工具的支持方式设计;README 给出了读取 SPI 闪存、用 OpenOCD 或 Black Magic Debug 进行 JTAG 调试、用 OpenOCD 进行 SWD 调试、边界扫描,以及为 iCE40 或 AVR 编程的设置方法。
读取 UBI 和 UBIFS 镜像的 Python 模块与命令行脚本,通过定位文件中首个 UBI 或 UBIFS 数据来处理镜像,也适用于原始 NAND 转储。它们可提取文件或完整的 UBI、UBIFS 镜像,列出并复制单个文件,显示 UBI 头部、卷表以及 UBIFS 的超级节点和主节点,并能在提取失败时按条件搜索物理擦除块进行调试。ubireader_utils_info 还能推算出 mtd-utils 参数,生成按相同规格重建镜像所需的 shell 脚本和配置文件。
用 Go 编写的命令行工具和库,可从 Android A/B OTA 载荷中提取分区镜像,既可读取原始 payload.bin,也可直接就地读取包含它的 OTA zip 包。它并行解压各项操作,可列出分区或只导出选定分区,并用 SHA-256 校验操作数据、源镜像和最终镜像,任何不一致都会以非零退出码结束。增量(差分)载荷会应用在先前提取的基础镜像之上,并重新生成差分载荷省略的 dm-verity 哈希树和 FEC 校验数据,因此 README 称输出可做到逐位一致。
离线运行的 C++ 扫描器,用于分析固件和物联网软件的内容,可指向单个文件或已解包的根文件系统,报告其中嵌入的机密信息、软件物料清单(SBOM)、已知 CVE、开源许可证、启动安全配置,以及强度不足或私钥已公开的密钥,每项发现都附带证据和置信度。其 SBOM 还能在已剥离符号的镜像中,从 ELF 版本标识、libc 文件名和内核标识中识别组件,并输出为 CycloneDX 和 SPDX;CVE 检查则将 SBOM 与本地的 OSV 和 NVD 镜像比对,并标注 CISA KEV 与 EPSS 信息。它本身不解包镜像,识别和提取由作者的配套工具 moria 完成。
tihmstar 开发的命令行工具和 C++ 库,用于处理 Apple 的 IMG4 固件容器格式。它可以打印 IMG4 文件、IM4P 载荷容器和 IM4M 签名清单的 ASN.1 内容,包括载荷类型、描述和密钥包(KBAG);也可从 IMG4 或 SHSH 文件中提取 IM4P 或 IM4M、从 IM4P 中提取载荷,自动解压 LZSS 或 BVX2(LZFSE)压缩数据,并在提供 IV 和密钥时解密。此外,它能根据 BuildManifest 校验 IM4M 票据或已签名的 IMG4,把 IM4M 转换为 SHSH,并为恢复工具构建或重命名容器。
从 Android OTA 更新包内的 payload.bin 中提取 boot.img、system.img 等分区镜像的 Python 脚本。完整 OTA 可直接提取;增量 OTA 则需加 --diff,并由使用者提供从完整 OTA 中取得或从设备上转储的原始镜像,脚本会在其基础上应用更新。它也可以通过 Docker 镜像运行。
PMCA-RE RELOADED 是面向 Sony 相机的 Rust 桌面与命令行工具,实验性功能可分析菜单设置在相机设置存储区中的位置。它还可离线解析固件文件、备份镜像和使用日志,并通过 USB 读取相机信息、管理应用、固件和设置;可用功能随相机代际而异。
ThisFirmwareDoesNotExist 分析 Arturia MicroFreak 5.0.0.2084 固件,并用 freakpatch 修改用户自备的官方更新文件。文档记录更新格式与固件子系统,Ghidra 脚本和汇编源码对应具体补丁位置。
intel_ma 检查 ME/TXE/CSME 区域镜像和完整 SPI 转储中的 PC 管理固件。其 Rust 库与命令行工具解析分区表、AMD PSP 目录、UEFI 固件卷和 FIT 记录,并报告 Boot Guard、BIOS Guard 及描述符锁定信息。它还可从输出镜像中移除部分 Intel ME 组件并设置禁用标志。
qemu-rtd2841 为 QEMU 添加 Realtek RTD2841/RTK284x 电视硬件模型,用于裸机诊断和本地固件实验。其板级配置涵盖 AArch32 Cortex-A53、GICv2、定时器、SDHCI、以太网、UART 和帧缓冲,并附汇编诊断程序及分层测试脚本。
MS4X 分析 BMW M52TU、M54 发动机所用 Siemens MS42/MS43 控制单元固件。Python 工具负责 C166 反汇编与汇编,并检查镜像校验和、原厂代码差异及 TunerPro 补丁列表;文档记录内存映射和原厂程序发现。
AC46 Firmware Tool 用于解包 JieLi AC4600/BT15 设备固件。它读取设备闪存转储,或去掉前 512 字节的 BFU 文件,检测加密状态,提取引导程序与资源,并生成重新打包的批处理脚本。仓库还列出密码处理、CRC16 和芯片密钥工具。
Bin X-ray 用 256×256 字节对矩阵和三维字节三元组图展示未知文件及固件数据中的模式。滑动窗口、总览带、字节对偏移搜索和十六进制视图可将可视化异常定位到具体字节。
PIC microcontrollers disassembler 将 MidRange 和 Enhanced MidRange PIC12/PIC16 设备的 Intel HEX 转储转换为反汇编列表、HI-TECH PICC 汇编文件,或同时输出两者。处理器参数和指令定义存放在 JSON 配置文件中。
premium5 在寄存器与信号层仿真 Volkswagen Premium 5 汽车收音机,使原版固件无需修改即可运行。它模拟 NEC 微控制器、LCD 控制器、EEPROM 及部分车载接口,并提供实时反汇编、内存检查和执行控制,供固件研究使用。
SPRD Flash Tool 用 Rust 实现面向 RDA8910 和 UIS8910 设备的 SPRD/UNISOC PAC 下载协议。分析功能通过 READ_FLASH 读取分区或整片闪存,并依据 U-Boot、LuatOS 及文件系统区域推测 BMAConfig 分区布局;作者报告在 Air724UG 上进行了字节比对。
PCM Explorer 是只读的 Python 车机镜像浏览器,面向 Porsche PCM 和 Audi MMI。它解析 QNX4/QNX6 磁盘、压缩固件、更新光盘、持久化闪存及 HBM5 界面文件,并提供搜索、镜像比较、提取和文件系统检查。
me_cleaner 是一个修改 Intel ME 固件映像的 Python 脚本,旨在减少该固件与系统交互的能力。根据 ME 的代际,它会移除固件,或仅保留启动所需的模块。
Black Magic Debug 是一套用于微控制器的独立调试工具。它无需配置文件,即可检测并配置已连接的目标设备。
OpenOCD 是通过硬件调试适配器对嵌入式目标进行编程和调试的工具。它支持闪存编程、断点、单步执行,以及通过 GDB 进行远程调试。
242 项带“协议”标签 · 查看全部 242 项 →
案例
91 个案例
重建第一代 Siri Remote 在 Linux 上的蓝牙报告,解析按键、触摸与 tvOS 风格手势。Python 实现和协议文档区分实测行为、历史报告与推测含义。
实现 GAMEKB-K17/HCY-K017 宏键盘的厂商 HID 配置协议,写入按键映射、固件宏和 RGB 设置后再读回核对。协议文档区分已测试命令、未确认观察和其他设备的研究结果。
为 Thermalright Vision 散热器显示屏实现 USB 图像传输驱动,并用 Rust 仪表盘替代厂商显示应用。文档所述协议发送报头和 JPEG 帧,通过定期重发避免设备退回品牌标志画面。
在 ESP32-C3 桥接器与 Python 电脑查看器中复用 otoscope 经逆向得到的 i4season/Soulear 协议。作者将实现归功于 Claude Code 辅助,报告把一台 Hopefox Find T 的视频传到 Windows 电脑,并提供录像、方向调整及 LED 控制。
记录作者报告的扫描仪调查:比较厂商驱动的 USB 控制传输与 Linux 驱动的记录,推断初始化、时序及分辨率参数。公开工具负责组织参考采集与比较,并不自动恢复完整协议规范。
运行一套本地 HTTPS 与 MQTT 服务来替代 Roborock 云端,使受支持的扫地机在隔离网络中无需 root 或改装硬件即可保留实时地图与控制。维护者的技术说明回顾了早期的应用与流量分析,以及后来借助 Claude Code 和 Codex、在模拟固件环境中开展的调查。兼容性由项目及其用户按型号报告。
以与平台无关的 Python 重新实现 Apple 私有推送通知服务(APNs)协议的客户端:它以 Apple 设备身份完成激活,连接 APNs courier 服务器,生成限定于应用的令牌并接收推送通知。项目最初是作者 iMessage 逆向研究的概念验证,但当前重写版暂时移除了 IDS 和 iMessage 支持。它在 Apple 官方客户端之外使用 Apple 的服务。
从在演唱会和球赛现场用 Flipper Zero 录下的信号出发,把录音重放给手环,恢复出足以在家中点亮 PixMob 活动手环的部分红外协议。脉冲时序分析发现信号载波为 38 kHz、比特间隔约 700 微秒;项目再用 ESP32 做有针对性的暴力枚举,找到数百条颜色、渐变、随机和体感模式命令,现可通过 Arduino、Python 和网页工具发送。README 称这些结果远未穷尽,并指向一个后来通过 MCU 转储基本解出完整红外协议的仓库。
基于 SEEMOO 实验室逆向研究、用 Python 编写的 Apple AirDrop 协议命令行重新实现。它通过 _airdrop._tcp DNS-SD 发现接收方,经 HTTPS 发送二进制 plist 格式的 /Discover 和 /Ask 请求,并上传 gzip 压缩的 CPIO 归档,与 iOS 和 macOS 设备互传文件。它与 Apple 无关联。
记录 Hasbro 玩具 Furby Connect 的蓝牙低功耗(BLE)接口;据其说明,这些内容来自对配套应用原生库的分析、BLE 流量嗅探和反复试验。文档梳理了 GATT 服务,以及玩具中 Nordic 无线芯片和 GeneralPlus 控制器的命令与响应字节,涵盖动作序列、天线颜色、情绪数值、传感器报告和一个隐藏的调试界面。fluffd 是基于 noble BLE 库的 Node.js 守护进程,通过 HTTP API 和浏览器控制页面提供这些命令。
基于 asyncio 的 Python 库和命令行工具,通过重新实现 DMAP/DACP、Media Remote Protocol、Companion Link、AirPlay 和 RAOP 协议,充当 Apple TV 与 AirPlay 设备的独立客户端;其协议文档称这些协议均经逆向工程得出。该文档记录了恢复出的二进制格式、Zeroconf 属性、OPACK 编码、pair-setup 与 pair-verify 交互以及 Companion 命令,其中部分请求头取自 iPhone Remote 应用的 Wireshark 抓包;附带的 atvproxy 可中继 MRP、Companion 和 AirPlay 会话并打印解密后的消息,供进一步分析。在此基础上,pyatv 提供遥控、带推送更新的元数据、应用与账户切换、音频输出管理,以及向 Apple TV、HomePod 和第三方接收器的 AirPlay 推流。
用一个小型 Python 脚本重新实现 Samsung Galaxy Buds Pro 专有的空间音频消息,使电脑能实时获取耳机的头部追踪数据。脚本连接耳机的 GEARMANAGER(或 FACTORY)RFCOMM 串口服务,以起止标记和 CRC16-CCITT 校验封装数据包,通过 attach 消息和每两秒一次的保活消息开启传感器数据流,并从数据事件中解码旋转四元数。另有贡献者编写的脚本把四元数转换为欧拉角,经本机 UDP 转发给 Unity 接收端;效果仅以作者给出的示例输出展示。
记录 Even 应用与 Even Realities G2 智能眼镜之间的低功耗蓝牙协议,依据抓取的通信流量推断得出:包括 GATT 特征 UUID、含序号、分包和双字节服务 ID 字段的 8 字节传输头、针对载荷计算的 CRC-16/CCITT,以及 protobuf 编码的载荷和初步的 .proto 定义。基于 bleak 的 Python 示例会发送七个报文的会话握手,并调用提词器服务显示自定义文字。README 的状态表将连接、握手、提词器和日历小组件标为可用,通知标为部分可用,Even AI 和导航仍在研究中。
以 C++ 库和交互式命令行客户端重新实现 Fujifilm X 系列相机的 Wi-Fi 遥控协议,客户端需接入相机自建的无线接入点。头文件列出控制、事件和 JPEG 实时取景所用端口、报文类型及相机属性代码,源码注释保留了若干交互的十六进制记录,并注明“the app”发送的内容;客户端可连接相机、触发快门、录制视频、调整曝光参数与对焦点,并传输实时取景画面,还可选择输出到 Linux 摄像头设备。README 称该工具功能很有限、基本没有文档,因此协议知识只存在于代码和注释中,并无成文规范。
一个 Node.js 桥接程序:从官方应用或服务已停用或不开放的健身单车读取功率和踏频,再以标准的低功耗蓝牙 Cycling Power、Cycling Speed and Cadence 传感器及 ANT+ 自行车功率配置文件重新广播,使 Zwift、TrainerRoad、码表和运动手表能够使用这辆单车。作者的开发笔记记录了在厂商关停家用服务后,如何在 Flywheel Home Bike 的蓝牙 UART 服务上解析出其统计数据包;Peloton 支持通过 USB 串口适配器读取单车的数据线,Schwinn IC4 和 Keiser M 客户端则分别解析标准的 Fitness Machine Service 和 Keiser 公开文档中的广播数据。单车与应用的兼容性均为项目报告。
一个 Python 库,通过 Garmin 手表专有的 GFDI V2 低功耗蓝牙协议与手表通信,无需 Garmin Connect、手机或云服务。它实现了握手、多链路路由、COBS 分帧、CRC16 校验和 protobuf 服务报文,可流式读取心率、HRV、血氧、压力、Body Battery 和加速度计等类型化数据,并提供模拟器和录制会话回放,便于在没有硬件时开发。致谢部分说明协议逻辑和 schema 源自 Gadgetbridge;另有一份公开的分析记录,展示作者如何依据带标注的录制数据解出加速度计载荷,而 Gadgetbridge 此前只记录其十六进制内容。
无需 Bose 应用、账号或云服务,即可在 Linux 和 macOS 上控制 Bose 耳机:项目提供 Python、Rust 和 C++ 库及命令行工具,在蓝牙 RFCOMM 上实现 Bose 的 BMAP 协议。作者在 NOTES.md 中记录了 BMAP 的功能块、操作符、载荷布局和错误码,据称是通过探测 RFCOMM 通道、在 Bose 应用中更改设置时抓取蓝牙通信并逐一测试各操作符得出的;这些库涵盖降噪、均衡器、空间音频、按键重映射、配置档和设备设置。各型号的支持情况由作者和贡献者报告。
重建 DJI Mimo 应用与 Osmo Pocket 3 相机之间基于 BLE 的 DUML 协议,提供 Node.js 库和命令行工具,无需官方应用即可扫描、配对、发送云台指令并接收约 20 Hz 的姿态遥测。作者称其依据第三方对 Mimo 通信的 Wireshark 抓包与解析器、一个 Go 客户端以及反复试验调试完成;PROTOCOL.md 记录了帧结构、CRC 参数、BLE 特征值的用途和命令 ID。一篇过程记录和随附补丁梳理了导致早期 node-osmo 库无法配合该相机工作的七个缺陷,作者报告打过补丁的库完成了配对、Wi-Fi 设置和 RTMP 推流。
记录 DJI 专有 MIMO 应用用于控制 DJI Osmo 设备的低功耗蓝牙报文格式,是作者在开发独立 CLI 工具 djictl 时产出的逆向工程素材。作者依据自己手机的蓝牙日志推断出报文结构——魔数、长度、协议版本、头部 CRC8、子系统与消息 ID 字段、载荷以及消息 CRC16——并提供一个 Wireshark 解析插件和一份带注释的消息类型目录。许多消息类型被标注为推测或未知;作者报告在 DJI Osmo Pocket 3 上实现了可用的直播推流后暂停了进一步分析。
以一个 Windows 命令行客户端替代 MXW01“猫猫打印机”(一款小型低功耗蓝牙热敏打印机)的厂商手机应用。作者称以仅支持 iOS 的 Moblin 实现为起点,再进一步逆向厂商的手机应用;该客户端向一个 GATT 服务发送带 CRC8 校验的命令,并以 1 位或 4 位灰度传输每行 384 像素的图像数据。若干命令 ID 仍标为未知,作者也只测试了这一款打印机。
从厂商安卓应用的原生指令编码器(而非其具有误导性的 Java SDK)重建 R2000 系列 915 MHz UHF RFID 桌面读写头的 A0 串口协议;这类读写头原本只随附 Windows 软件和安卓应用。项目据此提供用户态 CH340 驱动、Python 命令行与图形界面,以及小型安卓应用,直接与读写头通信,进行标签盘存并读取标签存储区。docs/PROTOCOL.md 记录了帧格式、校验和、指令表、响应格式,以及 READ 与 WRITE 不同的字段顺序。
记录 Xiaomi 电水壶封闭的低功耗蓝牙 GATT 协议;作者通过反编译 Mi Home Android 应用并反汇编其负责加密的原生库重建了该协议。文档涵盖连接与认证握手、状态通知的数据布局以及可写入的设置特征值,并附有用 Go 重新实现的少量加密辅助函数。作者据此开发了接入 Home Assistant 的水壶–MQTT 桥接程序,但未公开其代码,也不保证这些笔记对他人同样适用。
记录了改款(2006 年后)Ford Fiesta MK5 上连接 6000CD 收音机与仪表盘的中速 CAN 总线。作者在收音机的 QuadLock 连接器处用 Arduino Uno 加 Seeed CAN-BUS Shield 接入总线,据此推断出这些内容。README 描述了这条 125 kbit/s 总线上 18 个已部分或完全解码的报文 ID,给出字节布局和换算公式:包括收音机经 ISO-TP 发往仪表 LCD 的文字、电台名称、音量、CD 曲目以及转向柱旁的模式与搜台按键,还有广播的时钟、车门、门锁、倒挡、转向灯、灯光、手刹、安全气囊指示灯、踏板、转速、车速、冷却液温度、钥匙位置、蓄电池电压和部分 VIN 数据。附带的 Kayak .kcd 定义文件尚不完整,只编码了时钟和油门踏板/转速/车速两条报文。
将 Uniden R8 雷达探测器未公开的低功耗蓝牙输出解码为可在 Raspberry Pi 上运行的只读采集程序,提供实时遥测、警报开始/更新/结束事件、SQLite 历史记录,以及可选的 MQTT 与 Home Assistant 发布。作者在真实设备上直接从通信数据推断协议,并以 AegisX86/UnidenR8wlink 先前针对 R8w 的发现为基础;PROTOCOL.md 中的每项结论都按证据分级:在这台 R8 上实测、在其他型号上见到、从应用反编译但未测试,或推断。未知字段按原始数据保留,而不赋予臆造的含义。
直接使用 Scanmatik SM3 未公开的协议——这款 J2534 车辆接口原本只与自家 Windows 软件通信——并以 ELM327 桥接的形式提供给 Android 手机,其上还有一个诊断应用。作者通过抓取设备随附驱动的通信并测量响应,恢复了报文结构:包含序号、基于 CRC 与求和的校验字、操作码和长度的 16 字节报头;docs/protocol.md 区分了已确认与仍待解决的部分。所报告的结果来自一辆 Opel Astra J、共五次有车在场的测试。
以用户态 C 守护进程在 Linux 和 macOS 上重新实现 Apple 无线直连(AWDL)——Apple 设备用于 AirDrop 等点对点连接的专有 Wi-Fi 自组网协议;README 称其为达姆施塔特工业大学 SEEMOO 实验室 Open Wireless Link 项目逆向工程的成果。OWL 执行主节点选举,同步可用窗口和信道序列,解析并构造 AWDL 动作帧与数据帧,并提供带链路本地 IPv6 地址的 awdl0 虚拟网络接口,使未经修改的 IPv6 程序(如 SEEMOO 的 AirDrop 客户端 OpenDrop)能够与 Apple 设备通信。作者在 MobiCom 2018 论文中描述了还原出的协议。
QuestPad 在 nRF52840 固件中实现 Quest Touch 手柄的私有 2.4 GHz 无线协议,让电脑将手柄作为 USB 游戏控制器使用。协议文档记录了配对、AES-CCM 加密数据包、2 毫秒链路帧和输入数据;固件提供通用手柄、DS4 与 XInput 模式。
Stadiacast 重建 Stadia 手柄 Wi-Fi 固件所依赖的网络服务,让手柄连接本地电脑。接收端响应启动和发现请求,完成 WebRTC、DTLS 会话,解码按键输入并发送震动命令。协议文档记录了固件阅读和真机交互所得的结果,仓库还提供 protobuf 结构与服务端代码。
os-xgs-npu 通过 FreeBSD 内核模块和 OPNsense 插件重建 Sophos XGS 设备的协处理器接口。项目记录未公开寄存器、PCIe 设备系列及实测行为,用于开放前面板端口并卸载防火墙连接和 IPsec 关联。
LibreMP 根据 Windows 客户端抓包还原 Epson EasyMP 协议,实现桌面向投影仪投屏。Rust 核心处理注册与登录消息、投影仪二维码解码、JPEG 分块传输及画面变化区域更新;命令行和 Tauri 界面共用该核心。文档记录控制通道使用 TCP 3620,视频通道使用 TCP 3621。
Sony CDX-A250 LCD Panel 还原通过 LC75826W 驱动器独立控制汽车收音机可拆卸显示屏所需的串行接口。接线说明、CCB 传输文档和 Arduino 程序涵盖显示数据组、控制位、测试图案及实验性段位映射。
MacroPad 重建了 USB ID 为 1189:8840 的 12 键双旋钮宏键盘的 HID 配置交互,并提供 Linux 图形客户端。作者记录了用 usbmon 抓取 MINI_KEYBOARD.exe 流量、解析配置与提交报告,以及在测试中重放抓包数据的过程。
Monix 通过配套内核模块、协议库和图形界面为 Audient iD USB 声卡实现 Linux 混音控制。协议文档依据厂商应用的 USB 抓包及 macOS 二进制分析,整理路由、推子、电平表和设备配置的控制请求。
Scooter Link 使用还原的 BLE 认证协议,为 Xiaomi Electric Scooter 5 Pro 和 5 Max 提供 Android 客户端。研究日志记录 GATT 特征及 ECDH P-256、HKDF-SHA256、AES-CCM 交互的调查;应用可读取骑行、电池数据并控制受支持的设置。
Sound Blaster AE-9 的 Linux 支持项目通过静态分析 Creative Windows 驱动并观察硬件行为,重建声卡及 Audio Control Module 的部分控制逻辑。仓库记录 CtxHda.sys、CtxHdb.sys 和 ACM 的 SysEx 帧 UART 协议,驱动实现了部分播放与控制功能。
thermalmaster 根据所记录的 VDCMD USB 控制传输,为 ThermalMaster P3 和 P1 热像仪实现 Go 客户端。它可抓取 PNG 画面,并向 Linux v4l2loopback 输出热成像和红外视频;协议文档列出 USB 命令格式与设备型号标识。
open-rknpu 通过板卡实验和黑盒对照还原 Rockchip RV1103/RV1106 NPU 的任务程序接口。Python 编译器为限定范围内的静态 ONNX 卷积图生成寄存器命令、权重与量化数据块及容器文件;C 运行时经 /dev/rknpu 提交任务。研究文件记录了寄存器和数值行为。
hardsid4u 还原 HardSID 4U 的 USB 协议,并用 libusb 实现控制 SID 芯片插槽的 Python 驱动。研究结合厂商二进制分析、USB 抓包和硬件探测,记录报文封装、初始化、寄存器写入、时序及流量控制;MIDI 乐器建立在该驱动之上。
PyEilik 基于恢复出的 USB 串行协议控制 Eilik 桌面机器人。C 库与 Python 封装可驱动四个舵机、读取和更新 128×64 屏幕,并在视频播放时同步动作。协议文档记录了 125000 波特率、帧结构、命令号、校验和及应答。
libfprint-goodixtls 为 Huawei MateBook X Pro 的 Goodix GXFP5187 SPI 指纹传感器实现 libfprint TOD 驱动。它从传感器内存读取 PSK,建立 TLS-PSK 通道,解码采集图像,并用局部特征描述子在主机端匹配。作者报告可通过 fprintd 和 GNOME 设置录入、验证指纹;详细的逆向研究笔记另行保存,未收入仓库。
RazerStream 用 macOS 应用、Swift 协议库和命令行工具替代 Razer Stream Controller 已停用的控制软件。文档记录设备通过 USB 串口完成 WebSocket 升级,再交换封装的命令与输入事件;应用可配置触摸屏按键、旋钮、实体按钮和 LED。
DABplay+ 借助逆向得到的 USB 接收器协议实现 Android DAB 收音机,可直接控制 DTR-100 系列设备并解码广播数据与音频。仓库还记录其他接收器协议、硬件发现和测试。
PocketPrinter5890 重建了 Lidl Tronic、SILVERCREST 和 Parkside 5890 型便携热敏打印机的 BLE 打印协议。协议文档记录激活写入、流控额度和分段光栅传输;Swift、Kotlin、TypeScript 库分别面向 Apple 设备、Android 和浏览器。
该倒车雷达研究重建控制板向显示器发送的信号。作者结合示波器观察与不同传感器状态测试,在约 48 位的帧中定位传感器地址、连接状态和接近程度标志,并提供基于 ATmega328P 的 PlatformIO 解析示例。
pyhaseiq 复原与 flamemonitor 应用配套的旧款 Hase iQ 木炉本地 WebSocket 协议,并实现异步、只读的 Python 客户端。协议文档记录 base64 编码的请求与应答、串行交互及各项结论的证据状态;客户端读取燃烧阶段、温度和性能数值。
LED Controller 通过 BanlanX BLE 命令在电脑上控制 SP611E 系列灯带。文档列出 GATT 命令和状态通知,记录作者探测到的音乐效果音频数据消息;随附工具可检查广播、GATT 状态与蓝牙抓包。
Zemismart Blind Controller Protocol 记录 Zemismart 电动窗帘遥控器的 433.92 MHz OOK PWM 消息。文档给出脉冲时序、载荷字段以及频道和按键命令的计算公式;Python 脚本用于采集 IQ 样本和编解码发送内容。
vanmoof-certificates 解析 VanMoof SA5 与 Series 6 自行车使用的访问证书。文档描述了 Ed25519 签名及其后的 CBOR 载荷,包括车架与模块序列号、用户身份、权限角色和到期时间;Go 代码负责请求、解析和检查证书。项目称 SA5 验证公钥取自车辆的 BLE 证书。
Cosmic Byte Firestorm Controller 是基于已解析 USB 设置协议实现的 Linux 鼠标控制工具。其 Python 命令行程序通过控制传输和中断传输配置灯效、各档 DPI 指示颜色及灵敏度;PROTOCOL.md 记录了数据包结构和命令序列。
Centerpiece Projects 记录 Finalmouse Centerpiece 键盘的 USB 控制消息,并据此编写交互脚本。协议笔记描述 HID 帧结构,以及上传、状态、槽位切换和预览分块的消息类型;PowerShell 与 Python 工具提供相应操作。
FAAC E145 Gate Connect 使用从 EasyBoard 软件通信中还原的串口命令,本地控制 FAAC E145 门机。文档列出 POLL、OPEN、CLOSE、STOP 的字节序列,并解释帧结构和校验字段。Python 网关还提供位置监控、网页、REST 与 MQTT 接口。
stagg-net 调查 Fellow Stagg EKG 电水壶的内部 UART 接口,记录连接器、串口参数、周期心跳包和启动消息。仓库还提供逻辑分析采集文件、解码源码、探测脚本和用于 ESP32-C6 的 ESPHome 配置。
TOZO Control 是 Linux GTK4 耳机客户端,使用从 TOZO Android 应用逆向得到的 BLE GATT 协议。它向 B611 特征写入命令,从 B612 接收通知,并记录 GET、SET 数据包结构及参数编号。作者报告已在 T10 上测试电量、游戏模式、均衡器和声道平衡功能。
BMS RS485 Service Suite 记录电池管理服务中观察到的 ASCII RS485 协议,并在 Node-RED 中实现构帧与解码。规格涵盖帧结构、长度与校验字段、请求响应规则及已解析的服务编号;套件还将 JK、DALY 的 BLE 数据接入 MQTT 和仪表板。
Petkit Local 用本地 Home Assistant 服务响应 Petkit D4 喂食器的部分云端请求,并通过 BLE 中继 Eversweet Max 2 CTW3 饮水机消息。集成依据设备通信实现注册、心跳、计划、事件和控制命令。
IPI STAY FLY Driver 使用逆向得到的 16 字节 HID 报文,在 Windows 应用中重建鼠标配置功能。它提供 DPI、回报率、按键和传感器设置,记录报文校验和,并附有 WebHID 抓包扩展及 ATK FIERCE X 协议笔记。
该研究重建 Soundcore D3200 通过 BLE 列出和传输加密录音的消息流程。Python 客户端执行 P-256 ECDH 握手、派生会话与文件密钥、解密 AES-256-CTR Opus 数据包,并生成 Ogg/Opus 文件。
K1 Pro OpenDeck Suite 包含适用于 Linux 的 HOTSPOTEK/Mirabox Stream Dock K1 Pro OpenDeck 驱动,依据逆向得到的 USB/HID CRT 协议实现。驱动处理连接与保活消息、按键屏幕的 64×64 JPEG 图像、RGB 灯环和三个旋钮输入;另附四个通用 OpenDeck 插件。
iDotMatrix Home Assistant 集成利用对厂商 Android 应用的分析所得 BLE 协议,控制 HXS-002 / NL-XSD-32 LED 面板。仓库中的协议模块和基于硬件抓包的测试覆盖电源、亮度、时钟控制,以及带 CRC32 的分块 32×32 图像上传。
Dell ControlVault 2 fingerprint on Linux 通过五处字节特征补丁,使用户本地取得的 Broadcom 驱动识别较旧的 BCM5880 指纹设备。研究记录了设备的 USB 端点、命令头及驱动检查逻辑。作者报告指纹采集可用,但录入与比对仍不稳定或尚未确认。
epson-l3110-driver 在开发 C 语言 Linux 驱动的同时研究 Epson L3110 的 USB 打印通信。协议笔记根据打印作业抓包记录 IEEE 1284 设备 ID、EJL 会话建立及 ESC/P-R 命令格式。USB 通信功能仍在开发,驱动尚不能打印页面。
MS5 WiFi Microscope 复原 MS5 相机的 UDP 控制与视频协议,并用 Python 客户端将重组后的 JPEG 帧以 MJPEG 提供给浏览器或播放器。文档列出命令头、OpenVideo 端口握手、分片布局和分辨率查询;作者报告在 MS5 实机上获得约 25–30 fps 的 1280×720 画面。
lux-lat-long-log 利用 ESP32 固件重建 Panasonic LUMIX S5 的 BLE 定位通信,无需厂商手机应用即可向相机发送位置。项目根据 Android HCI 抓包记录 GATT 标识、会话顺序及 GPS 和时间数据包,并使用 GNSS 模块提供位置数据。
Magene L308 互操作工具重建了这款智能尾灯的 BLE 控制协议和 light_mode.bin 图案文件格式。协议文档记录 GATT 特征、命令帧和上传流程;浏览器、Python 和 Garmin 客户端利用这些研究结果直接控制尾灯的设置与图案。
xbloom-ble 是针对 xBloom Studio 咖啡机已解析 Bluetooth LE 协议的 Python 客户端。作者记录了采集手机应用流量、比较 GATT 命令帧的过程;命令行与终端界面可加载配方、设置旋钮预设、按明确指令启动冲煮,并显示实时称重数据。
ak820 通过 AJAZZ AK820 Pro 的厂商 HID feature report 协议在 macOS 上控制键盘。Python 命令行工具经 USB 设置时钟、RGB 灯光和休眠时间;附带文档记录 Windows 驱动分析、数据包封装、事务握手及尚未解决的按键重映射命令。
GameTrak Liberation 根据逆向得到的 USB HID 行为实现控制器客户端。它发送初始化消息和滚动密钥保活包,以持续接收六轴数据,并通过 stdout、OSC、MIDI 或 WebSockets 输出。仓库还提供协议笔记、报告采样及 Processing 和 p5.js 示例。
Cooper Hunter AC 记录了使用 Gree GRZQ3-R V1 板卡的 CH-IF140RK 与 CH-IF140RK2 空调的 COM1 UART 和红外控制消息。作者对比红外遥控操作前后的数据包,推断 UART 状态字段;最终 ESPHome 方案通过 UART 接收状态,经红外信号路径发送控制。
aw5d-linux 在 Linux 上通过 64 字节 USB-HID 输出报告驱动 iBUYPOWER AW5/AW5D 散热器的圆形屏幕。研究笔记记录报告 ID 0x10,以及 CPU 使用率、频率、温度和仪表样式对应的字节位置。作者报告已在一台 3402:0407 设备上运行,其他变体尚未确认。
MyJBxHeadsetControl 通过已研究的 USB HID 数据交换,让 Stream Deck 控制 JBL Quantum 950 Wireless 耳机。插件读取电量和音效模式状态包,发送设置命令,并调用用户本机的 QuantumENGINE DLL 计算均衡器系数。
zlt 根据 MTN ZLT T10D MAX 路由器提供的 JavaScript 和实机响应还原其局域网 JSON API。Python 客户端处理 reqproc 请求、登录与 CSRF 机制;命令行和本地面板提供信号、网络模式、短信及 USSD 操作。协议文档指出了固件特定字段与移植限制。
claude-rc-api 还原 claude.ai/code 控制本地 Claude Code 会话所用的私有 HTTP 接口。参考文档依据 CLI 可执行文件整理会话端点、OAuth 认证、事件封装和流式响应;Python 库与命令行工具据此查看及控制会话。
MSI Mystic Light on Linux 根据 Windows 虚拟机中捕获的 MSI Center USB 流量,实现 MSI 主板灯光控制。Python 脚本向 0db0:0076 控制器发送 290 字节 HID Feature 报文;文档标明模式、RGB 调色板、亮度、方向及写入闪存的字段。
LinkCam 为 Insta360 Link 2 摄像头提供 macOS 菜单栏应用和命令行控制。云台转向及变焦使用标准 UVC 控件;其扩展单元研究确定了 AI 追踪对应的功能位和选择器。
shark-k86-mac 将 Attack Shark K86 键盘的厂商 HID 控制协议实现为 macOS 和 Linux 上的 Python 命令行工具与库。其独立编写的协议文档记录 64 字节特性报告、校验和及操作码;客户端可控制灯效和 TFT 屏幕并读取设备信息。
fitdays 根据对原应用流量的观察,重建 Fitdays 智能体脂秤云端 API 的只读访问。其异步 Python 客户端使用服务要求的密码摘要登录,处理区域重定向和会话续期,并读取体脂秤、成员档案及身体成分测量记录。
trvision 依据已有协议研究实现 Thermalright Vision 显示屏的 USB 直连控制。程序采集桌面画面,按握手响应编码为 JPEG 或 RGB565,再通过 USB 批量传输发送;附带工具可解析 USBPcap 抓包。
pocket-client 以 Swift 库和命令行工具实现 Pocket 录音笔的 BLE 命令协议,记录鉴权、状态查询、录音列表、MP3 传输和录制控制报文。协议说明依据厂商应用的 HCI 抓包及设备探测。
KeyAxis 记录使用 0416:7372 控制器的键盘 HID 键程数据流,并将按键深度映射到虚拟手柄轴。协议文档说明厂商接口、ARM 与 DISARM 命令、64 字节主机消息,以及从抓包中还原的行、列和深度字段。
该项目通过 HPS10-50H45DV 热水器的 CTA-2045 RS-485 端口实现本地监测与需求响应控制,并将读数发布到 MQTT。文档记录帧结构、校验和、控制应答及该型号热水器的实测行为。
j2208-band-tools 根据从 FitTrack Health 配套应用恢复的协议,实现 J2208 系列健身手环的直连 BLE 客户端。Python 工具可读取历史健康记录与实时传感器数据、探测 GATT 服务,并将采集结果存入 SQLite。作者在一只 Hume Band V2 上核对了文档所述的 16 字节帧协议。
Eufy Local Light 根据对 Eufy 应用 BLE 流量的分析,为 E10 串灯和 E22 户外灯实现 Home Assistant 本地控制。协议笔记记录了 GATT 端点、数据包格式、AES-128-CBC 会话建立和灯具控制命令。
OpenPeats 重建 SoundPEATS 耳机控制协议,并实现桌面端和 Android 客户端。协议文档记录了从官方 Android 应用分析得出的帧格式与操作码,以及在 SOUNDPEATS H3 上的通信核对结果;Go 和 Kotlin 实现提供降噪、均衡器和多点连接控制,并读取电池电量。
hongtai-panel 从厂商 Electron 应用还原 USB CDC-ACM 串口协议,为 LovingCool 一体式水冷显示屏提供 Linux 控制程序。文档列出控制帧、校验和、JSON 回复及操作码;客户端可显示系统状态、媒体内容或屏幕镜像。
该 ESPHome 组件让 ESP32 配合 CC2500 无线模块重现 L&S Emotion Control 遥控命令,在 Home Assistant 中控制灯具并同步实体遥控器操作。文档记录了 2436.2 MHz 的 MSK 参数、同步字,以及包含遥控器 ID、命令和值的 14 字节载荷。
akp02 将 Ajazz AKP02 副屏的 USB HID 协议重建为 Linux Python 库。文档记录命令报告格式,代码实现整屏与局部图像更新、亮度和电源控制、固件查询、方向设置及保活。
RK M75 通过有线 USB HID 抓包和 2.4 GHz 无线实验,复现 Royal Kludge RK M75 键盘的 RGB 灯光控制。Python 库可发送有线逐键颜色帧和无线分组颜色帧;仓库还收录协议笔记、抓包及有线 SignalRGB 插件。
ACiQ K18W 记录分体空调室内板与 TCL WBR1 Wi-Fi 模块之间的 UART 协议。抓包和解码器说明 115200 8N1 通信、0xA5 帧、CRC-16/XMODEM、确认消息及设备字段;ESPHome 配置支持被动监听,或在替换模块后进行本地控制。
RND Companion 重建 Cymaforma RND Synth 的 SysEx 控制命令,并提供 C++ 编解码器和管理音色种子的配套插件。协议笔记根据网页应用及一段实机 MIDI 录制数据记录帧格式、种子命令和状态命令;客户端支持直连 MIDI 端口或通过宿主软件路由 MIDI,并保存音色种子库。
viture-v2 记录并实现 VITURE Gen2 XR 眼镜的 USB HID 协议。作者将 usbmon 抓包与 SDK 帧日志对照,编写了支持 hidraw、usbfs 和 io_uring 的 Rust 驱动,用于设备查询与 IMU 数据流;实测对象为 VITURE Pro 2 XR。
BikeStation 是用于 Echelon Connect 健身车的本地 Windows 客户端,基于社区对其专有低功耗蓝牙协议的研究。它读取踏频和阻力数据、查询阻力范围、向电动阻力机构发送控制命令,并在无需厂商云服务的情况下将骑行记录保存在本地。
工具、项目与集成
49 项资源
将捕获的应用与设备流量解析为协议字段,支持过滤,并由 GUI 与 TShark 共用解析逻辑;自定义解析器可将新识别的报文格式固化下来,辅助比较协议实现。
对通信协议建模并从流量记录推断报文布局,通过配置主动学习来推断协议状态机。Python API 提供报文字段、符号和自动机,用于解析、流量生成及模糊测试。
使用 Python 编写报文解析、构造、请求/响应匹配及捕获文件分析流程;自定义报文字段与层绑定可将已理解的线格式编码为可操作模型,辅助研究协议行为。
解调并解码通过软件无线电捕获的信号,支持自动检测调制参数和自定义解码。分析者可手动标注协议字段与消息类型,或复核基于规则的字段自动推断结果;模糊测试组件面向无状态协议,仿真环境则用于有状态交互。
捕获或载入 CAN 总线流量,通过嗅探、绘图、文件比对及 ISO-TP/UDS 解码视图分析帧;借助载入或由分析者编辑的 DBC 文件,将原始字节映射为具名信号。自定义发送、模糊测试和 UDS 扫描则是独立窗口,会主动向实时总线发送帧。
通用的 Python 自动机学习库,可通过主动查询或被动轨迹数据,推断黑盒系统的确定性、非确定性、随机及下推自动机模型。其 README 链接了一项独立的低功耗蓝牙(BLE)研究,该研究的仓库报告了学习得到的设备连接与传统配对(legacy pairing)状态机;该库本身不推断报文格式。
接收并解码 ISM 频段设备(如气象传感器、遥控器、门铃和报警传感器)的无线传输,可使用 RTL-SDR 或 SoapySDR 接收机,也可读取录制的 I/Q 文件,并以 JSON、CSV、MQTT 等格式输出解码字段。对内置解码器无法识别的信号,脉冲分析器会报告 OOK/FSK 时序,并给出灵活 -X 解码器的提示,用于将帧切分为比特;按其分析指南,把这些比特对应到具体数值仍需分析者依据已知读数完成。
NCC Group 推出的工具集,可在没有对应 .proto 定义的情况下解码并重新编码 Protocol Buffers 报文。解码器返回报文数据,以及根据线路类型尽力推测生成、可编辑的类型定义;分析者可以为字段命名、修正类型并重新编码修改后的报文,这是 protoc --decode_raw 做不到的。它提供 Python 库及 bbpb 命令行工具、基于 Jython 的 Burp Suite 扩展和 mitmproxy 插件,README 说明它最初用于在移动应用渗透测试中修改报文。
针对 Apple 专有 Continuity 蓝牙低功耗广播的逆向工程笔记与 Wireshark 解析器,是作者 PETS 2019 隐私研究的延续。各报文页面记录了 AirDrop、Handoff、Proximity Pairing、Nearby Info、Find My 等 14 种报文类型的字段布局和观测到的取值;解析器替换 Wireshark 的 packet-bthci_cmd.c,使捕获到的广播能解码为具名的 btcommon.apple 字段。
comma.ai 维护的 DBC 文件库,描述多个汽车品牌的 CAN 报文与信号,并附带一个依据这些定义解析和构造 CAN 报文的 Python 库;其车型移植指南要求贡献者在 cabana 工具中利用行车记录逆向分析新的报文。基于它的各品牌车型移植代码可解析车辆状态、根据 ECU 固件版本识别车型,并生成 openpilot 的转向、油门和制动报文;面向 comma panda 接口的安全代码则限制哪些报文可以发出。
基于 GNU Radio 的射频框架,可将信号从频谱巡查与检测,经 IQ 采集、检查、调理、特征提取和分类,一路带入协议发现流程。其解调工作区可为 OOK/ASK 和二进制 FSK 录制估计符号速率;比特流与成帧阶段则结合曼彻斯特或差分解码、同步模式与 CRC 证据以及重复报文检测,推断报文边界。Qt 仪表盘负责协调本地或远程的 SDR 传感节点,资料库保存协议与数据包定义、解析器和归档录制,插件还可加入雷达脉冲分析等检查模块。
基于 Frida 的工具,在运行中的进程内挂钩 OpenSSL、BoringSSL、NSS、GnuTLS 等 TLS 库,输出 NSS 格式的密钥日志和解密后的 PCAP 明文,便于分析者在 Wireshark 中检查应用的加密流量。对于去除符号或静态链接的库,可通过字节模式或偏移量定位函数、扫描被重命名的库,也可不挂钩而改为扫描堆内存来恢复 TLS 密钥。终端界面、Python API 和 Wireshark extcap 集成都基于同一套捕获功能。
从已编译程序中恢复 Protobuf 消息定义,并还原为可读的 .proto 文件。提取器覆盖 JAR、DEX 和 APK 中的各类 Java 运行时(包括经 ProGuard 混淆的代码)、内嵌 Protobuf 反射元数据的二进制文件,以及使用 Protobuf-URL 格式的 Web 应用。随后可在图形界面中把恢复出的消息类型绑定到 HTTP 端点,将十六进制形式的抓包样本解码为可编辑的字段树,并重新发送修改后的消息,帮助分析者把每个字段与响应对应起来。
实现 Valve Steam 网络协议客户端的 .NET 库,涵盖连接管理服务器会话、身份验证、好友、统一服务消息与 Game Coordinator 消息、Web API 调用以及 CDN depot 下载。消息类由子模块跟踪的 Steam protobuf 和项目自有的 SteamLanguage 定义生成。其 Resources 目录还提供协议研究工具:NetHook2 是挂钩正在运行的 Steam 客户端、转储其收发网络消息的 Windows DLL,NetHookAnalyzer2 用于查看这些转储,ProtobufDumper 则从可执行文件中恢复 protobuf 定义。
无需对应的 .proto 定义即可解析 Protocol Buffers 数据块(proto2 或 proto3),按线路编码顺序以彩色输出字段;对每个长度限定的数据块,依次尝试解析为嵌套消息、打包数组、字符串,最后退回十六进制转储。分析者把推断出的内容写入 protobuf_config.py,包括字段类型与名称、消息和枚举类型以及自定义原生类型,直到解析器不再需要猜测。字段名、zig-zag 编码、有无符号以及整数还是浮点数,都无法从线路数据中读出;README 也说明猜测可能出错,小数据块尤甚。
用 C 编写的库及命令行工具,无需 Apple 的专有库或越狱即可使用 iOS 设备的原生服务协议通信。它经 usbmuxd 或 Wi-Fi 同步连接,实现 lockdownd 配对,以及 AFC 文件访问、备份、应用安装、崩溃报告、系统日志、debugserver 和 WebKit 检查等服务,并提供 Cython 绑定。
NCC Group 推出的蓝牙 5 与 4.x 低功耗(BLE)嗅探器,由运行在 TI CC1352/CC26x2 射频板上的固件和 Python 主机工具组成。它可在 1M、2M 和编码 PHY 上捕获广播与连接流量,跟随连接经历的信道映射、连接参数和 PHY 变更,捕获 BT5 扩展广播,并按 MAC 地址、IRK、RSSI 或广播内容过滤;对已过滤的目标会在全部三个主广播信道间跳频,README 称这使连接检测的可靠性比只监听单一信道的嗅探器高出近三倍。捕获结果保存为与 Ubertooth 兼容的 PCAP;Wireshark extcap 插件可直接从 Wireshark 界面启动捕获,命令行解码器可打印广播数据,包括 Apple 和 Microsoft 的厂商自定义字段。
Great Scott Gadgets 推出的 USB 2.0 协议分析应用,可配合 Cynthion 分析仪实时捕获,也可浏览已捕获的流量,处理高速、全速和低速 USB 的物理层数据包。其 GTK 4 界面提供分层视图,可将高层事件逐级展开为事务和数据包,另有按时间顺序排列的事务视图和数据包视图;设备面板则根据解码后的描述符(包括 HID 报告描述符)汇总每个观察到的设备。捕获以 LINKTYPE_USB_2_0 链路类型的 pcap 文件打开和保存,v0.5.0 还加入了带有非数据包事件自定义块的 pcapng 格式。
Python 编写的汽车安全探索工具,起源于 HEAVENS 研究项目;README 称它是一种无需预先了解目标的工具,可接入任意 CAN 网络并收集其中存在哪些服务的信息。被动模块可将 CAN 流量输出到终端或 candump 格式文件,并列出总线上出现的所有仲裁 ID;UDS(ISO 14229-1)、DoIP(ISO 13400-2)和 XCP 模块则可发现响应诊断请求的 ECU,枚举其支持的服务和子服务,读取数据标识符并查询 XCP 能力。其工具库提供可复用的 ISO-TP(ISO 15765-2)和 UDS 实现,新模块可通过即插即用的模块架构加入。
Go 编写的命令行工具,可从已编译的二进制或其他任意文件中恢复 Protocol Buffers 模式:它在原始字节中搜索生成代码嵌入的序列化 FileDescriptorProto 记录(借助其中的 .proto 文件名定位),并按原描述符路径将每条记录重新写成 .proto 源文件。重新生成的文件采用 proto2、proto3 或 editions 语法,包含包名、导入、常用文件选项,带保留范围的消息、嵌套枚举、oneof、map 与默认值,以及服务及其 RPC 方法,为分析者解码 Protobuf 流量提供消息和接口定义。
用于逆向 CAN 总线流量(主要是车辆总线)的 Flipper Zero 应用及早期 Arduino 程序。当前应用通过 UART 为 CAN Commander ESP32 板提供操作界面:可显示全部或过滤后的帧、列出唯一 ID、测量报文速率、跟踪逐位和逐字节变化,并提供两阶段的自动逆向功能,先校准排除背景流量,再显示执行某个操作时哪些 ID 发生变化。它还能依据基于 DBC 的配置解码实时信号,并读取 OBD-II PID、VIN 和故障码。
一组研究用途的 Python 和 R 脚本,用于自动逆向分析从乘用车采集的控制器局域网(CAN)报文负载,实现了 Brent Stone 在 AFIT 的博士论文所述的流水线。Python 流水线先把 CAN 日志预处理为按仲裁 ID 组织的数据框,提取公开的 SAE J1979 诊断数据,再通过词法分析推测各信号时间序列的边界,随后通过语义分析构建相关性矩阵并对相关信号做层次聚类,输出图表和树状聚类图。另一组 R 脚本调用 rEDM 经验动力学建模包,对发动机转速、刹车压力和车速时间序列分析因果关系。
基于 Frida 的拦截工具,用于捕获不支持代理设置的应用程序的流量。JavaScript 挂钩脚本作用于 WinSock、Linux libc 套接字、OpenSSL、GnuTLS 和 SChannel 的收发函数,将明文缓冲区交给 Python 拦截模块记录日志,或转发到代理中查看。它可启动或附加到进程,也可通过远程 frida-server 操作,主要作为作者 PETEP 代理的后端而设计;proxifier 拦截模块可配合其他代理工具使用,并可添加新的脚本和拦截模块。
基于 Raspberry Pi Pico 的低成本 CAN 总线接口固件与硬件设计,用于探索和逆向分析车辆网络。它借助基于 PIO 的 can2040 库,在 RP2040 开发板上运行两路、在 RP2350 开发板上运行三路 CAN 2.0B 通道,并通过 USB 以 GVRET 设备的形式供 SavvyCAN 使用,同时为每个通道提供 SLCAN 设备,经 can-utils 接入 Linux SocketCAN。固件还包括配置命令行、可处理 OBD-II PID 请求(含 ISO-TP 多帧应答)的部分 ELM327 模拟器,以及 Pico W 开发板上的 Wi-Fi、蓝牙和网页界面;仓库另附 OBD-II 适配器的洞洞板与 KiCad PCB 设计及可 3D 打印的外壳。
面向 ESP8266/ESP8285 和 ESP32 开发板的 Arduino 库,可在 VAN(Vehicle Area Network)舒适系统总线上收发报文;PSA 在 2009 年前的部分标致和雪铁龙车型中使用这种总线。它用软件解码经 CAN 收发器或仅供接收的电阻分压电路接入 GPIO 引脚的信号,得到包含标识符、命令标志、数据和 15 位 CRC 的报文,可校验 CRC,或通过逐位翻转尝试修复,并提供队列与错误统计。示例程序可转储原始报文、发送报文,并在串口或实时网页上把舒适总线流量解析为可读字段。
SEEMOO 实验室的三个 macOS 辅助工具,Open Wireless Link 项目曾用它们从主机一侧研究 AirDrop、Wi-Fi 密码共享、Handoff 和离线查找等 Apple 无线服务。process_recon 汇总哪些进程、日志类别和子系统产生了含指定关键词的日志;keychain_access 借助 Frida 挂接某一进程中的 SecItemCopyMatching,把该进程访问的钥匙串条目导出为 JSON;另有一组 lldb 断点命令,可打印 rapportd 守护进程收发的 Handoff 与通用剪贴板消息。
基于 Qt 的桌面 CAN 与 CAN FD 分析工具,用于解码信号和逆向分析未知报文;由 openpilot cabana 的活跃贡献者 Dean Lee 从 openpilot 中独立出来,现单独维护。它实时显示逐位变化热图,按计数器、切换位、噪声数据等趋势为字节着色,可按数值搜索信号或查找在不同报文和总线间同步变化的位,屏蔽已知位,绘制信号曲线,并以可撤销方式编辑 DBC 文件,同时能回放 openpilot 行车记录并同步显示摄像头视频。数据来源包括 openpilot 行车记录、Vector ASC、candump 和 PEAK TRC 日志、SocketCAN、comma.ai Panda 设备以及来自 comma 设备的实时流,并附带一组 opendbc DBC 文件。
基于 eBPF 的 Linux 与 Android 工具,在 OpenSSL、BoringSSL、GnuTLS、NSS 等 TLS 库以及 Go 的 TLS 实现上挂载 uprobe,记录进程收发的明文,无需代理或安装 CA 证书,便于分析者在自己掌控的主机上检查应用的加密流量。输出模式包括明文文本、NSS 密钥日志,以及内嵌 TLS 密钥、可交给 Wireshark 和 tshark 解读的 pcapng 文件;文本模式还能从捕获的数据流中重建完整的 HTTP/1.1 和 HTTP/2 报文。另有独立模块审计 bash、zsh 命令以及 MySQL、PostgreSQL 查询。
Tomasz Moń 开发的开源 Windows USB 抓包工具。安装在 Windows USB 设备栈中的过滤驱动会记录各根集线器上设备收发的 USB 请求块(URB),再由 USBPcapCMD 写成 LINKTYPE_USBPCAP 格式的 pcap 文件,供 Wireshark 解析。从 1.2.0.0 版起,项目推荐把 USBPcapCMD 作为 Wireshark extcap 使用:每个根集线器会显示为一个抓包接口,可选择抓取指定设备、全部设备或新接入的设备,还能把已连接设备的描述符补进抓包数据。
面向 CAN 总线数据库的 Python 3 库和命令行工具,可解析 DBC、KCD、SYM、ARXML 3/4 和 CDD 文件,对 CAN 报文进行编码和解码,支持简单与扩展信号多路复用以及诊断 DID。其命令行可依据数据库解码 candump 输出、用 matplotlib 绘制 candump 日志中解码出的信号、转储每条报文的位布局、在数据库格式之间转换、生成 C 语言打包与解包代码,并通过 python-can 在文本界面中监视实时总线。
用于分析已录制无线电信号的桌面工具,主要面向软件无线电接收机的录制文件,README 称可处理 100 GB 以上的文件。可缩放的频谱瀑布图配有可调滤波器,可派生出采样、幅度、频率、相位和阈值曲线;游标用于测量周期和符号速率,并可将符号值提取到标准输出或剪贴板。选定的时间段、滤波后的采样和解调曲线均可导出,频谱图上还能显示 SigMF 标注。
由 Hugo Gascon 等人开发的研究原型,可从记录下来的流量中学习未知网络协议的模型。它从 PCAP 记录中提取报文,将其嵌入为词元或 n-gram 向量,借助 PRISMA R 模块用矩阵分解进行聚类,再生成马尔可夫链状态模型,以及报文模板和把字段与先前报文关联起来的规则,输出为模型文件和 Graphviz 状态图。同一模型还驱动工具中的会话模拟器和有状态模糊测试器,详见作者 2015 年的 SecureComm 论文;本条目只介绍协议学习部分。
用于离线逆向分析 CAN 总线抓包的 PyQt6 桌面工作站及命令行工具。它可读取 SavvyCAN/GVRET CSV、candump、pcap、Vector BLF/ASC、MDF4 和 openpilot 日志,进而提示计数器、校验和及其算法、字节角色、标志位、多路复用器、基于熵的字段边界和跨 ID 相关性,解码 J1939 与 NMEA 2000 PGN,并重组多帧报文。基于 cantools 的 DBC 构建器会用抓取的帧核对信号定义,可导出 DBC、openpilot DBC、CANdb++、ARXML 和 Wireshark Lua 解析器;可选的 MCP 服务器向 AI 助手提供 29 个只接收、不发送的分析工具。
用软件实现 USB 设备的 Python 库,借助 Cynthion、GreatFET 等硬件外设充当连接目标主机的可远程控制 USB 控制器。其 USBProxy 模式位于真实设备与主机之间转发传输,并由过滤器记录、解码或修改传输内容,用于 USB 协议分析;README 指出,这适用于无法控制其软件的设备,例如嵌入式系统或游戏主机。第 3 版从头重写了仿真核心,内置键盘、大容量存储和 FTDI 串口设备模型以及 HID 与日志代理过滤器,不再支持旧版 2.9.x 脚本。
源自 LAAS-CNRS 物联网安全研究的 Python 无线通信分析框架,内置低功耗蓝牙(BLE)、经典蓝牙、Enhanced ShockBurst、Mosart、Zigbee、Wi-Fi 和红外等轻量协议栈,由命令行解释器调用可串联的模块。用于协议分析时,它为各协议提供扫描、信息查询和嗅探模块,可发现 BLE 的 ATT/GATT 层并保存所得属性表,可通过 ADB 读取 Android 手机的 btsnoop 日志来监视 HCI 通信,支持读写 PCAP,并提供基于 HackRF 的实验性软件无线电接收路径,包含 FSK 解调器以及 BLE 和 Zigbee 解码器。作者已宣布弃用该项目,转而开发 WHAD 工具集。
Pawit Pornkitprasan 开发的 React 网页应用,用于在没有原始 .proto 文件的情况下解码 Protocol Buffers 数据;既有在线托管页面,也可在本地运行,所有解码都在浏览器中完成。粘贴的十六进制或 base64 数据(也可上传文件)会被拆分成表格,列出字节范围、字段编号、线路类型和内容:varint 同时显示为无符号整数、补码整数和 zigzag 编码整数,fixed32 和 fixed64 显示为整数和浮点数,长度分隔字段若能完整解析则显示为嵌套报文,否则显示为 UTF-8 字符串或字节。它会跳过开头的 gRPC 报文头,还可选择按 varint 长度前缀拆分连续的多条报文。
由 Pieter Robyns 等人开发的 GNU Radio 树外模块,借助软件定义无线电接收并解码 LoRa 物理层帧,实现了专利和博客文章中描述的调制特性。其接收器先对输入进行信道化,检测 LoRa 线性调频信号并与之同步、校正时钟漂移,再经格雷映射、解交织、去白化和汉明译码把符号还原为报头和载荷字节;消息套接字汇点可把结果通过 UDP 端口 40868 转发。附带的流图可解码录制的信号或实时采集的信号,README 列出 HackRF One、USRP B201、RTL-SDR 和 LimeSDR 为经过测试的接收设备。
Graham Clark 开发的 tshark 终端界面,设计上参考 Wireshark,便于在远程机器上(例如通过 SSH)直接检查抓包文件,而不必先拷回桌面。它可读取 pcap 文件、fifo 或标准输入,也可从一个或多个网络接口实时抓包;界面在按 Wireshark 显示过滤器筛选的数据包列表旁,同时显示解析后的数据包结构和十六进制视图。分析视图可以重组 TCP 和 UDP 流,支持搜索并可只看客户端或服务端数据;还能列出 Ethernet、IPv4、IPv6、UDP 和 TCP 会话并据此生成显示过滤器,以及搜索数据包内容。类似 Wireshark 的配置方案可以关联 Wireshark 配置,沿用其中的数据包着色规则。
由 Gonzalo José Carracedo Carballal 开发的 Qt 图形化数字信号分析器,基于他编写的 Suscan 与 Sigutils 库;用户手册称其主要用途是对参数未知的无线电信号进行逆向分析。它可从 SoapySDR 支持的 SDR 设备接收信号,或回放录制的 I/Q 与 WAV 文件,提供频谱和瀑布图视图,并可在时间窗口中测量截取的片段,支持载波恢复、变换和符号采样。检查器(inspector)标签页运行可由用户调节的 PSK、FSK 和 ASK 解调器,提供参数估计,并可转发解调后的样本;它还能解码模拟视频,并预听 AM、FM 和 SSB 音频。
Bradley Kemp 编写的一套 gRPC 调试工具,自称相当于 gRPC 版的 Fiddler 或 Charles。grpc-dump 作为本地 HTTP(S) 代理运行,把应用发出的每次 gRPC 与 gRPC-Web 调用记录为 JSON 流,包含服务名、方法名、元数据、可能出现的错误状态,以及每条消息的原始与解析形式;没有 .proto 文件时,它会以启发式方法解码消息。grpc-replay 重新发送记录下的请求并核对服务器响应,grpc-fixture 用保存的转储应答客户端,它们都构建在 grpc-proxy Go 库之上。
Holley EFI Parser 解析 Holley 的 DL、DLZ 数据日志及 ECU 实时 CAN 消息。Python 工具通过字节交换和 RLE 解压 DLZ,将不同版本的 DL 记录读入 pandas DataFrame,并用附带的 DBC 文件解码 CAN;文档还记录了专有的 29 位 CAN 标识符结构。
CAN Bus Parser 解析 VanMoof SA5 及后续车型的 CSV 或 candump CAN 抓包,重组多帧 CBOR 消息并映射设备 ID 与心跳帧。它还可对电子锁、变速器等组件进行实时或离线诊断。
Lutron Protocols 研究路创照明系统的 CCA 无线报文、CCX Thread 与 CoAP 消息、LEAP 处理器 API,以及 IPL Designer 集成帧。仓库记录设备与固件分析,并提供 TypeScript 工具用于抓取和解码流量、解析 Designer 项目文件。
Hermes 是一款 Flipper Zero 应用,用于识别未知 UART 设置并查看设备串口控制台。它通过边沿时间估算位时长,再用硬件 UART 收到的字节核对候选波特率与校验位,随后提供文本、十六进制和记录功能;项目说明检测阶段不会驱动发送引脚。
RoflLens 是分析《英雄联盟》ROFL v2 回放容器与网络传输的 Python 库和命令行工具。它可导出数据块及载荷;客户端版本、协议摘要和可执行文件哈希匹配时,可解码移动、施法、死亡等补丁相关事件。
LogicAnalyzer 是一套用于采集数字信号和解析通信协议的软硬件工具。它支持触发采集、多通道采集和 Sigrok 协议解码器。
BtleJuice 是用于拦截设备间蓝牙低功耗 GATT 操作的框架。其网页界面可显示截获的操作,并支持重放、修改数据和导出记录。
macOS 菜单栏应用,部分实现 Nearby Share 和 Quick Share,可与 Android 设备交换文件和链接。其协议文档根据 Chromium 源码和反编译的 Google Services Framework APK 描述该协议。
Impacket 是用于构造、解析网络数据包及使用协议实现的 Python 库。它涵盖 SMB、MSRPC 等协议,并附带示例工具。
REA 官方 CLI 与 MCP 服务,连接分析工具并保留调查证据及限制。
官方面向使用者的调查技能,包含目标路由、连接恢复与证据工作流。
社区 MCP 适配桥,以精选工具和 CLI 转发缩小宿主需要处理的工具面。
rea-jev
集成Claude Code 社区插件,在固定版本 REA MCP 外增加 Jev 路由和证据检查。
Claude Code mod 汇集收到的 REA Evidence、追踪 unknown,并校验发现所引用的证据 ID。
Eleven
集成以智能体为核心的桌面逆向工程应用,可打开 Mach-O、ELF、PE 二进制、Android 安装包和 GPU 内核,让任何支持 Agent Client Protocol 的智能体在同一窗口中阅读代码、重命名函数、添加笔记并提出补丁。原生代码通过内置的 REA 构建交由 Ghidra 反编译,也可改用 Rizin 和 jadx。它是围绕现有引擎的工作台,并非新的反编译器或重建案例。
Nous Research 在 Hermes Agent 官方插件库中发布的 REA 插件包。一次目录安装即可注册 REA 的 MCP 服务(固定为 rea-agents 6.4.0,经 npx 以 stdio 启动),并附带为 Hermes 改编的 REA 工作流技能和独立的崩溃分诊技能。约 170 个 REA 工具通过 Hermes 的按需工具检索提供;改编技能要求在运行程序、驱动应用或改动已连接 Android 设备的工具前先征得同意。
崩溃分诊工具,将 Linux 核心转储、运行时 panic、异常堆栈和 sanitizer 报告整理为 Markdown 缺陷报告,指出崩溃类型、首个用户代码帧和稳定签名。核心转储分析通过 REA 命令行读取崩溃记录与二进制布局,并可调用 REA 的 Ghidra 引擎为无符号函数生成伪代码;附带的 Claude Code 插件包含技能与只读 MCP 工具。它是围绕 REA 的调试集成,不是重建案例,诊断准确性仍为作者报告。
一个可直接克隆的中文工作区模板,用于在 Claude Code 或 Codex 中借助 REA,按“一个目标一个工作区”开展分析。它提供项目级 REA MCP 配置、要求结论标注 CONFIRMED/GUESS 并附证据位置的智能体规则、七套任务提示词,以及仅依赖标准库的脚本:为导入的原件生成哈希基线、创建可写分析副本,并去除 HAR 抓包中的取值。它负责组织分析而非完成分析,其验收只使用了合成样本。
第三方 Agent Skill,与 REA 自身的技能配合使用,把逆向分析证据整理成限定范围的需求、设计、分阶段实现与验证,范围可从单个功能或格式扩展到整个应用。可选安装程序能在用户的 REA SKILL.md 中加入带标记的路由段落,使相关重建请求同时加载两个技能。附带的评估套件由维护者编写、已接触源码的示例及字面预期值组成,并非模型基准。
基于 REA 对应用包、原生构建元数据和模型文件的分析生成带证据链接的 HTML/JSON 报告、摘要卡片及差异;组件与配置发现来自静态输入,并非实测流量、完整安全审计或重建软件。
Hex-Rays 官方 MCP 服务,让智能体操作 IDA 数据库,支持无界面分析和可选 GUI 联动。
通过 Ghidra 扩展和 MCP 桥接提供反编译、符号导航与重命名,支持 GUI 和无界面运行。
Binary Ninja 自带的 MCP 接口向智能体提供函数、符号、反汇编、中间语言和反编译文本。
社区维护的 Binary Ninja 插件与 MCP 桥接,支持在多个已打开的二进制目标间切换。
已有工作流可参考的社区 IDA 集成;维护者目前推荐迁移到 Hex-Rays 官方 MCP 服务。
基于 radare2 原生接口的 MCP 服务,提供二进制分析、会话复用和可配置的只读访问。
r2ai
集成在 radare2 内使用本地或远程模型,辅助解释函数、改善命名和反编译结果。
DAILA
集成跨 IDA、Ghidra、Binary Ninja 与 angr-management 的 AI 助手,用于函数摘要和命名辅助。
将 Ghidra 接入 RevEng.AI,用于函数相似性匹配、名称恢复、AI 解释及辅助标注。
LLDB MCP
集成LLDB 官方 MCP 接口提供调试会话与命令,使智能体可以设置断点、检查内存和单步执行。
社区智能体技能,覆盖分诊、无界面导出和证据报告,并明确说明 REA 及其他 MCP 服务的工作流。
针对 Binary Ninja 与 Ghidra 的分析技能,提供 MCP 工具使用、分析步骤和标注方法。
基于 PyGhidra 的 MCP 服务器,可分析 Ghidra 项目中的全部二进制,提供反编译、交叉引用、调用图、符号与字符串搜索、基于索引的语义代码检索,以及重命名、类型和注释编辑。另附基于 HTTP 的独立命令行客户端,以及可选的图形界面模式:由服务器自行启动 Ghidra 图形界面并加以操控。
独立智能体技能,使用普通命令行工具开展应用与二进制调查,提供批量初查、针对性源码/反汇编阅读,以及明确的已观察/推断/未知证据标记,并附有作者报告的 REA MCP 工作流小规模对照。
为修改用户自有的 PC 游戏打包智能体技能、三份角色说明、Python 命令行工具及预配置的 fal MCP 设置。其逆向分析指南把托管代码、原生代码和数据格式工作交给外部反编译器与调试器,并要求逆向得到的文件格式先通过往返检查再投入使用;其中一个示例附带按此方法实现的 Age of Empires II 精灵写入器。它是附带智能体实践笔记的模组工具包,不是游戏反编译重建,示例结果仍为项目报告。
在 Ghidra 内运行 MCP 服务器的 Ghidra 扩展,为智能体提供附带命名空间与交叉引用上下文的反编译、符号、字符串、数据类型、结构体与调用图工具,以及程序比对、重命名和 PyGhidra 脚本执行。其 README 将项目的特点归于面向大模型使用的工具设计:提供许多小工具,其模式在给定结构之外也能容忍其他输入,把可纠正的错误反馈给模型,并返回附带相关信息链接的简短片段。助手模式可让多个客户端同时连接已打开的 Ghidra 项目;无界面模式则由 ReVa 自行启动 Ghidra,项目仅在会话期间存在。
以 Zig 编写、同时支持 x32dbg 与 x64dbg 的原生 x64dbg 插件,在调试器内部通过 streamable HTTP 和 SSE 提供 MCP 端点。智能体可以加载或附加进程,设置软件、硬件、内存及条件断点,单步与跟踪执行,读取寄存器、调用栈、线程、内存映射、导入表、字符串和交叉引用,并执行任意 x64dbg 命令。随附的 SKILL.md 指南要求智能体在每次操作前先确认调试器状态。
由社区独立开发的 MCP 服务器,以无界面方式运行微软的 cdb.exe 和 kd.exe,使智能体能够打开并初步分析用户态与内核崩溃转储,连接 cdb 远程调试服务器和 KD 内核目标,并在可分别寻址的会话中执行任意调试器命令。其 README 建议希望在 WinDbg 内使用 AI 的用户选择微软官方的 WinDbg MCP,并把本项目定位为面向其他 MCP 客户端、远程 HTTP 使用和批量转储分析的替代方案;项目自称只是执行真实调试器命令的封装,而非自动修复工具。
封装 tshark 及可选的其他 Wireshark 命令行工具的 MCP 服务器,使智能体能借助 Wireshark 的解析器查询已保存的抓包文件:数据包列表与详情、流追踪、任意字段提取、协议层级与会话统计、针对非标准端口的 decode-as 规则、协议首选项、使用用户提供的密钥进行 TLS 与 WPA 解密,以及一个为 Modbus、S7comm、MQTT、Zigbee、BLE 等 25 种协议套用预设字段和过滤器的工具。解析类工具之外,另有安全启发式检测、实时抓包和抓包文件编辑等独立工具。
OpenBin 推出的开源终端智能体框架,让使用者自选的托管或本地模型处理二进制分析数据。它从 OpenBin 或 OpenAPK 项目、或本地 Ghidra 容器的分析结果中读取反编译函数、字符串、导入表和数据,按分诊、调查与起草流程工作,并保存恶意软件分析或漏洞研究报告草稿供人工审阅。它是输出草稿的分析框架,而非重建项目。
一款已停止开发的本地应用与 MCP 服务,把用户自有主机游戏的函数逐个交给 AI 编程智能体,用该游戏当年的编译器编译每次提交的 C 代码,只有链接后的结果与原始字节一致才算通过。它可从 ROM 或光盘镜像新建项目,也可在 decomp.dev 所列公开反编译项目的分叉中工作,由 objdiff 判定结果。其 2026 年 10 月 15 日的最后一次提交宣布停止开发,理由是反编译社区的反对;代码仍以 MIT 许可保留,但不再修复或发布新版本。
本地中间人代理与控制面板,捕获使用者自有电脑和设备的 HTTP/S 流量,存入 SQLite,并通过 /intercept 技能和命令行交给 Claude Code。API 文档、流量摘要等导出模式可用于调查请求模式与未公开接口。这是面向智能体、用于授权测试的抓包工具,不是重建案例,也未确立与 REA 的关联。
由 Ghidra 图形界面插件、独立无界面服务器和 Python MCP 桥接组成,提供含 209 个工具的目录:反编译、交叉引用、重命名、类型设定、结构体、注释与批量编辑,另有 P-code 模拟执行、经 Ghidra TraceRmi 框架的实时调试、共享 Ghidra Server 仓库与版本控制操作,以及基于哈希在不同版本二进制之间迁移函数文档。桥接在连接时只加载三组工具,其余由模型按需搜索并加载;命名与类型规范在工具层强制执行。其 NOTICE 说明,项目于 2025 年 8 月由 LaurieWired 的 GhidraMCP 衍生而来,此后已大幅重写和扩展。
基于 ICSharpCode.Decompiler 引擎的 stdio MCP 服务器,智能体可借此加载托管 .NET 程序集(包括从游戏目录中定位到的 Unity 游戏 Assembly-CSharp.dll),继而搜索符号、字符串字面量和特性,阅读反编译得到的 C# 或 IL,并追踪调用方、被调用方、使用位置和继承关系。多个程序集可以用别名同时保持加载,便于智能体对两个版本做结构比较或逐个比对方法体,README 举的例子是 RimWorld 模组移植。面向模组开发的工具还能根据所查看的成员,以文本形式生成 Harmony 补丁骨架、绕行存根和 Transpiler 锚点建议。
IDA Pro 插件,把 Hex-Rays 伪代码发送给使用者选定的托管或本地大模型,用于解释函数、添加注释或提出新的变量名与函数名,由使用者勾选后再应用。IDA 内的对话控制台还允许模型调用工具,读取反汇编、反编译结果、交叉引用、字符串和类型,对数据库进行重命名和注释,并运行 Python。README 提醒这些通用模型很可能出错,要求使用者审慎对待每一个结果。
在 Ghidra 内运行 MCP 服务器的 Ghidra 扩展,通过 streamable HTTP 和旧版 SSE 提供 100 个名称明确的工具(默认启用 93 个),涵盖伪代码、反汇编、P-code、控制流图与调用图、交叉引用、字符串、导入表和导出表,以及重命名、修改类型、注释和结构体推断。自 3.0.0 版起,服务器随项目管理器一同启动,智能体在 CodeBrowser 尚未打开时即可创建、打开、保存和关闭项目并打开程序;同一个共享服务器会跟踪当前获得焦点的 CodeBrowser 窗口。扩展另附六个程序资源模板、七个分析提示词,以及在 analyzeHeadless 下运行服务器的脚本。
Claude Code 插件及智能体技能,驱动 jadx 与 Fernflower/Vineflower 反编译 Android 的 APK、XAPK、JAR 和 AAR 文件并记录其 HTTP 接口。它先用指纹步骤识别应用的框架、HTTP 栈、混淆程度和原生库,再通过 shell 脚本在 Retrofit、OkHttp、Volley、Ktor 和 Apollo/GraphQL 等栈中提取接口与鉴权特征,追踪从界面到网络层的调用链,并利用 R8 无法剥除的元数据还原原始的 Kotlin 类名。技能通过自带的 Claude Code marketplace 安装,其脚本也可独立运行,并提供 /decompile 斜杠命令。
Python 命令行工具和 stdio MCP 服务器,用于检查模型对二进制文件提出的结构化断言,例如某偏移处的字节或类型化数值、字符串、导入与导出、指令助记符、模拟执行结果,以及经测试或经 Z3 证明的等价性,并连同工具实际观察到的证据返回 VERIFIED、REFUTED 或 INCONCLUSIVE。已确证和已驳斥的结果保存在磁盘上按二进制文件划分的台账中,重置后或之后的会话可据此继续,而不依赖摘要;reconstruct 循环则让模型不断提出断言,直至一组有信息量的断言通过验证。另有 rollover 命令,用文件交接和新会话取代 Claude Code、Codex、Gemini CLI 或 OpenCode 的上下文压缩。
Gradio 对话应用,其 LangGraph ReAct 智能体分析使用者上传的 x86 Linux ELF 二进制文件:列出并反汇编函数,用 Ghidra 反编译,调用 radare2 和 gdb,并在特权模式的 Kali Linux 运行容器中执行 shell 命令和 Python 脚本。工作区以二进制文件的 SHA-256 为键,再次上传同一文件即可恢复会话。该项目源自一项学校研究计划,其 CTF 成绩为作者自述。
命令行分析流水线,通过 PyGhidra 在进程内运行 Ghidra,请 Claude、OpenAI 或兼容 OpenAI 接口的模型为去符号二进制文件中的函数、类型和参数命名,并沿调用图自底向上处理,使调用者能看到已命名的被调函数。它先匹配已知库函数与密码算法特征,再把反编译结果疑似混淆的函数交给可调用工具、借助 z3 化简的去混淆环节,将结果应用到 Ghidra 程序中,并导出带注释的 C 代码和 analysis.json 文件。README 称其为首个智能体逆向工程师,这一说法以及其中的准确性和成本数据均为作者陈述。
为玩家已安装的单人游戏加入联机或分屏合作模式的智能体操作手册、技能集与 stdio MCP 服务器。智能体或修复已有的合作模组,或逆向分析游戏及其引擎从头实现,再用游戏内机器人测试并把笔记回馈给仓库;MCP 服务器则可检索收录 223 个合作项目和 32 处空缺的目录,根据安装目录识别游戏引擎,并记录可执行文件的身份信息。其 README 和逆向分析技能建议原生代码部分搭配 REA 使用,另有两份游戏笔记报告了借助 REA 的 Ghidra 通道得到的观察结果。
IDA Pro 9.x 插件与 PowerShell 批量提取脚本,可把 Windows PE 文件转换为 AI 编程智能体能够读取的材料:每个二进制文件对应一个 SQLite 数据库,内含 PE 元数据、函数签名、反汇编、Hex-Rays 伪代码、交叉引用、字符串、栈帧、循环与危险 API 调用;还可选择输出分组的 C++ 与汇编文件,每个函数附带调用者、被调者与字符串信息头,并生成 JSON 索引。它可以无界面地处理目录、文件列表或正在运行进程加载的模块,也可以在已打开的 IDA 数据库上交互运行,并保留分析者所做的重命名和注释。处理这些输出的智能体命令来自独立的 DeepExtractRuntime 项目。
面向匹配反编译的插件式流水线,在现有反编译项目中逐个处理函数:m2c 生成 C 初稿,decomp-permuter 对其做变异,Claude 借助编译并比对的工具改写代码,只有编译出的目标文件与目标汇编一致时才由 objdiff 判定通过。本地 Decomp Atlas 网页应用为已匹配和未匹配函数建立索引,附调用图和代码向量,帮助挑选下一个函数并生成提示词;HTML 报告汇总每次运行结果。可选的集成插件会把匹配成功的 C 代码放入 git 工作树,检查构建,并可提交、推送或发起 PR。
开源 Python 智能体,以 auto-re-agent 之名发布于 PyPI。它依据 Ghidra 提供的证据为已编译程序中的函数起草 C/C++ 实现,再由可单独配置的检查模型在有轮数上限的修复循环中审阅每份草稿。候选代码须先与反编译、汇编、控制流和 P-code 证据做结构比对,再通过项目自己的构建、测试及可选的差分命令和 11 项启发式一致性信号,才会被接受。README 称这些关卡只是保守的证据,并非等价性证明;工具把候选代码写入覆盖层,而不直接修改源码树。
为 LLDB 调试会话加入 MCP 桥接的扩展,改编自 ida-pro-mcp:插件的 mcp start 命令通过本地 JSON-RPC 提供 18 个调试器函数,再由依据这些函数生成的 FastMCP stdio 服务器把它们开放给 Claude Desktop 等 MCP 客户端。这些工具可创建、启动或附加调试目标,单步执行,管理断点,读取调用栈、变量、反汇编和内存,计算表达式,并可执行任意 LLDB 命令。同一脚本还保留了 lisa.py 早先的漏洞利用开发辅助命令,包括 checksec、寄存器与栈上下文视图、Mach-O 文件头与加载命令显示、Capstone 反汇编,以及用于崩溃分级的 exploitable 命令。
基于 Node.js 的 MCP 服务器,为 LLM 客户端调用 Wireshark 的 tshark;其 README 将用途定位于威胁狩猎、网络诊断和异常检测。三个工具会实时抓取数秒流量,分别返回一组固定的 IP、端口、TCP 标志和 HTTP 字段,tshark 的协议层级统计,或 TCP 会话统计;analyze_pcap 则从已保存的抓包文件中返回 IP、端口、HTTP URL 和协议栈。解析输出之外,其余工具会把抓到的 IP 与 URLhaus 黑名单比对,或在抓包文件中扫描 HTTP Basic、FTP、Telnet 和 Kerberos 凭据。
Binary Ninja 插件,借助 llama.cpp 在本机运行语言模型,依据 HLIL 反编译输出建议函数名;README 称下载模型后即可完全离线运行。它可以重命名当前函数,按调用图后序遍历重命名所有仍沿用默认 sub_ 名称的函数,或只处理其中引用字符串、导入符号或库符号的函数。作者把它定位为研究性概念验证,目前唯一实现的任务是函数命名。
IDA 插件,前身为 WPeChatGPT,受 Gepetto 启发:把函数的 Hex-Rays 伪代码发送给兼容 OpenAI 接口的模型(OpenAI、DeepSeek 或其他兼容端点),再将模型的分析结果以注释形式写回 IDA。交互功能可说明函数的用途与行为、建议变量名、用 Python 重写 XOR 解码等小型例程,并标记潜在漏洞。3.0 版新增 WPeServer,即运行在 IDA 内的 TCP 命令服务器,外部控制器或独立的 wpegpt-analyzer 技能可借此以无界面方式执行 light、full 或侧重漏洞的分析流程,提供字符串分类、网络指标提取、函数可疑度评分,并输出 JSON 与 Markdown 报告。
由 GhidrAssist 作者 Jason Tang 开发的 IDA Pro 插件,提供一个可停靠的 PySide6 面板,借助大语言模型分析当前打开的数据库。各标签页可解释反编译或反汇编后的函数并附安全摘要,保存带上下文宏和可选 ReAct 智能体模式的持久对话,为函数、变量和类型提出重命名建议并在审阅后应用,还能构建涵盖函数、调用、数据流和安全特征的语义知识图谱,并检索分析人员添加的参考文档。模型可以调用内置的 IDA 工具或外部 MCP 服务器;SymGraph 标签页则通过托管的 symgraph.ai 服务导入和发布名称、类型及图谱数据。
Ghidra 扩展,把单个函数的反编译 C 代码发送给使用者选定的托管或本地大模型,并将回复流式显示在 GhidraGPT 控制台中。反编译视图和列表视图的右键菜单提供三项操作:解释函数;改写函数,把恢复出的函数名、参数名与变量名、类型、函数原型及行内注释写回程序;以及审查函数中可能存在的安全问题。每项操作只使用当前函数的反编译输出,README 称审查结果只是需要核实的线索,并非严谨的静态分析。
由 GhidrAssistMCP 作者 Jason Tang 开发的 Ghidra 扩展,在 CodeBrowser 中加入多标签页的 GhidrAssist 窗口,借助大语言模型分析当前打开的程序。各标签页可解释反编译或反汇编后的函数并附安全摘要,保存支持上下文宏、MCP 工具调用和可选 ReAct 智能体模式的持久对话,为函数和变量提出重命名、类型修改及结构体建议并在审阅后应用,还能构建涵盖函数、调用关系和安全特征的语义知识图谱并进行社区检测,同时可借助 Lucene 检索分析人员添加的参考文档。SymGraph 标签页则通过托管的 symgraph.ai 服务导入和发布名称、类型、图谱数据及文档。
Rikugan
集成IDA Pro 与 Binary Ninja 插件,在反汇编器内运行自己的智能体循环:使用者选定的模型以流式输出作答,并调用 60 多个进程内工具,涵盖导航、反编译、反汇编、交叉引用、字符串、类型、注释、脚本以及宿主 IL 或微码编辑。编排器可先梳理整个二进制文件,再并行派出子智能体;分析结论保存在数据库旁的 RIKUGAN.md 中;实验性命令可按自然语言描述打补丁,或在 Binary Ninja 上去除控制流平坦化等混淆。README 称该项目是与 Claude Code 一起“氛围编程”完成的。
面向智能体的命令行工具,用于操作已在 Binary Ninja 图形界面中打开的数据库,通过监听本地 Unix 域套接字的配套插件连接。智能体可读取反编译结果、中间语言、反汇编、交叉引用、调用点、类型和数据,导出多函数打包结果,并在 Binary Ninja 内运行不受限制的 Python;重命名以及函数原型、结构体和类型修改可先预览,应用后会校验结果,失败时回滚。较大的文本输出会转存为附带哈希的产物文件,随包提供的 Codex 技能说明了使用流程。
由 Florian Drechsler 编写,包含一个 IDA Pro 插件和一个 TypeScript MCP 服务器:插件在 IDA 内的 127.0.0.1:9045 启动 HTTP 服务,stdio 方式运行的 MCP 服务器把智能体请求转发给它。其 12 个工具可执行以内联代码或文件路径传入的 IDAPython 脚本,列出函数、导出项和字符串,搜索名称、立即数和字节序列,返回某地址的入向与出向交叉引用,并反汇编指定地址范围。它与本合集已收录的 mrexodia 版和 Hex-Rays 官方 IDA MCP 服务器是不同的代码库。
仅以无界面方式运行的 MCP 服务器,通过 PyGhidra 驱动 Ghidra,设计为与智能体运行在同一容器中,而不是连接 Ghidra 图形界面。其 34 组共 212 个工具涵盖程序与项目生命周期、反汇编、反编译与 P-code、补丁与内存修改、符号、引用、类型与结构布局、搜索和图提取,其他需求可通过直接执行 Python、调用 Java API 或运行脚本完成。程序默认以只读方式打开,修改在支持撤销与重做的事务中进行;伪后端让开发和 CI 无需安装 Ghidra 即可运行,ghidra_cli 客户端则把同一套工具提供给不使用 MCP 的命令行和智能体。
Ruben Marks(mrphrazer)开发的第三方、仅无界面运行的 MCP 服务器,向智能体提供庞大的 Binary Ninja 工具集,项目称共 181 个工具、分 36 个功能组,涵盖反汇编、中间语言、交叉引用、类型、搜索、带撤销/重做事务的打补丁,以及通过 binja.eval 和 binja.call 执行任意脚本。它通过 stdio 或 TCP 使用 MCP 协议,附带一个由模式生成参数的命令行客户端 binja_cli,设计上与智能体运行时位于同一容器内。假后端模式可在没有 Binary Ninja 许可证的情况下运行 CLI、测试和功能模糊器,实际分析则需要支持无界面模式的许可证。
一个智能体技能,让 AI 智能体通过无界面的 idat 在 IDA Pro 中对恶意样本进行静态初步分析。初始化脚本会生成 IDA 数据库,并导出基本信息、导入表、导出表、入口点反编译结果和过滤后的字符串;执行脚本则可对该数据库运行 IDAPython 代码片段或脚本文件。SKILL.md 规定只做静态分析、采用自顶向下的分析方法,并要求把大型字符串列表交给子智能体处理;附带脚本提供加密常量识别、导出函数大小检查,以及 REAI——它把反编译出的函数发送给配置好的 OpenAI 兼容模型,生成功能说明并以 AI_ 前缀重命名。
由 GhidrAssist 与 IDAssist 作者 Jason Tang 开发的 Binary Ninja 插件,在侧边栏加入 BinAssist 面板,借助大语言模型分析当前打开的二进制。各标签页可在 LLIL、MLIL 和 HLIL 层级解释函数,也能解释单条指令;保存支持上下文宏、MCP 工具调用和可选 ReAct 智能体模式的对话;为函数和变量提出带置信度评分的重命名、类型修改及结构体建议,并在审阅后应用;还能构建涵盖函数与调用关系的语义图谱,进行社区检测并查找从输入源到危险调用点的污点路径,同时可检索分析人员添加的参考文档。SymGraph 标签页则通过托管的 symgraph.ai 服务导入和发布名称、图谱数据及文档。
MCP 服务器,将 radare2 及 r2ghidra、LIEF、Capstone、YARA、CAPA、Detect It Easy、binwalk、angr、Volatility3、Scapy、Sleuth Kit 等引擎封装为 177 个带类型的工具,供 Claude、Cursor 等 AI 客户端调用。工具涵盖反汇编与反编译、二进制解析、字符串、IOC 与能力提取、ESIL 模拟与符号执行、YARA 扫描、内存、PCAP 与磁盘取证、源码模式扫描,以及带 MITRE ATT&CK 映射的会话报告,另有 22 种引导式分析提示词和按二进制划分的 MCP 资源。文件访问限定在配置的样本工作目录内,服务器通过 stdio 或 HTTP/SSE 运行,通常使用项目提供的 Docker 镜像。
飞针探测控制套件,旨在让编程智能体或操作员在 GRBL 3018 型 CNC 上处理电路板:先在平台上定位电路板,再拍摄带 XYZ 坐标的 USB 显微镜画面并生成标注焊盘、引脚和芯片的地图,最后探测经操作员批准的目标点。Python 封装、Flask 仪表盘和 AGENTS.md 安全规则让每次移动都处于示波器监测的光电限位之下,一旦触发即暂停进给并进入 STOP 状态,不会自动恢复。公开的代码涵盖设备控制、相机与运动的标定,以及地图和探测候选点的审核;README 把定位、拼接和标注电路板描述为智能体的任务。
一个 Python 命令行工具,可把二进制、IDA 数据库、Android APK、.NET 程序集或整个应用目录导出为供编码智能体阅读的类源码项目树:还原的 C 代码(APK 为 Java,.NET 为 C# 和 IL)及对应汇编与函数摘要、还原的头文件和类型、节区数据转储,函数、字符串、导入、导出、可达性和调用图聚类的 JSON 索引,以及生成的 AGENTS.md 和 CLAUDE.md。它可调用 IDA、Binary Ninja、配合 r2ghidra 的 radare2 或 angr;处理目录时按各平台加载器规则,把每个导入项链接到定义它的文件中的函数。其 tocode mcp 服务会保持反编译器打开,让智能体记录名称、类型和注释,并只重新生成受影响的文件。
把网站实际产生的 HTTP 流量转换为带类型 API 客户端的 Python 命令行工具。浏览器会话可由用户通过 Playwright 操作,也可由 AI 智能体借助 Playwright 或 Chrome DevTools MCP 服务、或 Vercel 的 agent-browser 命令行来驱动,并记录为 HAR 文件;随后由经 Claude Agent SDK、OpenCode、Cursor 或 GitHub Copilot 运行的编码智能体读取该记录,以十种语言之一编写客户端、README 和用法示例。另有独立的 collector 模式,借助网页搜索与抓取收集 JSON/CSV 结构化数据。
以 Rust 编写的 MCP 服务器兼 Codex 插件,为编程智能体提供可审计的本地串口设备访问:按 USB 元数据识别端口、发送分帧请求,并把收发的每个字节记录到无损的 .obcap 捕获文件中。探索中确认的设备行为保存为 YAML 设备配置、类型化命令和工作流,可校验校验和并解码标量、位字段和记录数组;同样的命令还能在没有硬件时对捕获文件重放。其完整演示解码的是作者为 ESP32-S3 测试板编写的小型二进制协议 OBP/1,而非现有的厂商协议。
用于 Android APK 分析的 MCP 服务:Python FastMCP 进程通过 stdio 与智能体通信,并驱动一个常驻本地的 JVM 守护进程,后者以库的形式内嵌 JADX 1.5.6,因此无需 JADX 图形界面,已加载的 APK 也能在会话之间保持就绪。它的 23 个工具可返回类列表、超出大小上限时改为大纲的反编译源码、方法、字段、smali、基于 dex 索引的交叉引用与被调函数、类型层次与重写关系、导出组件和深层链接组件、清单与资源文件,并能在整个 APK 中按影响类别扫描框架敏感调用点。
Python 命令行工具与 stdio MCP 服务器,用于推断只配有厂商应用的 USB 设备所用的协议。使用者在厂商应用中逐项操作时,它通过 usbmon 或 USBPcap 抓取流量,为每次操作记录标签,按操作比对数据包并推断消息格式:固定字节、滚动计数器、带缩放的 8 至 32 位数值、查找表、打包位字段,以及求和、异或或 CRC 校验。它还能解码设备回复、带会话令牌的握手和发往设备屏幕的图像流,在报告中把每个推断出的字段关联到 Wireshark 帧号,并生成 pyusb 驱动和 Wireshark Lua 解析器。
IDA Pro 导出工具,不走 MCP,而是把分析好的二进制导出为普通文件,交给 Cursor、Claude Code 等 AI 编程工具使用。它把每个反编译成功的函数写成一个 .c 文件(反编译失败时改为 .asm),文件头列出函数名、地址、调用者和被调用者;同时导出字符串表、导入表和导出表,按 1 MB 分块输出各段内存的十六进制转储,并记录回退、失败和被跳过的库函数。它提供两种形态:适合中小文件的 IDA 插件(Export for AI,快捷键 Ctrl-Shift-E),以及适合大文件或批量导出、可跳过 IDA 自动分析的 Rust 命令行程序。
用 Rust 编写的无界面 MCP 服务器,通过 idalib 驱动 IDA Pro,让 Claude Code、Codex CLI、Gemini CLI、Cursor 等智能体无需 IDA 图形界面即可打开和分析二进制文件。针对 Apple 目标的操作只需一次工具调用,包括选择通用 Mach-O 中的架构切片、加载 dSYM/DWARF 以及从 dyld_shared_cache 加载模块;除完整工具集外还提供 28 个工具的精简配置,run_script 可执行 IDAPython 并以 JSON 返回结果;重命名、注释、补丁和类型应用等修改类工具每次只接受一个地址或精确的符号名。save_idb 可写入检查点,崩溃或卡死的 IDA 工作进程会被自动替换。
让智能体通过同一个端点同时分析多个 IDA Pro 数据库的 MCP 服务器。装有其插件的数据库在打开时会自动注册,也可加入无界面的 idalib 会话;路由器最多提供 76 个工具,涵盖初步分析、反编译与反汇编、交叉引用与调用图、搜索、类型、重命名、注释和补丁,并提供等待自动分析完成的机制,让智能体在 IDA 分析稳定后再下结论;其 IDA 工具实现来自 ida-pro-mcp 项目。函数相似度搜索可在单个二进制内或跨二进制比较函数,依据不依赖函数名的指令 MinHash、API/字符串/常量锚点和控制流结构,并可选用本地神经网络召回,不会上传任何数据。
通过原生插件和 Python MCP 脚本把 LLM 客户端连接到 x64dbg 与 x32dbg 调试器的 MCP 服务器。它提供 40 多个基于 x64dbg SDK 的工具,已用 Claude 和 Cursor 测试;智能体可以查询寄存器、在模块中搜索字节模式并控制调试会话。README 建议把可执行文件的完整路径告诉模型,以便它在目标崩溃或卡住时通过命令执行工具重新启动,并建议从 GetModuleBase 开始,以确保查询使用有效地址。
IDA Pro 数据库的 SQL 接口,把二进制的分析结果以 30 多张实时虚拟表的形式提供给智能体和脚本。这些表涵盖函数、段、名称、导入、交叉引用、基本块、指令、字符串、类型、反编译结果和注释,部分数据库内容也可通过它们修改。它可作为独立命令行程序运行(可借助 idalib 打开原始二进制文件),也可作为 IDA 命令行下拉菜单中的插件、HTTP REST 服务器或 MCP 服务器使用,还能通过面向 Claude Code、GitHub Copilot CLI 和 Codex 的技能插件使用,并支持同时处理多个数据库。
Exoproc 通过命令行和 MCP 服务向智能体开放 Windows x64 进程检查与插桩。它可枚举进程、读取和扫描内存、安装函数钩子、重定向线程上下文,并编译 C 代码片段供目标进程执行。
OpenOCD SPI Dump Plugin 引导智能体经目标 MCU 的 SWD/JTAG 调试连接提取 SPI 闪存或 EEPROM 内容。仓库提供 MCU 寄存器表、驻留 RAM 的 C 读取程序、链接脚本、OpenOCD Tcl 模板,以及 JEDEC 识别和转储核对流程。
dos-mcp 将智能体连接到 js-dos 中运行的 DOS 程序,用于交互式逆向分析。MCP 工具可发送键鼠输入、抓取画面、交换客户机文件,并读取或搜索模拟内存;文档以 Ultima Underworld 展示存档格式对比流程。
x64dbg MCP 通过原生 x64dbg 插件和 C# stdio MCP 服务器,让智能体分析 Windows 二进制程序。插件将本地 HTTP 请求转给 x64dbg bridge API;MCP 工具提供反汇编、内存与寄存器访问、模块查看、执行控制和断点操作。
adb-mcp 将 Android Debug Bridge 操作封装为供智能体使用的结构化工具,用于调查设备上的应用行为。它可启动应用、检查界面层级、采集 logcat 日志与截图、提取文件并配置端口转发。文档给出了通过界面操作和日志调查应用内动作的命令示例。
website-to-cli 是根据网站流量构建命令行客户端的智能体技能。其脚本录制 HAR、过滤请求,并整理端点的方法、路径、参数、请求与响应结构及鉴权头。技能随后使用 Bun CLI 模板构建客户端。仓库提供 crates.io 和 Hacker News 搜索的客户端示例。
reverse-workbench-skill 是适用于多种智能体环境的技能包,将 APK、原生二进制、固件、前端 JavaScript 和网络流量调查分派到对应流程。文档列出 Ghidra 无界面导出、二进制差异分析和证据记录路径,也包含其他安全分析技能及辅助脚本。
MindNode MCP Server 让智能体访问 macOS 上的 MindNode Next 思维导图。读取流程解析应用的 SQLite 资料库、protobuf 快照、Apple LZ4 压缩数据和 CRDT 操作,输出 Markdown 大纲;其他 MCP 工具可读取预览图或通过应用的 Markdown 导入器新建导图。
OGhidra 是一款将 AI 接入 Ghidra、通过自然语言分析二进制文件的集成工具。它支持函数分析、自动重命名、恶意软件模式检测,并可使用 MCP 或 PyGhidra 后端。
aiDAPal 是一款 IDA Pro 插件,使用针对 Hex-Rays 伪代码训练、在本地运行的语言模型辅助代码分析。用户可以先决定是否接受生成的修改,再更新伪代码。
x64dbg MCP Server Plugin 是适用于 x64dbg 和 x32dbg 的 MCP 服务器插件,使外部应用和 AI 智能体能够通过 HTTP 控制调试过程。它提供执行控制、内存、寄存器、断点和反汇编工具,以及调试器上下文资源和工作流程提示。
JEB-MCP 是由 MCP 服务器和 JEB Pro 脚本组成的集成工具,让 MCP 客户端在 JEB 中查看和重命名 Android 应用的内容。README 列出的命令包括读取反编译代码、检查类与方法,以及重命名。
re-shell 是一个基于 Nix flake 的开发环境,为 Claude Code 提供逆向工程工具和工作流程。它会根据待分析的文件,为 Windows 二进制文件、Android 安装包和网页流量记录启用相应指导。
ghidra-rpc 是一个命令行集成工具,让 AI 编程助手通过持续运行的 Ghidra 会话分析二进制文件。它以结构化 JSON 返回反编译、符号标注、类型恢复、修补和二进制版本比较等操作的结果。
r0idamcp 是一个单文件 MCP 服务器,可将 IDA Pro 连接到支持 MCP 的助手,用于自动化逆向分析。它通过 SSE 连接提供函数和字符串查询、反编译、交叉引用、注释及重命名等功能。
SOMCP 是在 Android 设备上分析和修改原生 SO 库的 MCP 服务器。它向 MCP 客户端提供 ELF 分析、反汇编、补丁以及可选的动态分析工具。
REA 维护者整理的通用逆向资源目录,适合查找基础知识与相邻工具。
中英双语的 REA 与其他 AI 辅助逆向案例合集,附来源并区分作者报告、进行中的工作和复现状态。
围绕明确的验收检查整理 AI 辅助游戏反编译、原生移植、静态重编译和工具,并另设实践文章与讨论分类。适合寻找一手报告,比较不同项目如何定义正确性。
经人工审核的网站目录,收录游戏、固件、文件格式、API 与协议、应用及旧软件领域的 AI 辅助逆向项目。每个条目链接一手来源,记录作者报告的模型、工具、耗时、费用与结果,并标注源码公开、复现步骤、真实硬件测试和第三方确认四项检查。
长期维护的单 README 恶意软件分析工具与资源清单,分为 17 个一级章节,涵盖开源威胁情报、检测与分类、在线扫描器与沙箱、文档与 shellcode 分析、反混淆、调试与逆向、网络、内存取证、Windows 取证痕迹,以及书籍和其他参考资料。每个条目是链接到外部工具或资源的名称并附简短说明。仓库中另附有该清单的简体中文翻译。
面向 IoT、嵌入式、工业和汽车系统的单 README 安全研究资料清单,按章节组织,涵盖硬件攻击、无线协议(BLE、Zigbee/Z-Wave、LoRa、Matter/Thread、蜂窝、NFC/RFID、Wi-Fi、USB)、固件安全(含提取、静态与动态分析和安全启动)、网络与 Web 协议、云后端、移动应用,以及工业和汽车相关主题。每个条目链接到外部的工具、演讲、论文、文章或课程并附简短说明。README 称收录 900 多项资源。
面向汽车和嵌入式领域的单 README CAN 总线工具、硬件与资源清单,分为逆向工程工具、测试设备与模拟器、上层协议(OBD-II、UDS、ISO-TP、J1939、J2534)、通用与 Linux 实用工具、CAN 数据库格式(DBC、KCD)及转换器,以及面向 ARM、Arduino、ESP32、单板计算机和 FPGA 核心的硬件等章节。每个条目链接到外部项目或资源并附简短说明。
以单个 README 维护的清单,把 CAN 报文标识符与载荷解码资料的链接汇集在一处,按车辆品牌和车型分组,涵盖约 30 个汽车品牌及品牌集团,另有 BMW、Ducati 和 KTM 摩托车。条目链接到其他地方维护的 DBC 文件、解码表格、wiki 页面、抓包笔记和小型库;开头的 Common 部分收录 comma.ai 的 opendbc 和 OpenGarages CAN ID 参考等通用数据库。
一份非官方的中英双语 awesome 清单,收录 AI 智能体逆向分析并重建过的项目,并按各案例自身来源能否证明使用了 REA 加注标签。内容包括 REA 的官方资源与展示案例;游戏、应用、硬件与协议以及安全评估方面的社区案例;未确认使用 REA 的更广泛 AI 逆向与净室重写项目;插件、指南与研究、相关 MCP 工具、其他清单和媒体报道;另有一节讨论法律问题与争议。
网站及 GitHub 列表,收录 81 个在没有原始源码的情况下重建现有软件或游戏的项目:由 AI 构建的净室应用(如 ArtCraft 套件)、借助编码智能体重写的软件、AI 辅助的游戏反编译、游戏引擎重新实现、由人主导的反编译与移植、Wine 和 ReactOS 等经典净室实现,以及重建工具。每个条目说明重建对象,并带有方法标签和 AI 参与程度标签;网站支持搜索、筛选,并可按星标数或近期活跃度排序。另有一篇指南介绍借助 REA 进行净室重建的流程。
以单个 README 维护的游戏反编译、重编译和反汇编项目清单,约 480 项,按主机平台分组,从 NES、Game Boy 到 Xbox 360、PC 和移动平台,另有规模较大的未分类部分。每个条目是链接到对应项目的游戏名,大多指向 GitHub;按维护者的披露政策,有 AI 参与的条目以警告符号标出。
自动生成并附评分的公开游戏重建项目索引,涵盖反编译、反汇编、静态重编译、源码移植、引擎重制及浏览器移植。每日任务合并多个上游目录与登记站点,结合 GitHub 和 decomp.dev 元数据,剔除失效链接,再由数据文件重建 README 和网站。适合用来发现项目;其评分是自动启发式结果,并非人工审阅。
以单个 README 维护的非官方 PC 移植指南,收录基于反编译或重编译、且便于玩家安装的主机游戏移植。76 个游戏条目按 Nintendo、PlayStation、Xbox、SEGA、独立游戏和 J2ME 分组,每项推荐一个移植版并附简短安装说明,常同时链接所依据的反编译项目和其他移植版;“实用工具”部分另列两个重编译启动器。
篇幅不长、只列链接的机器码反编译阅读清单,最近一次更新在 2023 年。45 个链接涵盖奠基性学位论文、编译器与程序分析书籍、反编译器产品和项目,从中间表示到类型、控制流和标识符恢复的反编译流程主题,早期神经网络反编译论文,以及二进制与源码匹配。
remade.wiki 的源码仓库。remade.wiki 是由社区整理的目录,收录闭源软件的开源重新实现,以创意、办公和工程类应用为主。每个条目是一份 YAML 记录,注明被重现的原软件、编程语言、平台、许可证,以及自报的开发状态、兼容程度和局限;目录还收集尚无人重新实现的软件请求。
以单个 README 维护的 awesome 清单,2017 年 1 月创建,以 KaliTut 名义维护,共收录 139 个逆向工程链接,分为 16 个部分:书籍、课程、练习目标、十六进制编辑器、二进制格式工具、反汇编器、二进制分析、字节码分析、导入表重建、动态分析、调试、Mac 解密、文档分析、脚本、Android 和 YARA。条目大多只有工具或资源名称及链接,少数附一行用法说明,内容偏重 Windows 与 macOS 工具以及恶意软件分析。
James Stevenson 于 2023 年创建的 awesome 清单,收录 Android 逆向工程的培训、工具和资源,共 92 个单行条目,其中 16 个以星标注为优质且较新的资源。内容涵盖课程、视频和书籍,静态分析与反混淆、网络分析与基于 Frida 的插桩、反编译器和恶意软件分析工具,文档与案例研究,CTF 与 crackme,混淆与反逆向,以及一个简短的固件与内核部分。
David Weinstein 于 2016 年 5 月创建的 awesome 清单,收录基于或围绕动态插桩工具包 Frida 的程序库、脚本、工具、演讲和文章。全部 82 个条目分为程序库(约一半是 NowSecure 的 Node.js 模块)、脚本合集与项目、演讲与论文、基于 Frida 的工具(如 r2frida、objection、friTap 和 Fridump)、视频、博客文章以及社区链接,大多附有一行简介。
由 GitHub 组织 Allsafe 自 2019 年 12 月起维护的 awesome 清单,收录 Ghidra 脚本、插件、扩展、学习资料和相关服务。全部 49 个条目包括 36 个脚本与扩展,从恶意软件分析和加密常量查找工具,到 Go、JNI、EVM 和 EFI 辅助工具、Python 与 Jupyter 桥接、P-code 模拟以及补丁对比关联器;10 份书籍、演讲和课程资料;以及 r2ghidra-dec、Ghidraaas 等 3 个相关项目,每项附一行简介。
以表格形式整理的网络协议自动化逆向工程研究清单,收录 71 篇论文,从 2004 年的 Protocol Informatics 项目到 2021 年的 NetPlier。清单以三篇综述为基础并持续扩充,按所用方法、输入(网络流量记录或执行轨迹)与输出(报文格式、状态机或其他产物),以及评估所用的文本、二进制或混合协议对各方法进行比较,附完整参考文献,另有一张列出少数公开代码论文的简表。
规模很大的逆向工程链接清单,2019 年以中英文自动导出,分精简版和完整版 README。完整英文版列出约 3600 个开源工具和 2300 篇文章及视频,按 Windows、Linux、Apple 平台和 Android 分组,并为 IDA、Ghidra、x64dbg、OllyDbg、WinDbg、radare2、Cuckoo、Binary Ninja 及动态二进制插桩设有工具专区。工具条目附有导出时记录的 Star 数、编程语言和上游简介。
以单个 README 维护的 Android 与 iOS 应用安全资源清单,共约 245 个链接,按平台分为博客、论文与教程、书籍、课程、工具、故意留有漏洞的练习应用、演讲及杂项。Android 工具又细分为静态分析、动态分析和在线 APK 分析服务;smali/baksmali、radare2、Cutter、Bytecode Viewer、Frida、Objection 等逆向工程条目与渗透测试指南和漏洞分析文章并列。
以单个 README 维护的可执行文件加壳资源清单。加壳指对 PE、ELF 等可执行文件(包括 Android 应用)进行打包、压缩、编码、加密、变形、保护或虚拟化,清单也涵盖已加壳文件的检测与脱壳。约 770 个条目分为文档、注明日期的学术论文、样本数据集、按年代(2000 年以前至 2010 年以后)排列的加壳工具,以及用于加壳识别、脱壳和二进制分析的工具。
以单个 README 维护的中文清单,收录与 AI 结合的逆向工程项目,按 JavaScript 逆向、二进制与原生分析、Android 与 iOS 安全、浏览器自动化与流量分析分组。条目大多是 MCP 服务器、面向 Claude、Cursor、Codex 的智能体技能,以及把大语言模型接入 IDA Pro、Ghidra、Binary Ninja、JADX、Frida 等工具的 IDE 插件。每一行是项目名称、链接和一句中文说明。
可排序、可筛选的 Hex-Rays IDA Pro 插件清单,收录 618 个插件、加载器、处理器模块和脚本,以 GitHub Pages 表格发布,并在 README 中生成静态副本。每个条目链接到对应项目(几乎都在 GitHub 上),附简短说明;如有记录,还标出实现语言(C++ 或 Python)、反编译器、反混淆、加载器、调试、集成等分类标签,以及项目的最近更新日期。该清单由 onethawt 约 200 个插件的 idaplugins-list 扩展而来。
以单个 README 维护的清单,编写于 2025 年 7 月,收录 28 个逆向工程工具的 MCP 服务器,按反汇编器与反编译器(IDA Pro、Ghidra、Binary Ninja 等)、调试器、静态与动态分析、网络分析、Android 和安全测试分组,每项附一句说明。清单还列出作者认为尚无 MCP 服务器的工具,链接四个演讲与教程,并给出编写新服务器的入门资料。
以单个 README 维护的开源逆向工程工具清单,侧重二进制分析,共 71 项,按字母顺序从 Amoco 排到 X86isa,不分类别。每个条目给出工具名称、链接和一到三句说明,涵盖二进制分析框架、提升到 LLVM 及其他中间表示的工具、符号执行与模拟引擎、动态插桩、全系统分析与虚拟机自省平台、反编译器、调试器前端以及去混淆工具。
一份进入公有领域的目录,始建于 2026 年 6 月,收录 Teenage Engineering 设备的破解与改造项目:涵盖 OP-1、OP-Z、OP-XY、TP-7、SP-1 Stem Player、EP 系列、Pocket Operator 等设备的自定义固件、逆向笔记与协议文档、工具、硬件改装、拆解与恢复指南以及社区站点。每个条目只有一行,按设备和用途分组,并由维护者标注活跃、休眠或归档状态;收录范围仅限已发布、专门针对 TE 设备的项目。
以单个 README 维护的 UEFI 与 BIOS 安全资料 awesome 清单,维护者称其为个人收集、并不全面。清单链接 UEFI、PI 与 ACPI 规范,EDK II 开发资源,UEFITool、efiXplorer、CHIPSEC 及 Ghidra 和 Binary Ninja 的 UEFI 插件等固件分析工具,以 SMM 为主题的 CTF 题目,对在野 bootkit 的分析报告,漏洞分析文章,会议演讲、博客、论文和培训课程。
以单个 README 维护的学术安全论文阅读清单,收录 28 篇固件与嵌入式系统分析论文,按年份分组,时间跨度为 2013 至 2021 年。内容涵盖固件重托管与仿真、固件模糊测试、符号执行、蓝牙与基带分析,以及基于 Linux 和裸机固件中的缺陷检测。每个条目是链接到 PDF 或出版方页面的论文标题,并注明 USENIX Security、NDSS、IEEE S&P、CCS 等发表场合。
OpenDeviceDB 索引已有固件或协议逆向成果的设备,并链接原始项目。网站列出开放固件的安装途径及仍依赖厂商的部分;导入器汇集其他数据库,MCP 服务器供智能体查询设备记录。
Malware Analysis & CTI Reports 收录十篇 PDF 调查,涉及恶意软件、安全工具及检测结果存疑的二进制文件。作者采用 Detect It Easy、字符串和导入表检查,并使用 Ghidra 或 radare2 人工反汇编、反编译。
安装与客户端配置
文档安装、客户端配置、分析引擎依赖及按任务检查就绪状态的官方入口。
保存完整 Evidence,再提取摘要或模块视图,适合脚本与可复现记录。
官方工具协议、能力发现和 Evidence 语义;适合集成与核对实际工具边界。
原生二进制调查
文档从函数清单到指令、伪代码和引用链的原生二进制调查流程。
从 JavaScript 应用图追踪功能、比较版本,同时保留静态分析的不确定性。
经 REA 的 JADX 集成检查 APK、类、方法与引用;结果不等于运行时验证。
托管代码分析
文档静态读取 .NET 元数据与 CIL,比较成员并检查声明的原生代码边界。
历史网站网络记录
文档离线检查已有 HAR、SAZ 等网页流量记录;不会自动抓包或访问记录中的 URL。
固件分析
文档用 Binwalk 检查固件区域、用 Unblob 显式提取,并记录工具与制品身份。
抓包记录检查
文档用 TShark 字段、显示过滤器和 decode-as 规则检查已有的网络、USB 或蓝牙抓包,并可查询已安装的字段名;不抓取流量、不打开网络接口,也不控制设备。
抓包摘要
文档把已保存 pcap/pcapng 文件中的端点、DNS 查询与地址、TLS SNI、协议栈和 HTTP URI 汇总为可分页的 Evidence 视图;不抓取流量,也不访问记录中的目标。
信号记录解码
文档用调用方指定的 sigrok 协议解码器(如 UART、I2C)解码已有的逻辑信号记录,并保留带采样区间的注释文本;不采集样本,也不与硬件通信。
浏览器观察指南
文档通过官方 Notes 示例关联用户点击、导出请求与下载结果;REA 负责观察。
官方自建 Notes 样例,从 renderer、preload、IPC 到 CSV 导出建立证据链。
rea-playbook
学习资源提供 Electron 练习目标、Evidence 提取与 MCP 探测,区分离线展示和真正调用 REA。
rea-lab
研究Windows REA/Ghidra 实验室,提供已知答案挑战、公开研究、上游贡献与限制说明。
通过 REA 的纯解析命令行与 MCP 工具,识别 Flutter APK 的 Dart 快照哈希、各 ABI 库摘要与引擎构建来源,再检查单个 ABI 的 AOT 快照段。字符串池输出是对 package 与 SDK URI 的有界字节模式投影,并非反序列化的 Dart 类或恢复的源码。
通过 REA 加固的 ZIP 读取器清点 HarmonyOS 的 HAP、HSP 与 App Pack 文件,并投影出无需执行的应用图:组件路径、ID 与哈希、Stage/FA 打包模型提示、运行时类别提示,以及基于路径的原生桥接假设。所有结论仅基于路径存在;清单、Ark 字节码、资源和签名均未被解码或验证。
说明 REA 通过 Ghidra 分析 MIPS ELF 可执行文件、可重定位目标文件与 MIPS16 共享镜像的流程,包括为缺少 ABI 记录的旧式固件可执行文件固定 32 位语言,以免 Ghidra 将其按 64 位导入。准入以文件头声明和 ABI 记录为界;验证将项目自有的测试样本与独立的 readelf 输出对照,而不执行或重新托管固件。
说明 REA 针对静态 PSP ELF 可执行文件的受限 Ghidra 配置:Allegrex 指令、PSP 加载与调用约定交由使用者安装的 ghidra-allegrex 扩展处理,同时沿用 REA 的命令行、MCP、证据与快照流程。它仅在 Linux x64 上接受一种 PSPSDK 文件头与 ABI 声明,并在自行构建的测试样本上验证选定的静态事实,不涉及商业游戏或 PRX 模块。
在 REA 的 Ghidra 分析中,从 x64 PE 可执行文件恢复 .NET 8 NativeAOT 元数据:通过内置只读解析器或可选的无界面适配器(会为 Ghidra 数据库添加注释),从 RTR 9.1 数据中取得 MethodTable 关系、虚表槽位与冻结字符串。生成的名称、推断的原型和恢复的原生伪代码,与未知的原始 C# 名称、字段和源码明确区分。
由个人独立运营的非官方 REA 指南,共 32 个页面,介绍如何安装 REA 并接入编码智能体:涵盖 npx、npm 与 Bun 安装路径(含 Windows),Claude Code 与 Claude Desktop、Codex、Cursor、Windsurf 和 Gemini CLI 的 MCP 配置,支持 24 种客户端的配置生成器,Ghidra、IDA 与 JADX 分析引擎设置,以及把确切报错文本对应到 REA 上游 issue 的故障排查页面。部分页面记录了作者自己的运行结果,例如在 rea-agents 6.5.0 上通过无界面 JADX 分析 Android APK,以及在 6.8.0 上重新测试 Claude Code 配置。网站还将 REA 与 Ghidra、IDA 及其他逆向 MCP 服务器作比较,并记录冒充 REA 的仿冒副本。
免费的自主学习课程,提供逆向工程、固件和系统基础等学习路线。
pwn.college:逆向工程
学习资源包含托管练习的逆向工程课程,覆盖函数、数据访问、静态工具和动态工具。
逆向工程入门
学习资源Dennis Yurichev 编写的免费逆向入门书,以汇编与编译后程序理解为核心,提供多语言版本。
radare2 官方手册
学习资源radare2 官方实践参考,覆盖分析、反汇编、脚本、调试及相关插件。
研究使用语言模型直接反编译二进制,以及改进 Ghidra 输出。在 HumanEval 与 ExeBench 上评估重新执行能力,可用于区分代码可读性与功能恢复。
结合真实程序函数、运行时验证与 LLM 辅助可用性评判的反编译基准,用于比较反编译器的功能正确性与代码可理解性。
结合语言模型与程序分析,从去符号二进制中恢复变量和用户定义数据结构的符号信息。作者提供训练、推理、评测与后验推理材料。
Snowboard Kids 2 反编译项目的一篇操作说明:在一致性构建仍无法加入调试信息时,把 gdb-multiarch 接到 Ares 模拟器上。文中按 ELF 符号名在函数处设断点,再手动读取结构体中的一个字节,检验它是否决定加载哪个关卡 overlay。这是在运行时检验反编译假设的简短方法记录,而非重建成果。
JPCERT/CC 于 2026 年 10 月 15 日发布的博客文章,调查日本国内一系列不正当访问事件背后的攻击基础设施。文章报告攻击者利用 AI 扫描已知漏洞并经由 API 发动攻击,攻击服务器上存有 APK 文件、与 jadx 和 Blutter 相关的文件、APK 解包目录,以及用于探测应用 API 的 SSRF 验证脚本。这是防御方对所观察到的攻击者工具的记述并附缓解建议,而非公开的 AI 辅助分析方法或可复现的工作流程。
mytechnotalent 维护的免费英文课程索引,几乎每天更新:共 490 节编号课程,多数课程让学习者先编写小程序,再对其调试和打补丁(文中称 "hack"),覆盖 x86、x64、32/64 位 ARM、RISC-V 和 AVR。前期课程从数制、寄存器、内存和栈讲起;后期转向 Raspberry Pi Pico/Pico 2、STM32F401、ESP32-C3、ATmega328P 和 micro:bit 等开发板上的微控制器固件,以及 Windows、Go、Rust 和 WebAssembly 程序。README 本身只是链接目录,课程正文位于一个 GitBook 以及作者其他仓库中的课程文件和 PDF 书。
Z0FCourse 逆向工程课程
学习资源Z0F 编写的免费英文课程,讲解如何逆向 64 位 Windows 程序,README 称目标是帮助学习者从入门进阶到中级。Markdown 课程从数制、x64 寄存器、内存布局和调用约定讲起,过渡到 x64dbg 与 Ghidra,再逆向若干小样本以及作者自己编写的 DLL,还原其中的 Player 类,并在自己编写的程序中调用该 DLL 的导出函数。尚未完成的后续章节介绍 Windows 内部机制,并逆向 ntdll 中的 generic table 系列函数。
OWASP 维护的开放手册,讲解 Android 和 iOS 应用的安全测试与逆向工程,发布于 mas.owasp.org。除平台原理、测试环境搭建以及应用篡改与逆向工程等章节外,还收录可单独引用的测试、技术、工具页面、知识条目、最佳实践和可运行的演示,均与 MASVS 控制项和 MASWE 弱点对应。OWASP 自己的 UnCrackable 破解练习应用用作练习目标和示例。
社区维护的维基,讲解反编译器如何工作,从反汇编、提升和控制流恢复,到类型恢复、控制流结构化、质量评估和神经反编译,并为各项技术注明研究出处。它还整理了反编译器、插件、博客和演讲目录,设有符号恢复、代码相似性和漏洞发现等应用研究页面,以及按原平台列出的约 240 个游戏重建项目表。
Matthieu Breuil 在 Synacktiv 发表的文章讲解了调用预定义工具与执行生成代码两类智能体设计,并介绍在 Binary Ninja 内运行生成的 Python 代码的 CodeAct 智能体 Frontkick。文章在 CREBench 的两个密码二进制任务上将 Frontkick 与开源插件 Rikugan 对比,随后指出 Frontkick 的优势主要来自提示词中列出已安装 Python 库的做法,而非其架构本身。这是一篇附逐次运行结果的小规模评估文章,不是已发布的工具,也不是普遍性的基准结论。
FLARE 学习中心
学习资源Mandiant FLARE 团队发布的免费英文逆向工程与恶意软件分析课程模块,正文以 Google Docs 形式发布,实验用二进制文件、IDA 数据库和脚本存放在本仓库中。其中的恶意软件分析速成课从 x86 基础讲到解读 Windows API 调用,穿插汇编修改练习和附详细解答的实验;其余模块介绍如何用 WinDbg 时间旅行调试(Time Travel Debugging)分诊恶意软件,并提供一份说明 Go 1.24 程序在 Windows 可执行文件中呈现方式的参考手册。
由 dekuNukem 于 2017 年发起、众多贡献者陆续补充的笔记,记录 Joy-Con、Pro 手柄以及 Switch 主机与底座部分硬件的工作方式,依据来自拆机、逻辑分析仪抓取和数据包记录。各 Markdown 文件涵盖 Joy-Con 电路板测试点与滑轨接口引脚定义、带 CRC-8 校验的有线串口握手、蓝牙 HID 输入与输出报告及其中记录的 32 个子命令、Pro 手柄与充电握把的 USB HID 命令、含摇杆与六轴校准数据的 SPI 闪存布局、IMU 换算公式以及振动编码表。仓库还保存了在滑轨接口上扮演主机或 Joy-Con 的 STM32 测试固件、用于解析蓝牙流量的 Wireshark 解析器,以及笔记所依据的抓取数据。
Maddie Stone 编写的免费英文工作坊,以 GitHub Pages 发布,入门讲解 Android 应用的静态逆向工程。各章涵盖应用组件与入口点、Dalvik 字节码与 smali、用 jadx 反编译 DEX、在 Ghidra 中定位并阅读 JNI 原生库,以及字符串去混淆。七个附书面解答的练习将这些方法用于分诊恶意软件样本,以及找出预装应用中的命令执行缺陷。
iOS 应用逆向工程课程
学习资源Ivan Rodriguez 编写的免费英文课程(1.1 版),讲解 iOS 应用逆向工程,面向 iOS 应用安全初学者。五个 Markdown 模块依次介绍越狱测试设备的环境配置、为分析而解密 App Store 应用、对 IPA 中的文件、框架、Objective-C 类和 ARM 二进制进行静态分析(使用 Hopper 或 Ghidra)、用 Cycript 和 Frida 做运行时分析,以及在 Hopper 中修补二进制。练习使用 CoinZa:作者根据其所述在 App Store 正式应用中发现的漏洞类型,专门编写的一个故意不安全的 Objective-C 应用。
tiny-dec 教学用反编译器
学习资源Zhuo Zhang 用 Python 编写的小型教学用反编译器,面向 32 位 RISC-V(RV32I)ELF 文件,目的是讲清反编译的工作原理,而非与生产级反编译器竞争。它把流程刻意拆成 19 个独立阶段:从 ELF 加载、指令解码和 p-code 提升,经过 SSA、栈、类型、变量和取值范围恢复,再到控制流结构化和 C 代码输出;命令行可在任一阶段停下,打印该阶段的中间结果。README 还提供一个 Claude Code 插件,其中的 AI 导师会结合小测和练习,带学习者逐个阶段学习。
由 One Thawt 编写的简短阅读清单,主要成形于 2015–2016 年,在一个 README 和单独的恶意软件分析页面中收录约 58 个链接,涵盖逆向工程工具、书籍、论文、演讲和博客文章。各部分从反汇编器与调试器、入门讲座和经典书籍,到数据结构恢复论文、指令集参考资料、iOS、Android 与 Windows 相关资料、脱壳、反混淆,以及基于网络流量的协议推断。
由 Jack Price-Burns 维护的免费英文在线课程,在浏览器中教授一致性反编译:学习者阅读函数的目标汇编,编写 C 代码,再由原版主机编译器逐字节评判结果。课程从读寄存器和算术运算讲起,依次覆盖控制流、结构体、浮点、ABI、全局变量、优化器行为和 64 位整数,最后以改编自开源反编译项目的函数收尾。课程目前包括 GameCube PowerPC、Game Boy Advance Thumb 和 Nintendo 64 MIPS 三门,前端源码公开在 GitHub 上。
由 Aaron Guzman 维护、发布在 GitBook 上的免费英文方法论,用于嵌入式设备固件的安全测试与逆向工程。全文分为九个阶段:信息收集、获取固件、分析固件镜像、提取文件系统、静态分析文件系统内容、仿真、动态测试、运行时分析和二进制漏洞利用,并给出 binwalk、unblob、FACT、EMBA、Firmwalker、QEMU 和 Ghidra 等工具的示例命令。2025 年 10 月的修订加入了 C/C++ 静态分析工具、SBOM 生成,以及与 OWASP IoT 安全验证标准(ISVS)的对应关系。
Emproof 在 ScapyCon Automotive 2025 上举办的固件逆向工程研讨会的幻灯片和 14 个独立练习,由 Tim Blazytko 设计,面向安全经验不多的技术人员。固件与二进制相关练习由浅入深:先用 binutils 读取 ELF 元数据并初步上手 Ghidra 或 Binary Ninja,再用 binwalk 解包两个嵌入式 Linux CTF 镜像,最后进行裸机分析,包括识别一辆模型车固件 ELF 的微控制器、工具链和内存映射,以及依据数据手册定义内存段,为一份原始 STM32F103 闪存转储重设基址。另有练习在 Mirai 样本中静态解密字符串,并把硬编码的 AES 密钥回溯到其所在数据段。
《iOS 应用逆向工程》英文版
学习资源snakeninny 与 hangcom 于 2015 年免费公开的 iOS 应用逆向工程图书,仓库中以 442 页英文 PDF 形式发布。全书分为四部分:iOS 文件系统与文件类型;class-dump、Theos、Reveal、IDA、Cycript 以及 LLDB 与 debugserver 等 OS X 端和设备端工具;基于 Objective-C 与 ARM 汇编、定位功能背后代码的方法论;以及四个实践案例,先在备忘录、邮件、微信和信息应用中定位相关代码,再编写插件(tweak)为这些应用增加功能。
一个较大的 README,汇集手写的 Frida 动态插桩示例,按 Native、Android 和 iOS 分组,用于观察运行中应用的行为。示例展示了诸如挂接 Interceptor、枚举已加载模块与类、描述类成员、跟踪方法参数与返回值、打印调用栈、记录 SQLite 查询与 I/O,以及扫描或转储进程内存等模式。scripts 目录附带辅助代码,包括从反编译器生成钩子代码片段的 Python 脚本和 frida-server 安装脚本,以及用于 Sublime 和 Vim 的编辑器片段。
由 kpwn 发起、社区维护的 iOS 逆向工程参考资料,由一个 wiki、一份公开技术论文与演讲的整理索引,以及几个环境配置脚本组成。wiki 页面介绍 iOS 的底层机制,如 Mach-O 可执行文件格式、XNU 内核与 IOKit、启动链,以及平台缓解措施的历史;README 说明项目尚处早期、仍在持续完善,多个页面仍是占位草稿。仓库只收录笔记和外部链接,并不包含任何 Apple 固件、设备镜像或应用二进制文件。
Michal Malik 以单个 README 维护的 Linux 逆向工程阅读清单,收录约 230 条链接与书目:从系统调用、ELF 和各处理器 ABI 的速查资料,到讲解程序启动、链接与重定位的 101、201 两级阅读。后续部分汇集加壳与混淆、反调试、ELF 感染、内核模块与 rootkit、漏洞利用、crackme、radare2 实战、检测工具及书籍等资料。这是一份注释很少、最后改动于 2022 年 1 月的链接清单,适合作为背景阅读提纲,而不是持续维护的课程。
收录十一个 Android 挑战应用及逐步讲解,用于学习 Frida 插桩:从部署 frida-server、Hook Java 方法开始,依次练习调用静态方法、修改变量、创建实例和 Hook 构造函数,最后到 Hook、调用及修补原生函数。作者将其定位为入门到中级的练习,而非高难度 CTF:每个应用都藏有 flag,但目标是掌握 Frida 常用 API,并能读懂他人编写的脚本。
以单个 README 维护的 macOS(OS X)与 iOS 逆向工程阅读清单,由 Michal Malik 于 2015 至 2019 年间整理,并标注为仍在进行中。九个部分共 98 个条目,依次涵盖必读博客与 Mach-O、ABI 和系统调用参考资料,Mach-O 基础知识,恶意软件、反调试和混淆相关文章,内核、沙箱与越狱研究,内核扩展开发与内核调试,取证与监控资料,以及 crackme 练习和六本书。条目只有链接或标题,大多没有说明。
Evil0ctal 编写的中文 Android 逆向课程,计划分 100 天、每天一课。课程从进制、ARM 汇编、Dalvik/ART 运行时和 APK 加载机制讲起,继而介绍 APK 与 DEX 结构、Smali 修改与重新打包、Frida 和 Xposed Hook、JNI 与 Native 库分析、抓包分析、代码混淆及应用加固,并结合 jadx、apktool、readelf、GDB/LLDB、Frida、Burp Suite 等工具给出命令和代码。Crackmes 目录收录 OWASP UnCrackable 与 r2pay 练习应用的副本,另有社区贡献的印度尼西亚语译本与已发布课程对应。
单页汇集 30 个带注释的 Ghidra Python 脚本示例,按任务分组:项目、程序、函数与交叉引用、基本块、指令、栈变量、反编译输出、注释、P-code 模拟与导出、调用图和程序切片。示例从 Flat Program、Flat Decompiler 和 Flat Debugger API 入手,再说明哪些任务需要 Ghidra 更完整的 API;大多数示例附有输出样例。
leonjza 编写的 Frida 二进制插桩入门工作坊,课程页面由一个 Docker 容器离线提供,容器内已预装带 GEF 的 gdb 和 frida-tools。三个章节从一个小型 Linux C 程序、LD_PRELOAD 钩子以及库函数调用如何经由 PLT 和 GOT 解析讲起,再到用 Frida 的 Interceptor 读取参数和修改返回值、用 NativeFunction 调用程序自身的函数、编写 Python 注入工具、RPC 导出、TypeScript 代理,以及 frida-server 和 frida-gadget。课程有意不涉及 Frida 在移动应用上的用法,所有练习都针对工作坊自带的示例程序。
mytechnotalent 编写的免费英文课程,讲解 Raspberry Pi Pico 2(RP2350,Arm Cortex-M33)固件的开发、调试与逆向。14 周的课程大纲配有幻灯片、Markdown 笔记和 40 章 PDF 教材,按“编写、调试、再破解”的模式,从 hello world 讲到变量、数据类型、常量、运算符、条件语句、结构体和函数,使用 GDB 配合 OpenOCD 以及 Ghidra,第 4 周起的笔记另有 Binary Ninja 和 IDA 版本;练习围绕 I2C LCD、GPS、LoRa 无线模块、舵机和红外遥控展开。计分 CTF、剧情式“机密简报”挑战和一个安全启动自定义引导程序均以作者构建的二进制文件形式提供,并附有源码。
逆向分析蓝牙雷达测速预警器协议
学习资源作者记录了如何解析 Cobra iRAD 900 雷达测速预警器的蓝牙 RFCOMM 协议,使 Raspberry Pi 3 无需 iOS 或 Android 应用即可接收警报。作者在越狱 iPhone 上用 BTServer 记录通信,再用 Wireshark 过滤;README 随后说明预警器每半秒发送的状态载荷,以及 9 字节的回复报文,其中 ACK 字节必须回显预警器发来的序号字节;对于连接初期的设置同步,则直接重放录制的响应而不加解析。这是一个面向初学者的 RFCOMM 流量分析简短案例,附带粗略的概念验证脚本,并非持续维护的客户端。
一份自 2021 年起维护的单 README 笔记,作者是与厂商无关的设备用户,记录 LinkPi ENC 系列视频编码器和 TBS 2603SE 的内部结构;这些设备共用同一条固件线,作者最初的设备采用搭载 HiSilicon Hi3520DV400 的 F3520D 主板。内容涵盖 Linux 系统与 PHP 网页界面、未公开功能和内部页面、对讲与 tally 接口、默认账户与网络服务及加固步骤、HiSilicon 媒体管线诊断、包括 UART 在内的主板引脚定义、固件恢复,以及 2020 至 2026 年固件更新的翻译版发布说明。
ReverseJS 博客 2022 年系列文章的配套代码,该系列讲解如何借助 Babel 操作抽象语法树来反混淆 JavaScript。每个目录都包含一个小型混淆样例、对应的反混淆脚本及其输出,主题涵盖字符串隐藏(转义序列、字符串拼接、字符串数组和字符串加密)、常量折叠(含 JSFuck 风格代码)、常量变量替换、方括号属性访问改为点号访问、死代码删除、代理函数以及逗号序列表达式。README 将其定位为简短的学习示例,而非可用于生产的反混淆工具。
mrexodia 发布的三个实例,展示语言模型借助他编写的 IDA Pro MCP 服务器在 IDA Pro 中逆向分析 crackme 二进制。每个文件夹都包含输入二进制、说明其来源、所用提示词和模型的 README、智能体自己撰写的报告以及导出的会话记录,读者可以逐一查看智能体对数据库的每次工具调用、重命名、类型修改和注释。三个任务分别是一个简单的 Linux 密码校验程序、一个经过混淆的 Linux flag 校验程序,以及一个 Windows crackme;据智能体的报告,它借助向量化异常处理来执行校验。
OpenGarages 开发的仪表盘模拟器,可在 Linux 虚拟 CAN 接口上练习 CAN 总线逆向分析,而无需真车。一个 SDL 窗口绘制仪表盘,其车速表、转向灯和车门锁指示会根据它监听到的 CAN 帧变化;另一个控制程序把手柄或键盘输入转换成这些帧,并回放一段录制的通用 CAN 流量作为背景噪声。训练模式下,两个程序依据共享的随机种子打乱各信号对应的仲裁 ID 和字节位置,最高难度还会在目标报文中加入额外的随机数据,学习者必须自己找出相关报文。
CNNPRE 的研究代码与数据。CNNPRE 是 Javad Garshasbi 与 Mehdi Teimouri 于 2023 年发表在 IEEE Access 上、用于协议逆向工程的报文类型识别方法。仓库中唯一的 Colab 笔记本把每条报文补齐后的比特串转为缩放的灰度图像,借助在 ImageNet 上预训练的 ResNet50 进行迁移学习以提取特征,加入报文方向和长度分组编码,用 UMAP 降维后再以凝聚聚类和 HDBSCAN 对报文聚类,并将各聚类结果与已标注的报文类型比较评分。笔记本附有从 ARP、DNS 到 SMTP、GSM 等十二种协议的预处理报文数据集。
RPISEC 学生团队 2015 年秋季在伦斯勒理工学院(Rensselaer Polytechnic Institute)开设的恶意软件分析课程资料,课程以《Practical Malware Analysis》一书为主线。12 讲内容从基础静态与动态分析、x86 与 IDA 讲起,经过 Windows 内部机制、恶意软件行为、数据编码、隐蔽启动、反反汇编、反虚拟机与反调试、加壳与脱壳,一直讲到 Windows 内核和 rootkit 技术;另有 10 个实验和 4 个项目,涉及运行时进程操控、自动化脱壳和 APT 样本分析。
逐字节剖析各类文件格式的海报与图解合集,以 PNG 和 PDF 图片发布。二进制海报涵盖可执行文件(ELF、DOS COM 与 EXE、NE、LE、PE、Mach-O 及 fat Mach-O、Java class、Dalvik DEX、Python 字节码、SWF、GameCube/Wii DOL 和 Switch NRO),以及图像、视频、压缩包、文档、音频和序列化格式,另有 x86 与 x64 操作码图表和 Dalvik、JVM、.NET 操作码表。讲解更详细的 101 系列介绍 PE、ELF、Mach-O、ZIP、Java class、PDF、COM 和 WAV 文件,并附 Inkscape 源文件和概念验证文件。
No Starch Press 于 2012 年 2 月出版的书籍,以动手实践的方式讲解恶意软件分析:从在虚拟机中运用基础静态与动态分析技术入手,进而讲解用 IDA Pro 进行 x86 反汇编、用 OllyDbg 调试以及用 WinDbg 进行内核调试。后续章节涵盖恶意 Windows 程序、隐蔽启动、数据编码、网络特征、反反汇编、反调试与反虚拟机技术、脱壳、shellcode、C++ 和 64 位恶意软件;书中配有附解答的动手实验,让读者剖析恶意软件样本。
一套 Windows 恶意软件分析培训的幻灯片与练习,通过编程、逆向工程和 Windows 内部机制帮助学员理解常见的恶意软件技术,并演示如何用各种分析工具达成特定分析目标。第 1 单元涵盖编译、PE 格式、进程、WoW64、shellcode 和 PE 加载器;第 2 单元介绍恶意软件的目标与战术、挂钩、持久化和银行木马;第 3 单元介绍规避与自我保护以及指纹识别,混淆、反挂钩、反混淆和内核态组件等内容尚在计划中。
esp-idf-injection-ng 记录了对 ESP-IDF 已编译 libnet80211.a 中帧类型检查逻辑的研究。作者追查旧版符号覆盖方法在 v5 以后失效的原因,并提供 objcopy 补丁、演示固件和抓包资料,用 esp_wifi_80211_tx 发送额外的 802.11 管理帧。
RE-Workstation 是中文逆向分析与相关安全研究知识库。专题页面涵盖原生二进制、APK、固件、JavaScript、补丁差分和恶意代码分析,并提供索引、证据模板及特征参考,帮助按任务查找方法。
Walksnail Ascent VRX UART Protocol 记录 Walksnail 视频接收机的串口控制消息,并提供 C 语言发送实现和 STM32 示例。资料涵盖帧结构、校验和、按键、频道选择与状态查询,同时标明来源中的矛盾和未知回复格式。
T2 platform research 通过静态分析、硬件观察和驱动比对,整理 Apple T2 的固件、硬件及 Linux 所需接口。研究章节覆盖 Secure Enclave 服务、启动与恢复、图形、音频、传感器和存储等子系统。机器可读的研究发现和主板索引将结论与证据关联,并标明适用范围;仓库还提供部分消息格式的 Python 参考代码。
Glaurung Models 收录面向可执行文件分析的分词器与模型实验。其 64K BPE 分词器以 Latin-1 编码 PE 和 ELF 字节,训练范围涵盖 x86 与 ARM64;附带分析比较了两个分词器学到的 SSE 和 AVX 指令模式。
CrackMes 收录 crackmes.one 专用逆向练习程序的解析文章。 Linux x86-64 示例识别 ELF 可执行文件、检查反汇编、使用断点和运行时观察,并说明输入值的校验过程。
Binary BPE Tokenizer for Executable Analysis 研究面向 Transformer 二进制分析的 ELF、PE、Mach-O 和 APK 字节对编码。仓库包含论文源文件、4K 至 64K 词表、Python 评测脚本和样本压缩包。作者报告 64K 词表平均每个 token 对应 2.89 字节。
Assassin's Creed III 在线服务文档记录 PC 版游戏服务的方法编号,以及请求和响应字段。现有文件涵盖在线存档、账户管理等 RMC 服务,并记载 PRUDP 上的 P2P Duplicated Objects。
AC4 docs 记录《刺客信条 IV:黑旗》PC 版在线服务接口。RMC 文档列出方法编号及请求、响应类型;仓库还收录 HTTP API 规格,供在线服务恢复工作参考。
eRepublik API Documentation 整理从网页策略游戏客户端观察到的接口。文档记录认证 Cookie,以及旅行、战斗、经济和社交等功能的请求路径、HTTP 方法与参数示例。
Garmin Strength Workout API 记录了通过 Garmin Connect 未公开接口创建力量训练的请求结构。参考资料说明重复组、动作与休息步骤、条件、重量和动作标识,并附 JSON 示例及简单的生成与校验工具。
Substack API Reference 通过 curl 探测和浏览器请求捕获,记录 Substack 网页应用未公开的 JSON API。资料涵盖读写端点、认证和请求体,并附 OpenAPI 3.1 规范、curl 与 TypeScript 示例。作者报告经过 14 轮采集,确认了 129 个端点。
hyperscan-homebrew 为 Mattel HyperScan 的自制程序与模拟工作记录硬件行为,涵盖 SPG290 PPU 寄存器、RFID 读卡器信号、手柄 I²C、SPU 音频及 S+Core 7 编译器故障。资料依据 MAME 实验,并在可行时与实机抓取结果对照。
这份 Yandex Station 本地音频指南记录了设备的 Glagol WebSocket 控制通道及 HTTP 音频流行为,涵盖 radio_play、令牌获取、消息格式,以及 MP3 CBR 和准确 Content-Length 等播放条件。
Hacking the Xbox — 日本語訳提供 Xbox 逆向工程著作的日文译文。仓库已有导读及第 1 至第 6 章的译文和配图,后续章节与附录尚待翻译。
Spelunking 使用 Swift 和 Objective-C 探针研究 Apple 应用、私有框架及系统服务。项目盘点运行时类、符号、通知和 MediaRemote 状态,并为 Messages、Phone、MediaRemote 与 UserNotifications 保存分目标说明及原始采集记录。
whatsapp-docs 汇集对 WhatsApp Android APK 进行静态反编译所得的应用内部机制和通信格式研究,涵盖多设备配对、Noise 传输、举报 stanza、媒体上传及其他客户端流程,并区分代码发现与推断。
RtG-Format 记录 Roblox 游戏 Road To Gramby's 的存档与建造格式。文档和实验涵盖建造结构、部件标识、连接关系、属性、编码与压缩,并附命令行工具和浏览器预览器。