Skip to content

Releases: ip2867/ctf-re-tool

v1.7.3 — AI Agent 运行时 + 对话滚动修复 + 分组密码能力补齐

Choose a tag to compare

@ip2867 ip2867 released this 17 Oct 17:03

主要更新

一、AI Agent 运行时(借鉴 openclaude)

新增 electron/agent-runtime.js,解决长任务的三个核心痛点:上下文爆掉、原地打转、崩溃丢进度。

能力 机制
大输出落盘 60% 头 + 40% 尾预览(错误堆栈/flag 常在尾部),超 24k 字符写盘可回读
旧结果微压缩 保留最近 6 条;不清 is_error(错误是纠错依据)
确定性上下文压缩 90k token 触发,抽硬事实(偏移/常量/骨架/已排除路线);熔断 3 次/冷却 5 分钟
连续调用拦截 sha256(工具+完整入参) × 3 即拦
跨轮失败环 三键计数,第 2 次提醒、第 3 次判死;NoSymbol 给候选函数名
工具预检 错误必带"怎么改":路径不存在给相近文件
结构化经验检索 按题型特征词打分,零命中不注入
会话续跑 JSONL + 剥离未完成 tool_use(不清洗会 400)
API 重试 5 次指数退避、429 上限 3、4xx 不重试

二、复查抓到的 4 个致命缺陷

缺陷 后果
预检/失败环伪造 tool_use_id API 400,整轮求解中断
needPath 错列 run_python/ida_decompile 两个核心工具被判"缺 path"而拒绝
IDA 参数名写错(function vs function_name) IDA 工具永远无法通过预检
压缩切点落在 tool_result 上 对应 tool_use 被丢弃 → API 400

三、对话滚动修复

流式输出时每收到一个 token 就 scrollTop = scrollHeight,用户上滑一次立刻被拽回底部。改为 stick-to-bottom(距底 ≤48px 才跟随;滚轮上滑/PageUp/Home 立即脱离),新增"回到底部"按钮;日志面板同样受保护。

四、离线可用性

Font Awesome 全量本地化(约 1MB),CSP 收紧为 font-src 'self'。原来依赖 cdnjs,实测超时 16 秒导致 <link> 阻塞解析、页面卡在 loading——内网/离线环境会表现为启动卡死。

五、分组密码能力(v1.7.0–1.7.2)

  • crypto-tables.js:AES/SM4 全表知识库
  • classifySbox():exact / XOR·ADD / GF(2) 仿射三级判定(高斯消元 + 回代验证)
  • S 盒非线性度(Walsh 谱):修正两处公式错误——旧实现把 AES/SM4 标准表也算成 -128
  • inferCipherStructure():SM4 / AES 骨架推理
  • 多骨架解密器:SM4 全组合枚举 + AES pycryptodome 主路径;DES/Blowfish 明确不支持

测试

25 个测试文件 / 13 道真实回归题 / 全绿。


安装包:CTF-RE-TOOL.exe 需本地 npm run build:exe 后上传(便携单文件)。

CTF-RE-TOOL v1.6.0 — 自主解题能力

Choose a tag to compare

@ip2867 ip2867 released this 17 Oct 06:43

核心转变:从"给 AI 喂结论"到"用数据验证假设"

v1.6.0 把工具从"辅助解题"推进到"自主解题"。四个阶段全部落地,并经过多轮真机实测验证。

一、载荷检测流水线(可插拔)

新增 PAYLOAD_DETECTORS 注册表,"找下一层载体"不再是单一公式:单字节 XOR/ADD × stride 1/2/4、
周期 XOR(2/3/4/8 字节,用 DOS stub 已知明文恢复密钥)、滚动 XOR/ADD、Base64/Hex 文本、ELF/DEX、裸 shellcode 序言。
新增形态只需注册一个函数,主流程/提示词/测试都不用改。

二、负面断言自动反证(本项目最重要的机制)

AI 说"没有第二载体 / 没有加密 / 真 flag 不在此文件"时,工具不再被动采信,而是用扫描数据反驳:

  • 规则表:no-second-carrier / no-crypto / no-decoding / no-vm / delegates-to-user
  • 只报确定性证据(偏移、长度、魔数),不用猜测反驳猜测
  • 反证成立且本轮无 flag → 自动追加一轮 AI,把反驳当新一轮输入

delegates-to-user 专门拦截"请用户提供 stage2"这类把可自动完成的活推给人的结论。

三、假设—实验—反馈闭环

  • 求解脚本输出 [FAIL]/[MISS] 结构化行 → 自动归因为"算法错 / key 错 / 参数形态错 / 密文取错"
  • rankAttempts() 按信息增益排序候选(工具识别的算法优先、已排除组合降权)
  • 失败组合落盘 excluded_paths.json,下一轮提示词注入"已排除的路"

四、跨阶段自主接力

  • 扫描到高置信度 PE/ELF/DEX 载荷且本层无算法指纹时,工具自动解码→写盘→校验魔数→接力
  • 判据区分「载荷定位结论」与「算法指纹结论」
  • 四段式交接包;层数上限 3→6

五、常量差分分析 + SM4 变体全组合解密

针对"AI 认出了算法却仍解不出"的实测问题(曾耗 345 秒 / 59 次工具调用未果):

  • analyzeCustomBlockConstants():比对 S 盒与标准表、定位轮常量表并算出精确差分
    (如"该表 = 标准 SM4 CK 的每一字节都 +0x1")、给出 FK 候选与字节序线索
  • buildSM4VariantDecryptScript():生成可执行脚本,枚举 密文候选 × FK 候选 × key 候选
    × 8 种字节序 × 3 种块内排列,命中即退出
  • 工具直接执行该脚本,1.1 秒解出,不再消耗 AI 预算

能力边界(明确声明):脚本只覆盖 SM4 骨架。无 SM4 形态轮常量表时拒绝生成;
未命中时明确标注"不代表算法认错",避免 AI 误推翻正确结论。

六、修复真机暴露的 3 个通用缺陷

  • analysisData 跨作用域引用(3 处)→ ReferenceError 吞掉整轮 AI 结果
  • "内嵌 PE/high" 被当作算法指纹 → 自动接力在每道 loader 题上失效
  • _inStageHandoff 阻断多层接力 → 多层题只能剥一层

另修复两个解码 bug:ADD 编码方向写反;JS 模板里的 "\n" 劈开 Python 字符串。

七、测试与回归

  • 16 个测试文件,全部通过
  • 13 道真实赛题回归集(正例验证能力生效,负例验证不误伤)
  • 能力边界 14 项断言(非 SM4 结构必须拒绝生成脚本)
  • 新增 test_scope_safety.js:静态扫描跨作用域引用,防止同类 bug 复发

八、同步修复的遗漏

  • electron/preload.js 的 scanCryptoFingerprints 桥接此前只在源码仓存在,现已同步
  • README 补上 v1.5.3 更新日志(此前遗漏)

下载:CTF-RE-TOOL.exe(单文件便携版,约 73 MB)

SHA256:0209f3ccc202496f0dfd512f70dd270d99c50d4b28856e0809f269957a2c7d9b

v1.5.1 — 修复消息路由误拦 + 全局中文输出

Choose a tag to compare

@ip2867 ip2867 released this 16 Oct 08:21

CTF-RE-TOOL v1.5.1

修复实战反馈的两个可用性问题。

一、消息路由宽泛关键词误拦(严重)

旧路由用 includes('工具') 做子串匹配——消息里只要出现「工具」二字(如"不要调用工具"),就直接返回固定文案并 return,AI 完全收不到消息。同类宽泛拦截共 13 处(输出/脚本/流程/反调试/签名 及 tea/aes/rc4/md5/apk/pe/elf 等)。
→ 全部改为精确匹配(整句命令 or 明确意图短语),自然语言提问一律交给 AI。

二、AI 输出中英混杂

AI 推理叙述常输出英文。
→ 在主进程请求构造处单点注入中文约束,100% 覆盖所有 AI 调用路径(聊天/Tool-Use/分级模型/复盘/题解)。代码、flag、路径、寄存器名保持原样不翻译。

下载

  • CTF-RE-TOOL.exe(73MB portable)
  • SHA256: 7FB826508EA4B478E6F09F332359F5C233551E4656F0C8947F1620279A272641

Full Changelog: v1.5.0...v1.5.1

v1.5.0 — CTF² 8 题实战打磨(验证闭环三修 + 新题型分流)

Choose a tag to compare

@ip2867 ip2867 released this 15 Oct 10:25

CTF-RE-TOOL v1.5.0

CTF² Agent Arena 真实解题 8/8 全解出后的实战打磨版:验证闭环三修、新题型分流、题目隔离。

验证闭环三修(custom 契约命中率 0/3 → 3/3)

  1. 调用形态自适应 — AI 常写单参 decrypt(target),旧脚本只按双参调用全灭;现按 inspect.signature 自动尝试五种调用形态
  2. expected 双向包含 — AI 截断的 flag 前缀不再全等必败
  3. printable() 剥协议头 — RC4 明文的控制字符封装头不再把 flag 埋进 hex

新题型分流

  • detect-file-type 新增 XML / TXT 两类;新增 analyzeXMLText() 全文直读 + Tool-Use 求解
  • OOXML(xlsx/docx/pptx)按 ZIP 容器解压;主文件按公式数主导打分(支持 Excel 公式逆向题)

平台/下载器加固

  • 下载器目录碰撞自动改名(EISDIR 整轮中止 → 消除)
  • 每题附件独立子目录 + 多附件主文件类型权重(防 AI 跨题读到历史残留)
  • CTF² 自动解题流水线保留代码内,平台拉题按钮从 UI 移除

下载

  • CTF-RE-TOOL.exe(73MB portable)
  • SHA256: FEEDE65F8FD531F314FC2C3AF080E6E9602468DABA1D5551EE3A8C4311055F75

Full Changelog: v1.4.0...v1.5.0

CTF-RE-TOOL v1.4.0

Choose a tag to compare

@ip2867 ip2867 released this 14 Oct 11:20

CTF-RE-TOOL v1.4.0 — 修复 Frida Hook 证据被噪音淹没 / 降噪失效 / 经验跨阶段丢失

审查两次真实运行日志(一次 APK 自动解题、一次 Frida 动态 Hook)后,发现并修复三个真实缺陷。

一、Frida 输出"真证据被噪音挤出 AI 结论窗口"(高危,可能漏 flag)

Hook 输出回灌 AI 前,旧逻辑把 [DATA]/[FLAG] 真证据与 [HIT] 噪音混在一个池子里再 slice(-120)。而噪音(可达上百条)通常出现在真证据之后 → 尾部 120 条几乎全是噪音,真证据被整段丢弃。

本次实测复现:131 条关键行 = 2 条真证据 + 129 条噪音,slice(-120) 后真证据保留 0 条。
(这次 flag 没丢,是因为另有一条独立逻辑直接收割 [FLAG] 行兜底;但若 flag 只以 [DATA]/普通解密输出形式出现,就会彻底漏掉。)

修复:改为分级保留 —— 高价值行([DATA]/[FLAG]/flag 形态/加解密实参/SP 读写)全部保留、不参与截断;仅对 [HIT] 噪音限量(保留末尾 40 条作线索)。实测:真证据 ✅必留。

二、Frida String.equals 降噪形同虚设(129 条 [HIT] 全是误报)

两条根因:

  • 关键词正则 /flag|ctf|key|secret|token|pass|stage/i 命中了应用包名本身 —— 本题包名 com.nctf.hookmysecret 同时含 ctf 与 secret,导致每条涉及包名的比较都被判"有意义"而刷屏;
  • 兜底规则"两串 ≥6 字且长度差 ≤2"太松,把 include==ViewStub、pathInterpolator==linearInterpolator、res/*.xml 等框架/资源串全部放行。

修复:重写为"高熵优先 + 噪音形态黑名单"——

  1. 高熵串(flag 形态 / 长 hex / base64)先保留(flag==flag 这种最终校验不能被误杀);
  2. 双方均为噪音形态(包名 / 资源路径 / 绝对路径 / 算法名 / 框架词)→ 排除;
  3. 语义词命中且非噪音形态才打印。

修复前后对比:129 条噪音 → 0 条(降噪 100%),5 个正例(flag、hex key、password 对)全部保留。

三、经验"跨阶段丢失"(前序暂存的经验永远进不了库)

一次 APK 解题里,阶段2(初步分析)AI 产出的经验被"暂存",阶段2.5(Tool-Use)解出 flag 后只入库了它自己那条 —— 阶段2 那条滞留在内存 pendingExperience,既不入库、也不持久化(关应用即丢)。且该暂存区从不随换题清空,会跨题残留。

修复:① 换题(加载新文件)时清空 pendingExperience;② 解题成功时把本题前序暂存的全部经验一并入库(含防御性去重)。实测:阶段2 暂存 1 条 + 阶段2.5 成功 1 条 → 库内 2 条、暂存清空、重复幂等。

验证

  • 修复 #1:真证据必留 ✅(旧逻辑已丢,新旧对照复现)
  • 修复 #2:降噪 128/128 = 100%;正例 5/5 全保留 ✅
  • 修复 #3:经验接管与幂等 ✅
  • 无回退:经验流 6/6、相似度判别 5/5、finalizeSolve 契约 2/2、求解路径审计 10/10
  • node --check:main.js / app.js / preload.js 全过

下载:CTF-RE-TOOL.exe(Windows 便携单文件,双击即用)

适用范围:CTF 竞赛、授权渗透测试、自有系统的安全研究。

CTF-RE-TOOL v1.3.14(2026-10-14 汇总)

Choose a tag to compare

@ip2867 ip2867 released this 14 Oct 09:52

CTF-RE-TOOL v1.3.14 — 2026-10-14 当日汇总

本 Release 汇总 2026-10-14 当天的全部更新。当天原按里程碑分成了 v1.3.6 ~ v1.3.14 多次发布,现合并为一个版本,统一保留本页说明;其余同日 Release 已下线(仅保留最新安装包)。
下载即用最新构建,无需逐个版本看。


一、解题结构根治(v1.3.13 / v1.3.14)

"三件套"收口为单一入口 finalizeSolve()
过去"验证闭环"和"经验沉淀"是两步、散落在 9 个求解流程里各写一遍,于是反复出现"某条路径漏接"。现已收口:finalizeSolve(text, {source}) 一步内含「验证闭环 → 失败自动枚举 → 登记 flag → 解题成功则经验自动入库」,9 处全部改调它 —— 从结构上让"漏接"不可能发生。

5 类"只会指路"的入口改为真正解题
审计发现 .dex / .jar / .class / Mach-O / .luac 的处理器只有 15~24 行,只启动外部工具或打印一段指引,AI 完全不参与:

类型 旧行为 新行为
DEX 只启动 jadx JEB MCP 采集类列表 + 关键类反编译 → AI 求解 → 验证闭环
JAR / .class 只启动 jadx 同上(JEB 优先,不可用时降级 jadx 并明确告知)
Mach-O 只打印文字 IDA MCP 采集 → 二进制求解闭环
.luac 只打印文字 扫描明文串/长hex/base64/常量 → AI 求解 → 验证闭环

分流表 12/12 全部路由到真实求解器(ZIP 除外,其本就不是题目文件)。

修复跨文件 MCP 缓存泄漏(v1.3.14 复审发现)

  • analyzeJavaLike 未清缓存 → 连解多题时上一题的类代码混进本次提示词;现入口先 clearMcpCache()。
  • state._keyClassesByContent(APK 内容命中筛查产物,用于把高价值类置顶)从不重置 → 会把上一题的类强行排到本题最前,挤掉真正的关键类;现并入 clearMcpCache() 重置。

二、经验与知识库"真正帮到解题"(v1.3.11 / v1.3.12)

经验机制:从"只暂存、要手动保存"改为解题成功自动入库;去重从"按整行(含日期)比对、换日必重复"改为与日期无关的内容级去重(精确 + 二元组相似度≥0.78 + 子串判定,阈值经真实样本双向校准,不误合并不同题);经验注入补全到所有求解路径。

题库攻略不再"存了没用":修复 wiki_search 解析 YAML meta 的正则 bug(m 标志令 $ 匹配行尾)—— 列表写法的 attack_chain/failed_attempts 曾被解析为空,43 篇题库仅 13 篇解法链可用。修复后 13 → 38 篇,检索摘要升级为 要点 + 解法链 + 避坑(失败教训)。

主路径自动预取:新增 prefetchKnowledge(),从已采集代码里探测算法/工具/混淆特征词,调用 AI 前主动检索题库并把攻略摘要内联进提示词(禁止调工具的固定清单路径由此也能拿到题库)。已覆盖 APK/PE/ELF、PYC、Web/JS、DEX/JAR、Lua。

三、PYC 逆向从"无解"到可用(v1.3.8)

  • 多后端自动回退:配置的 pycdc → xdis/pydisasm → 原生 marshal+dis → 纯字节串扫描(永不空手)。
  • 内置零依赖助手 electron/pyc_decompile.py:判定 Python 版本(3.4~3.13)、递归 dump 反汇编与常量、单列 CONSTS 表。
  • 求解器兼容 PYC 高频写法:xor 单字节整数密钥(xor_key=199,此前被当 b"199" 三字节必解不出)、custom 返回 str/list[int] 归一化。

四、验证闭环与动态 Hook 通用性(v1.3.6 / v1.3.7)

  • 修复 IDA 采集 0 反编译(最严重):window.electronApi 拼写错 → TypeError 被空 catch 吞掉 → 一个 native 函数都拿不到;改正后实测反编译 0 → 19 个。
  • 验证闭环不再"没契约就放弃":新增 synthesizeHypotheses() 自合成候选矩阵(≤24 组)。
  • AES/DES-CBC 缺 IV/给错 IV 不再必然失败(枚举全零/首块/前置 IV + 回退 ECB);口令 key 自动派生(MD5/SHA-256/零填充)。
  • 动态 Hook 修复"抓到输出却报 0 条关键数据"、手动 Hook 自动驱动界面、枚举失败改按 PID attach、String.equals 降噪。
  • 多候选密文交叉校验 + 自动裁决(IDA xrefs_to 判"哪条被校验函数引用"),防"变种题"陷阱。

五、重构引入问题的修复(v1.3.9 / v1.3.10)

  • v1.3.9:验证闭环 7 处复制粘贴收敛为 verifyAndRecord()(纯重构,行为不变)。
  • v1.3.10:修复该重构遗漏 —— autoSolveFlag/autoSolveBinaryFlag 只解构 verifiedFlags 却仍引用裸 flags,导致 ReferenceError: flags is not defined(AI 明明分析成功却报异常)。

下载:CTF-RE-TOOL.exe(Windows 便携单文件,双击即用)

适用范围:CTF 竞赛、授权渗透测试、自有系统的安全研究。

CTF-RE-TOOL v1.3.5

Choose a tag to compare

@ip2867 ip2867 released this 13 Oct 09:18

结构化知识库 + 解题成功率优化

知识库重构(结构化 + RAG 友好)

  • 新增全局检索索引 wiki/AI-SEARCH-INDEX.md 与速查表 wiki/PAYLOAD-CHEATSHEET.md
  • 新增历年逆向题条目库 wiki/reverse/:44 篇纯逆向题(从 132 候选筛选、剔除 PWN/杂项),每题带 attack_chain(解法链)/ reasoning_chain(思维链)/ failed_attempts(避坑)等 YAML meta
  • 修复结构化检索失效:wiki_search 此前只解析 --- front matter,而条目库把 meta 放在 ```yaml 围栏里,导致 tags/attack_chain 加权完全失效;现兼容两种写法,并新增 vuln_type/contest/difficulty 加权
  • 命中片段优先展示 one_liner + attack_chain,且保留原文大小写(防止把大小写敏感的 flag 小写化)
  • 系统提示瘦身:不再逐条列出 44 篇逆向条目路径(交给 wiki_search 检索),每次请求省约 1.5k tokens

Frida 能力增强

  • 吸收两大开源 Frida Hook 项目精华:RegisterNatives 拦截、JCE 通杀自吐、SSL pinning 绕过(Java + native)、脱壳、反检测
  • 兜底模板注入题目情报(包名/类名/native 方法/算法特征)做针对性 Hook,不再是固定模板

AI 解题流程优化

  • APK/PE/ELF 深度求解改为四阶段流水线提示词:①收集代码+数据 → ②定位算法 → ③写脚本本地验证 → ④出结论
  • AI 脚本语法错自动重新生成 2 轮

环境自愈

  • frida client/server 版本一致性自检、双 adb 互杀重连、装 APK 前 package 服务就绪轮询、GUI 窗口可见性修复(IDA/JEB/Nox)

隐私与安全

  • 移除源码/文档中硬编码的私有 AI 中转地址(Base URL 默认留空,未配置时明确报错)
  • git-filter-repo 抹除历史中的私有域名与本机路径
  • 清理构建残留与一次性调试脚本

修复

  • wikiSearch 结构化 meta 解析失效(见上)
  • baseUrl 为空时由 Invalid URL 改为明确的中文配置提示

下载:CTF-RE-TOOL.exe(Windows 便携单文件,双击即用)

适用范围:CTF 竞赛、授权渗透测试、自有系统的安全研究。

CTF-RE-TOOL v1.3.4

Choose a tag to compare

@ip2867 ip2867 released this 09 Oct 13:59

CTF-RE-TOOL v1.3.4 — 首个公开版本

便携单文件 exe,下载后双击即用(Windows 10/11,无需安装)。

功能

  • 文件类型自动识别(APK / PE / ELF / DEX / PYC / JAR / WASM 等)
  • 一键调用逆向工具(IDA / DIE / JEB / jadx / UPX / apktool / pycdc)
  • Frida 自动 Hook,支持进程内解密直接出 flag
  • 解密脚本生成 + 验证闭环([VERIFY] / [HYPOTHESES] 契约)
  • 内置 11 个逆向方法论技能 + 可检索知识库(Frida 专题、固件解包与仿真)
  • MCP 实时集成:IDA / JEB / Burp / 浏览器

适用于 CTF 竞赛、授权渗透测试与自有系统的安全研究。