逆向学习-IDApython(三)
操作数
idc.GetOpType(ea,n)获取操作数类型。ea是地址,n是索引。
o_void
如果指令没有任何操作数,它将返回 0。
o_reg
如果操作数是寄存器,则返回这种类型,它的值为 1
o_mem
如果操作数是直接寻址的内存,那么返回这种类型,它的值是 2,这种类型对寻找 DATA的引用非常有帮助。
o_phrase
如果操作数是利用基址寄存器和变址寄存器的寻址操作的话,那么返回该类型,值为 3
o_displ
如果操作数是利用寄存器和位移的寻址操作的话,返回该类型,值为 4
o_imm
如果操作数是一个确定的数值的话,那么返回类型,值为 5
o_far
这种返回类型在 x86 和 x86_64 的逆向中不常见。它用来判断直接访问远端地址的操作数,值为 6
o_near
这种返回类型在 x86 和 x86_64 的逆向中不常见。它用来判断直接访问近端地址的操作数,值为 7
交叉引用(Xrefs)
能够定位 data 段和 code 段的交叉引用是非常重要的,交叉引用的重要性在于它能够提供某个确定的数据或者某个函数被调用的位置。
补丁
idc.PatchByte(ea, value)
idc.PatchWord(ea, value)
idc.PatchDword(ea, value)
访问原始数据
idc.Byte(ea)i
dc.Word(ea)
idc.Dword(ea)
idc.Qword(ea)
idc.GetFloat(ea)
idc.GetDouble(ea)