Repository navigation
v1.8.0 — 动态调试打通 + 知识库可达性修复
v1.8.0 — 动态调试打通,知识库真正接进解题链路
这一版只做一件事:让工具真的能参与解题,而不是把能力写进文档就算完成。
动态调试:从"看起来能用"到"实测能用"
三个被误判很久的实现缺陷:
- 进程状态语义判反 ——
get_process_state()的-1是已暂停、1是运行中。
此前把 1 当暂停去等、把 -1 当无状态,于是所有单步都"失败"。 continue/run_to是异步投递 —— 插件返回的 IP 是投递前的旧值,必须轮询到进程真正停下。
GUI 程序进入消息循环后 STATE 恒为 1,这是正常状态而非错误。start_process("")在路径为空时返回 0(启动被取消) —— 以前"能用"是因为进程选项里
残留着上次的目标路径;做过一次远程调试后残留变成 Linux 路径,本地启动就稳定失败。
这才是"本地调试时好时坏"的真正原因。
远程调试另有三处与本地不同:start 后不会停在入口(需主动 suspend)、
PIE 断点必须用重定位后的地址、dbg_add_bp 对远程段恒返回 False(改用 idaapi.add_bpt)。
实测:本地 PE 10/10、远程 ELF 11/11(下断点命中 main → 单步 → 命中 check → 读写内存)
知识库:从"写了"到"用得上"
审计发现方法论页写完后自动预取根本拉不到(5 个真实题面特征全部落榜):
特征词表没有动态调试信号、检索词退化、提示词清单只列非 reverse/ 页、技能描述也没提。
修复后 5 类特征均排到检索第 1 位,普通算法题不误命中。
新增能力
| 能力 | 说明 |
|---|---|
ida_dbg status/suspend |
状态查询与运行态固定,start 幂等 |
| 运行态拦截 | step/run_to/write 在运行态被前置拦截并给出下一步 |
crypto |
离线 AES/SM4/DES/RC4/TEA/哈希/HMAC,标准向量 35/35,数据不出本机 |
recipe |
CyberChef 式变换链,一次跑完 base64→xor→反转→解压,逐层给 printable/entropy/hex |
gui_input |
标准控件喂输入 + 回读校验(sent-verified / unverified) |
remote_exec |
Kali SSH 透传退出码,错误分类 TIMEOUT/AUTH/REFUSED/UNCONFIGURED |
下载
CTF-RE-TOOL.exe(74.11 MB,便携单文件,双击即用,无需安装 / 无需 Node.js)
SHA256 = 0b81078183312a1e8acb31ab1c4f784ad430284c7423ed64b8d3d29ed32ee167
首次运行请在「设置」页填写 IDA / JEB / jadx 等外部工具路径(本工具是调度框架,不含这些工具)。
回归
单元测试 78/78;新增两个手工验收脚本:
tests/manual_dbg_local.js(10/10)、tests/manual_dbg_remote.js(11/11)。
完整变更:v1.7.3...v1.8.0