我正在研究一个小的IDAPython脚本。
脚本本身100%的时间在这样的行上工作:
qword_FFFFFFF006F1E6C0 DCQ 0xFFFFFFF007758C18
当它查看地址时,0xFFFF..
会看到那里是否有某个函数,如果存在,则使用函数名+段信息重命名qword。
现在,有时,反汇编看起来像这样:
off_FFFFFFF006F1E690 DCQ OSDictionary::withCapacity(uint)
,当然,脚本在这里分解(期望一个地址,给一个名字......)。
我想要做的是获取第二个操作数(OSDictionary::with...
)的地址,并正常执行脚本。
不幸的是,我不知道如何做到这一点,以获得我使用的地址:
disas = GetDisasm(addr).split(" ")
fun_addr = disas[1]
....
如果您总是想要目的地的地址,可以使用get_qword函数
https://www.hex-rays.com/products/ida/support/idadoc/1321.shtml
这是IDAPython中的Qword函数。只需做Qword(addr)
,这将为您提供地址作为数字。您可能需要补偿endianity(使用struct)。