操作數
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)