gpt4 book ai didi

c - 在c中编写跳转指令

转载 作者:行者123 更新时间:2023-11-30 14:22:58 26 4
gpt4 key购买 nike

首先,是的,这是一个从外部控制可执行文件的项目。不,我对此没有任何恶意,这个项目的最终结果无论如何也不会产生任何有用的东西。我是在 32 位 XP 安装上用 cygwin 编写的。

我需要做的是将COM文件的前几位更改为跳转指令,以便在执行时,它将跳转到COM文件的最末尾。我查看了汇编器手册来查找该命令的字节是什么,以便我可以用 C 对其进行硬编码,但没有运气。

第一个问题:我可以用 C 语言做到这一点吗?在我看来,我可以在任何 COM 文件的开头插入操作码,这样它就会执行它而不是 COM 文件。

第二个问题:有人知道我在哪里可以找到操作码资源,以便我可以将它们插入到我的文件中吗?或者,有谁知道跳转指令的字节是什么?

如果您对此内容的真实性有任何疑问,请随时询问。

最佳答案

Intel® 64 and IA-32 Architectures Software Developer Manual Volume 2A Instruction Set Reference解释了 JMP 指令的编码(实模式是 IA-32 的子集)。

对于 16 字节近跳转(在当前代码段内),您可以使用 0xE9 后跟要跳转到的相对偏移量。如果跳转是 COM 文件的第一个字节,则偏移量将相对于地址 0x103 - COM 文件的第一条指令始终加载在地址 0x100 处,并且该跳转是相对于 3 字节跳转之后的指令而言的。

关于c - 在c中编写跳转指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13327013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com