Skip to content

v1.8.0 — 动态调试打通 + 知识库可达性修复

Choose a tag to compare

@ip2867 ip2867 released this 20 Oct 07:03
· 50 commits to main since this release

v1.8.0 — 动态调试打通,知识库真正接进解题链路

这一版只做一件事:让工具真的能参与解题,而不是把能力写进文档就算完成。

动态调试:从"看起来能用"到"实测能用"

三个被误判很久的实现缺陷:

  1. 进程状态语义判反 —— get_process_state() 的 -1 是已暂停、1 是运行中。
    此前把 1 当暂停去等、把 -1 当无状态,于是所有单步都"失败"。
  2. continue/run_to 是异步投递 —— 插件返回的 IP 是投递前的旧值,必须轮询到进程真正停下。
    GUI 程序进入消息循环后 STATE 恒为 1,这是正常状态而非错误。
  3. 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