我有一个从address+1
以后定义的指令和一个字节address
。我想从address+1
以后取消定义指令,并通过address
使用MakeCode
或类似的东西重新定义它们。
到目前为止,我还没有找到任何取消定义指令的函数。关于我应该在哪里寻找的任何指示?
我有一个从address+1
以后定义的指令和一个字节address
。我想从address+1
以后取消定义指令,并通过address
使用MakeCode
或类似的东西重新定义它们。
到目前为止,我还没有找到任何取消定义指令的函数。关于我应该在哪里寻找的任何指示?
这是我不久前编写的一些代码的 POC。
def fixTheJmpCalls():
# kind of slow to loop through all the functions and instructions but it works
# flaw: only defined functions will be traversed.this.
for funcea in Functions( SegStart( here() ), SegEnd( here() ) ):
for eai in FuncItems(funcea):
if GetMnem(eai) == "jmp" or GetMnem(eai) == "call":
if GetDisasm(eai)[-2:-1] == "+" and GetDisasm(eai)[-1:].isdigit():
print "Broken Instruction: %X"%eai, GetDisasm(eai)
code_addr = GetOperandValue(eai, 0)
fix_addr = code_addr -1
MakeUnkn(fix_addr,1)
MakeCode(code_addr)