夜雨聆风学习资料网

ARTICLE · 1311635

CTF 逆向 AI 解题工作台:AI 工具循环 + 本地验证闭环,MCP 接入 IDA/JEB/Burp;自动求解 APK/PE/ELF等

CTF 逆向 AI 解题工作台:AI 工具循环 + 本地验证闭环,MCP 接入 IDA/JEB/Burp;自动求解 APK/PE/ELF等

文章来源:夜组安全

工具介绍

CTF-RE-TOOL v1.7.3一个基于 Electron 的 CTF 逆向 AI 解题工作台(Windows 桌面应用)。把「静态分析 → 动态 Hook → 算法还原 → 本地验证」串成一条 AI 可自主驱动的流水线,并通过 MCP 实时接入 IDA / JEB / Burp,内置 11 个逆向方法论技能(Skills)与可检索的结构化知识库(Wiki)。

核心是解题成功率,不是功能堆砌:

  • AI 工具循环(Tool-Use):AI 自主调用 JEB/IDA/Frida/Python 等工具反复推进,而不是一次性问答;分阶段提示词(①收集 → ②定位算法 → ③写脚本本地验证 → ④结论)。
  • 本地验证闭环:AI 给出的每个 flag 都附 [VERIFY] 契约,工具自动生成 Python 复现脚本本地跑一遍,标注 ✅已验证 / ⚠️未验证——不靠"AI 说解出来了"就当解出来了。
  • 结构化知识库:54 页可检索手法/题解页(含 43 篇历年逆向题,带 attack_chain 解法链 / reasoning_chain 思维链 / failed_attempts 避坑),按关键词结构化加权检索,命中即注入 AI 上下文。
  • 经验自进化:每次解题沉淀的多步攻击链写入经验库,下次同类题自动速查复用。

功能特性

三栏布局:左侧文件分析与工具区,中间 AI 对话,右侧输出日志 / Frida Hook / 快速操作。

1. 文件拖入+自动识别

  • 支持 APK、EXE/PE(含 .NET 识别)、ELF/SO、DEX、PYC(全版本魔数)、JAR/.class、Lua 字节码、WASM、Mach-O
  • ZIP 按内容精确区分 APK / JAR / 普通 ZIP
  • .NET 程序集自动提示 dnSpy/ilspycmd 流程;APK 自动检测 Unity IL2CPP(global-metadata.dat)
  • 显示文件详细信息(MD5、SHA256、大小等)

2. 一键调用逆向工具

静态分析工具:

  • IDA Pro - 静态分析
  • DIE - 查壳工具
  • JEB - Android 分析
  • jadx - DEX→Java 反编译

脱壳工具:

  • UPX - 脱壳工具
  • apktool - APK 解包

Python工具:

  • pycdc - Python 字节码反编译
  • pycdas - Python 字节码反汇编

3. Frida 自动 Hook

  • 自动生成针对题目情报的 Hook 脚本(从静态分析提取类名/native 方法/算法特征注入模板,而非固定模板)
  • Java 层:Cipher、MessageDigest、String、SharedPreferences、Base64、Arrays.equals 等
  • Native 层:主动扫描 Java 声明的 native 方法 + RegisterNatives 拦截(动态注册、无 Java_ 导出时的唯一入口)+ 符号级 findFunc
  • JCE 通杀自吐:Hook Cipher.init/doFinal,不追业务代码直接吐算法/密钥/明文
  • 进程内解密出 flag:把已求得的 key/iv/密文注入 Hook,在 App 进程内直接 decrypt 并 send('[FLAG]...'),绕过关卡
  • 反检测:Frida 文件/端口探测绕过、SSL pinning 绕过(Java 层 + native SSL_read/write)、反调试绕过
  • 实时显示 Hook 日志;滚动窗口抓取(每来数据续 60s,绝对上限 10min);spawn 失败自动回退 attach

4. 解密脚本生成

  • 自动生成 Python 解密脚本
  • 支持常见算法:AES、DES/3DES、TEA、XXTEA、RC4、XOR、Base64(含自定义码表)、CRC32、SM4(国密)
  • RSA 攻击脚手架(小指数/factordb/Wiener/共模)、Z3 约束求解、angr 符号执行模板

5. 反调试绕过

Android:

  • ptrace 检测绕过、Debuggable 标志清除
  • Frida 文件/端口检测绕过、TracerPid 检测绕过
  • System.exit / Process.killProcess / Debug.isDebuggerConnected 绕过

Windows PE(新增):

  • IsDebuggerPresent / CheckRemoteDebuggerPresent / PEB BeingDebugged
  • NtGlobalFlag / NtQueryInformationProcess / OutputDebugString 绕过

APK 重打包(新增):

  • apktool 解包 → smali patch → 回编 → zipalign + jarsigner 签名 一键批处理

6. AI 分析引擎(流式输出)

  • 兼容 CCSwitch / Claude Code 的 Anthropic /v1/messages 接口(Base URL 留空则由环境变量或设置页提供)
  • SSE 流式逐字渲染,发送按钮可随时停止 AI 任务
  • 429/5xx 自动退避重试;max_tokens 可配置;连接 60s / 空闲 120s 超时
  • Tool-Use 循环(最多 25 轮,工具结果自动截断防止撑爆上下文)
  • 分阶段解题提示词:APK/PE/ELF 深度求解按「①收集代码+数据 → ②定位算法 → ③写脚本本地验证 → ④出结论」四阶段推进,强制"先证据后结论",禁止跳步臆测
  • 模型分级(cascade):先用快速模型初解,未出 flag 再升级思考模型,兼顾速度与成功率
  • AI 系统提示注入真实 MCP 连接状态、已收集结论(避免重复劳动/推翻已验证项)、知识库索引与经验速查;flag 用 [FLAG]...[/FLAG] 契约标记便于程序提取
  • 兜底模板针对性:AI 生成的 Frida 脚本失败时,回退模板会注入题目情报(包名、类名、native 方法、算法特征)做针对性 Hook,而非固定模板

7. Agent Skills 知识库(v1.2 新增)

  • skills/ 目录 + SKILL.md 格式,兼容 Anthropic Agent Skills / ljagiello·ctf-skills(MIT)
  • 内置 11 个中文方法论文档:ctf-writeup(提交级题解写作)、ctf-reverse-android、ctf-reverse-binary、ctf-reverse-tooling(Z3/angr/Unicorn 自动化求解 + 迷宫题)、ctf-reverse-langs(Python 字节码/Go/Rust/Lua 语言特定逆向)、ctf-iot-firmware(固件提取/解包/QEMU 仿真)、ctf-crypto-identify、ctf-antidebug、ctf-frida-dynamic、ctf-jsreverse(JS/Web 逆向五阶段)、ctf-dispatch(分流与卡题决策)
  • AI 可通过 read_skill 工具按需加载(渐进披露,不占固定提示词);系统提示只注入技能索引
  • 用户可往 %APPDATA%/ctf-reverse-tool/skills/ 或应用 skills/ 目录放自己的 SKILL.md,重启即生效

8. CASE 证据体系 + 验证闭环(v1.2 新增)

  • 拖入文件自动建案:cases/<题名>_<md5前8>/,含 evidence/(MCP 采集物落盘)、scripts/、timeline.jsonl(全量日志时间线)、findings.json(结构化发现)
  • flag/解题记录双写:原 solveNotes 兼容保留,新增结构化 findings(含来源与时间戳)
  • 验证闭环:AI 按契约输出 [VERIFY]{"algo","key","ciphertext","expected"}[/VERIFY] → 工具自动生成 Python 本地复现 → flag 标 ✅已验证 / ⚠️未验证
  • 本地枚举:AI 给出 [HYPOTHESES][...][/HYPOTHESES] 候选组合(算法/密钥/字节序),工具并行枚举全部组合,命中即停;验证失败自动触发,也可聊天输入 枚举假设 手动触发

9. WP 双轨(v1.2 新增)

  • 模板轨(wp 命令 / "生成WP"按钮):升级为 findings 驱动——证据清单、flag 验证状态自动填充,无数据才留占位
  • AI 轨(aiwp 命令):按 ctf-writeup 技能生成"摘要-分步解法-单一完整求解脚本-Flag"提交级题解,AI 失败自动回退模板轨

10. Burp MCP + JS 逆向(v1.3 新增)

  • Burp MCP 客户端:会话握手/工具发现与 IDA 同款(Streamable HTTP),AI 可搜索代理历史、取 HTTP 报文详情、调用插件暴露的任意工具
  • Burp 路径可配置(在设置页指定自己的启动器路径),左侧工具区一键启动,MCP 栅格一键连接,burp 启动/burp 历史 聊天命令
  • ctf-jsreverse 技能:五阶段流程(观察→捕获→复现→验证→记录);路径A 算法追踪四板斧 vs 路径B 环境伪装;JSVMP/瑞数/obfuscator.io 判型速查;案例坑库(TikTok X-Bogus、抖音 a_bogus、瑞数 sdenv)
  • node_js 验证契约:AI 还原的 JS 加密函数经 [VERIFY]{"algo":"node_js","code":"function decrypt(input){...}","input":"参数原文","expected":"密文"} 交给本地 node 复现,与抓包密文比对
  • 全局经验库(reverse-skill 进化层思路):解题成功自动入库(内容级去重,不重复),下次解题自动注入 AI 提示词速查;也可用 经验 <一句话> 手动回写、查经验 查看

11. 结构化知识库 + 检索体系(v1.3.5 重构)

  • 三层结构:AI-SEARCH-INDEX.md(全局检索索引,按技术标签定位资源)→ PAYLOAD-CHEATSHEET.md(逆向套路/Payload/脚本速查)→ 各专题页
  • 历年逆向题条目库(wiki/reverse/,43 篇):从公开题库筛选的纯逆向题,每题一个页面,带结构化 meta:
    • attack_chain —— 完整解法链(特征 → 关键步骤 → 坑 → 出 flag)
    • reasoning_chain —— 思维链(怎么想到这条路的)
    • failed_attempts —— 走不通的路与原因(往往比成功更有价值)
    • key_observations / key_payload / one_liner / tags / difficulty
  • 结构化加权检索:wiki_search 解析 YAML meta,命中 tags/attack_chain/reasoning_chain/key_observations/one_liner 的条目大幅加权(远高于正文散命中),带 meta 的条目优先返回 one_liner+attack_chain 摘要,让 AI 一步拿到"这道题该怎么解"
  • 手法专题:wiki/frida/(多阶段 Hook、进程内解密出 flag、Native 密钥反演、参数/IV 编码坑、环境排障、native 定位+RegisterNatives+反检测+脱壳)、wiki/firmware/(固件解包/QEMU 仿真踩坑)
  • 两处可放页:应用内置 wiki/(随 exe 分发)+ %APPDATA%/ctf-reverse-tool/wiki/(用户自加,重启即生效);系统提示只注入页面索引,不占固定上下文
  • 设计参考 Des-CTF-Knowledge 知识库的「结构化 meta + attack_chain + 分段索引」范式(仅借鉴设计思路,纯文本条目,零样本落地)

12. 分组密码识别与变体求解(v1.7 新增)

  • S 盒知识库(electron/crypto-tables.js):AES / AES 逆 / SM4 完整 S 盒、AES Rcon、SM4 FK/CK/旋转常量全部固化,扫描器不再散落硬编码
  • S 盒三级关系判定:classifySbox() 逐个比对标准表,报出 exact(完全相同)/ 逐项 XOR·ADD / GF(2) 仿射(高斯消元求 8×8 可逆矩阵 + 回代验证 256 项),并给出能否精确还原
  • 非线性度指标:Walsh 谱计算(标定值 AES/SM4 = 112,随机置换 90~96)。只描述设计强度,不据此劝退——CTF 大量题目用随机置换当 S 盒,照样能解
  • 结构推理inferCipherStructure():SM4 CK 固定差分 → SM4 骨架;AES S 盒关系 + Rcon → AES 骨架;未知结构明确说"未知"而不是硬猜
  • 多骨架解密器:
    • SM4:枚举 密文 × FK × key × 16 种字节序/状态组合 × 3 种块内排列
    • AES:pycryptodome 主路径,枚举 key 长度 16/24/32(轮数 10/12/14)× 字节序 × 状态排列
    • DES/Blowfish:明确不支持,不假装能解
  • 诚实边界:轮数被改 / MixColumns 矩阵被替换的变体不支持,未命中时明确提示"不代表算法认错"

13. AI Agent 运行时(v1.7.3 新增)

借鉴开源项目 openclaude 的上下文管理与可靠性设计(electron/agent-runtime.js,参数逐项对照其源码标定):

能力
机制
大输出落盘
超过 24k 字符的工具输出写盘,回传 60% 头 + 40% 尾预览(错误堆栈/flag 常在尾部)。旧实现只截头会丢关键信息
旧结果微压缩
每轮把旧 tool_result 替换为占位串,只保留最近 6 条;**绝不清 is_error**(错误是模型纠错的依据)
确定性上下文压缩
超 90k token 触发,保留首条任务 + 最近 10 条 + 抽取的硬事实(偏移/常量/骨架/已排除路线);熔断 3 次 / 冷却 5 分钟;不额外调模型
连续调用拦截sha256(工具 + 完整入参)
 连续 3 次即拦(不做前缀截断,否则"同文件不同尾部的两次写"会被误判)
跨轮失败环
按 (工具,错误类别) / 类别 / 路径 三键累计;第 2 次提醒、第 3 次判死;NoSymbol 时给出候选函数名
工具预检
执行前做确定性检查,错误必带"怎么改":路径不存在给相近文件、IDA 缺参给补救工具建议
结构化经验检索
按当前题特征词给经验条目打分,只注入命中的 top 6(≤600 字符),零命中不注入
会话续跑
追加式 JSONL;恢复时剥离未完成的 tool_use / 孤立 tool_result(不清洗会直接 400),末尾注入续跑指令
API 重试
5 次指数退避 + 抖动、优先 retry-after、429 上限 3、4xx 不重试

界面:AI 调用工具时显示实时步骤条(⏳ 正在反编译 main → ✅ 1.2s · 3400 字符),长任务不再"看起来卡死"。

工具获取

https://github.com/ip2867/ctf-re-tool

版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并致歉。祝愿每一位读者生活愉快!

本公号发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

推荐阅读

*HTTP 502/504 排查思路:Nginx、上游服务与超时链路

*EduSRC 教育行业漏洞猎洞工具 —— 基于搜索引擎 Dork 的一键式侦察 Chrome 扩展

*大模型推理监控告警实战:Prometheus、Grafana 与关键指标

                                                                        

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料