SuperAPI AI 工具集

binary-re

安全与审计

查看项目

更新于 10-15 11:45

技能介绍

用途

Binary Reverse Engineering 是一个用于二进制逆向工程的综合技能,适用于分析二进制文件、可执行文件或字节码,以理解它们的功能或工作原理。当出现 "binary"、"executable" 等触发词时启用。该技能提供整体方法论、分析哲学与参考资料,具体分析阶段由相关子技能处理。

相关子技能

  • binary-re:triage:快速指纹识别,触发关键词为 "what is this binary"、"identify"、"file type"。
  • binary-re:static-analysis:基于 r2 与 Ghidra 的分析,触发关键词为 "disassemble"、"decompile"、"functions"。
  • binary-re:dynamic-analysis:基于 QEMU、GDB、Frida 的动态分析,触发关键词为 "run"、"execute"、"debug"、"trace"。
  • binary-re:synthesis:报告生成,触发关键词为 "summarize"、"report"、"document findings"。
  • binary-re:tool-setup:安装工具,触发关键词为 "install"、"setup"、"tool not found"。

每个子技能根据关键词自动检测,无需显式路由。

预检验证

开始分析前需验证工具可用性。核心工具(必需)包括 rabin2 与 r2,可通过 rabin2 -v 和 r2 -v 检查版本。反编译(可选)可检查 r2ghidra 是否可用。动态分析平台检查:Linux x86_64 使用原生 QEMU(apt install qemu-user);macOS 使用 Docker + binfmt;Windows 使用 WSL2。若动态工具不可用,则进行仅静态分析,并在综合阶段注明置信度降低。

当 radare2 或 Ghidra 不可用时,可使用标准 binutils/LLVM 工具作为后备,例如 readelf、file、nm、strings、objdump、llvm-objdump、ldd 等。后备方法的局限包括:无交叉引用、无反编译、无函数边界检测、对 stripped 二进制准确性降低。

分析哲学

LLM 驱动分析,人类提供上下文。人类提供平台信息、疑似用途、约束条件;LLM 执行工具选择与调用、基于证据形成假设、设计实验、知识综合。

智能体循环

假设驱动分析流程:0. I/O 合理性检查,对比已知输入/输出;1. 观察,通过工具收集事实;2. 假设,从事实形成理论;3. 规划,设计实验验证理论;4. 执行,运行工具(风险操作需审批);5. 记录,捕获观察结果;6. 更新,确认或反驳假设;7. 循环,直至理解充分。

步骤 0 强调先对比已知 I/O,可避免数小时无效分析。即使仅做 I/O 对比,也需人工明确批准。可使用 QEMU 模拟跨架构二进制,或使用 Docker。对比输出后记录差异,作为事实。

知识模型

分析过程中通过情景记忆维护结构化知识:FACTS(带工具归属的已验证观察)、HYPOTHESES(带置信度与证据的理论)、QUESTIONS(阻碍进展的未知项)、EXPERIMENTS(计划中的工具调用)、OBSERVATIONS(实验结果)、DECISIONS(经人工批准的决策及理由)。

情景记忆集成使用一致标签,如 [BINARY-RE:{phase}] {artifact_name} (sha256: {hash})。开始分析时先按工件哈希搜索情景记忆;每个阶段后自动捕获发现;恢复时搜索 [BINARY-RE] {artifact_name} 恢复上下文。

人在回路触发条件

执行二进制(即使 QEMU 下也需确认沙箱)、网络操作、证据冲突、特权操作、重大方向变更时,必须询问人类。

会话管理

开始新分析:计算工件哈希,搜索情景记忆,若发现先前分析则询问恢复或重新开始。恢复中断分析:搜索对话,检索先前发现,总结后继续。搜索过往分析:按标签搜索匹配工件与发现。

标准分析流程

典型未知二进制分析:1. Triage(架构、ABI、依赖、能力);2. 静态分析(函数、字符串、交叉引用、反编译);3. 动态分析(若安全,系统调用、网络、文件访问);4. 综合(带证据的结构化报告)。

快速参考

基本命令包括:快速 triage 使用 rabin2 -I、rabin2 -l、rabin2 -zz;静态分析使用 r2 -q -c 'aa; aflj'、r2 -q -c 'izj';动态分析(ARM 示例)使用 qemu-arm -L /usr/arm-linux-gnueabihf -strace ./binary。

架构检测表列出 e_machine 值与对应架构、QEMU 二进制、Ghidra 处理器。Libc 检测表列出解释器与对应 libc。

错误恢复

工具未找到时使用 binary-re-tool-setup 技能;架构错误时重新 triage;QEMU 失败时尝试 Qiling、Unicorn 或设备上运行;分析超时时缩小范围,使用 aa 而非 aaa;证据冲突时询问人类并记录两种解释。

文档

配套文档包括:docs/r2-commands.md(面向 LLM 的完整 r2 参考)、docs/ghidra-headless.md(Ghidra 脚本指南)、docs/arch-adapters.md(各架构特性)、docs/python-bytecode-re.md(Python .pyc/marshal 混淆模式)。

集成

可与其他插件配合:remote-system-maintenance(通过 SSH 从设备提取二进制)、fresh-eyes-review(记录前验证结论)、scenario-testing(创建可复现分析环境)。