“jmp”访问附加段的违规行为

时间:2016-12-02 16:29:46

标签: windows assembly x86 exe ida

所以我使用CFF Explorer将代码段添加到.exe文件中。我已经将节特征设置为0x60000020(可执行,可读,包含代码),并使用IDA在那里创建了一些虚拟代码。

但是,当我从原始jmp段向该代码注入.text时,我得到的只是访问冲突。我使用IDA来修补二进制文件,因此它为我生成了偏移,但似乎是正确的:

jmp     far ptr 6:75D100h

结果操作码看起来也是正确的:

EA 00 D1 75 00 06 00

但是一旦我跳到那个跳转 - “指令引用内存为0xFFFFFFFF,内存无法读取”。我已经尝试了一些补偿无济于事;附加的段似乎已正确加载到内存中。

如果对我在这里缺少的任何暗示感激不尽:)

1 个答案:

答案 0 :(得分:0)

只是将此标记为已回答 - @Jester和@RossRidge提出的解决方案是放弃jmp far。使用

jmp     near ptr 75D100h

修复了一切。不得不说IDA的行为可能有点奇怪。