Repository navigation
CTF-RE-TOOL v1.6.0 — 自主解题能力
核心转变:从"给 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