用途:在 IDA 环境中反编译函数并做结构化分析,适用于需要伪代码、ctree AST 分析、局部变量语义、标签或反编译器注释清理的场景。触发意图包括“反编译该函数”、伪代码理解、AST 级分析、反编译形态下的局部变量语义,以及以反编译器为中心的模式挖掘(返回、调用、条件)。
主要能力:提供 pseudocode、ctree、ctree_lvars、ctree_labels、ctree_call_args 等表,以及 ctree_v_calls、ctree_v_loops、ctree_v_ifs、ctree_v_returns 等预置视图;支持注释增删改、局部变量类型与注释更新、标签重命名、调用参数扁平化查询。
必要用法:先用 SELECT * FROM pragma_table_list WHERE name IN ('pseudocode','ctree','ctree_lvars'); 探测能力;用 SELECT decompile(0x401000); 查看伪代码。所有反编译表必须用 WHERE func_addr = 0x... 约束,否则会反编译每个函数导致极慢。写注释用 UPDATE pseudocode SET comment_placement='semi', comment='...' WHERE func_addr=... AND addr=...;写函数注释用 UPDATE funcs SET comment=... 或 rpt_comment=... WHERE addr=...。修改局部变量优先用 idx:UPDATE ctree_lvars SET type='WCHAR[6]' WHERE func_addr=... AND idx=...。编辑后确认需强制重编译:SELECT decompile(addr, 1)。
限制:依赖 Hex-Rays;若无反编译器表则退回反汇编与交叉引用工作流。部分行为、成本与完整示例见其引用文档,未在此资料中展开的内容暂未提供。