我正在使用 hexray api 获取通过反编译函数获得的 AST 树(ctree)的所有项目。
不幸的是,treeitems 向量总是空的。具体来说,此代码中的函数 paaaa 始终返回“0”或“E”。
from idautils import *
from idaapi import *
import idc
import ida_hexrays as hexray
def load_hex_ray():
if not init_hexrays_plugin():
idc.RunPlugin("hexx64", 0)
if not init_hexrays_plugin():
idc.RunPlugin("hexrays", 0)
if not init_hexrays_plugin():
idc.RunPlugin("hexarm", 0)
def paaaaa(address):
try:
cfun=hexray.decompile(address)
#if I print cfun it shows correct decompiled code.
cfun.refcnt=cfun.refcnt+1
cfun.build_c_tree()
return str((cfun.treeitems.size()))
except:
return 'E'
load_hex_ray()
#code that compute functions addresses and calls paaaaa
知道什么是错误的吗?我使用的是旧版本的 IDA 7.0