SuperAPI AI 工具集

disassembly

通用与其它

查看项目

更新于 10-15 16:47

技能介绍

用途:面向 IDA 反汇编数据,通过 SQL 表查询函数、段、指令、操作数、基本块、CFG 边、函数分块等低层代码结构,用于调用点与控制流分析、操作数格式化以及字节/指令级证据获取。语义(AST/伪代码)问题应转向 decompiler,关系密集的调用/被调用分析转向 xrefs,打补丁与断点操作转向 debugger。

主要能力:funcs 表提供函数地址、名称、大小、返回类型、参数数量、调用约定等原型信息;segments 表支持段的新增、删除与重定位/改大小;names 与 entries 表管理命名与入口点;instructions 表给出助记符、完整反汇编行与 operand0..7 文本,可通过 operandN_format_spec 应用 hex/dec/char/offset/enum/stroff/sizeof/stkvar/forced 等表示法,并支持 signed、bnot 等修饰符;instruction_operands 提供每个操作数的类型与值;disasm_calls 解析调用目标并可覆写调用点原型;blocks 与 cfg_edges 描述基本块及分支/合并点;function_chunks 汇总函数分块。

使用方式:先查询 binary、segments 与最大函数做导向,随后在查询指令密集表面时尽早加入 func_addr 约束。可直接调用 SQL 函数:disasm_at(addr[,n])、disasm(addr[,n])、disasm_range(start,end)、disasm_func(addr)、make_code(addr)、make_code_range(start,end)。写操作遵循 SQL 语义,例如 UPDATE funcs SET name='my_func' WHERE addr=0x401000。

限制:instructions 与 heads 上缺少 func_addr 或紧致地址范围时查询会扫描全部代码头而变慢;instruction_operands 缺少 addr 或 func_addr 约束会全库扫描;cfg_edges 应始终使用 WHERE func_addr=X;文件夹路径拒绝 ./..、重复分隔符、反斜杠、非空删除及目标已存在的重命名;资料未提供价格、平台或收费信息。