SuperAPI AI 工具集

debugger

测试与质量

查看项目

更新于 10-15 16:47

技能介绍

该技能用于在 IDA 中执行调试器相关操作,触发场景包括增删改断点、修补或还原字节、创建补丁清单与调试行动计划,以及配合分析驱动的断点/监视流程。

主要能力:

  1. breakpoints 表支持完整增删改查(SELECT/INSERT/UPDATE/DELETE)。断点即使无活动调试会话也会持久化保存在 IDB 中。字段包括 addr、enabled、type(1=hw_write、2=hw_read、3=hw_rdwr、4=software、8=hw_exec)、size、flags、pass_count、condition、group、folder_path、bptid 等。
  2. bytes 表逐字节映射程序视图并支持修补。value/word/dword/qword 可写(分别修补 1/2/4/8 字节,小端),original_value 与 is_patched 为只读,可用 is_patched = 1 快速枚举补丁。

常用用法示例: 查看断点:SELECT printf('0x%08X', addr) as addr, type_name, enabled, condition FROM breakpoints; 添加软件断点:INSERT INTO breakpoints (addr) VALUES (0x401000); 添加硬件写监视:INSERT INTO breakpoints (addr, type, size) VALUES (0x402000, 1, 4); 条件断点:INSERT INTO breakpoints (addr, condition) VALUES (0x401330, 'eax == 0'); 修补单字节:UPDATE bytes SET value = 0x90 WHERE addr = 0x401000; 还原补丁:DELETE FROM bytes WHERE addr = 0x401000; 或 DELETE FROM bytes WHERE is_patched = 1; 持久化:SELECT save_database();

建议先做预热检查:确认现有断点与补丁状态,修改前先快照原始字节。可用 disasm_calls 批量对 API 调用点下断点,或结合反编译分析设置条件断点。

限制与注意:bytes 表为每个映射字节一行,必须用 WHERE addr = X 或紧凑地址范围约束,否则性能差;breakpoints 表通常较小可全表扫描。补丁校验不匹配时需重读字节后重试;出现非预期副作用时可用 DELETE FROM bytes WHERE addr = ... 还原。可配合 disassembly、xrefs、annotations 使用以验证语义、评估影响并记录理由。其他未在资料中说明的细节暂未提供。