`jmp` 对附加段的访问冲突

Access violation on `jmp` to appended segment

所以我使用 CFF 资源管理器将代码部分添加到 .exe 文件。我已将部分特征设置为 0x60000020(可执行、可读、包含代码)并使用 IDA 在那里创建了一些虚拟代码。

但是,当我从原始 .text 段向该代码注入 jmp 时,我得到的只是访问冲突。我用 IDA 给二进制文件打补丁,所以它为我生成了偏移量,但似乎是对的:

jmp     far ptr 6:75D100h

生成的操作码看起来也是正确的:

EA 00 D1 75 00 06 00

但是我一跳就- "The instruction referenced memory at 0xFFFFFFFF, memory can't be read"。我尝试了一些偏移量但无济于事;附加的段似乎已正确加载到内存中。

对于我在这里遗漏的任何提示,我将不胜感激:)

只是为了将此标记为已回答 - 正如@Jester 和@RossRidge 提出的那样,解决方案是删除 jmp far。使用

jmp     near ptr 75D100h

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