0
我想使用idautils和or idaapi更改指令的Op值。 例如,我在內存中下載了一個二進制文件,並且我想更改JMP語句的JMP地址(我知道跳轉的位置,我可以獲得該語句)。 我試圖做這樣的事情:使用ida API修改指令
i = ida.idautils.DecodeInstruction(addr)
op = i.Op1
op.addr = new_addr
i.Op1.assign(op)
print i.Op1.addr
但該地址沒有改變。 相反,如果我這樣做:
i = ida.idautils.DecodeInstruction(addr)
op = idaapi.op_t()
op.addr = new_addr
i.Op1.assign(op)
print i.Op1.addr
它的工作原理,但是當我看字節(使用[idaapi.get_bytes(地址+ i)對於我在範圍(0,i.size)]),它們是沒有改變。 我想改變這個地址,並且當我讀取字節的時候也看到了這個改變。