IDA程序集修补失败,“无法从当前位置到达目标”

时间:2012-05-08 04:32:29

标签: patch disassembly ida

我是IDA(和逆向工程)的新手。

我正在尝试使用edit->修补程序菜单中的“patch-> assembly”选项,但它失败并出现我无法理解的错误。

我当前的行是“jnz short func”(其中func是我从loc_xxxx重命名的标签),我正在尝试将其更改为“jmp short func”,但是当我单击OK时,我会收到一个消息框,其中包含消息:“无法从当前位置到达目的地”。

任何人都可以解释这是什么意思,为什么不起作用?我试图搜遍所有,我找不到任何答案!

我还必须补充一点,我这样做是我发现的IDA教程的一部分(在tut4you.com中)。

再次感谢您的帮助,我真的很感动!

1 个答案:

答案 0 :(得分:0)

“jnz short func”和“jmp short func”指令没有相同的字节数。尝试保持代码与原始代码对齐。 此外,jnz,jz,ja,..(条件跳转)不适用于远指针(即段间)..但只有jmp ..