gpt4 book ai didi

assembly - JMP rel16(而不是 JMP rel32)

转载 作者:行者123 更新时间:2023-12-02 06:57:40 26 4
gpt4 key购买 nike

我需要为漏洞利用演示制作一个跳转操作码。

我需要在跳转指令之后跳转到大约 200 个字节。这对于 jmp short 来说太多了。

如果我生成一个带有常规跳转的操作码,jmp $200 我得到这个:

e9 fb 01 00 00

这里的问题是操作码包含 00,当将字符串传递给程序时,它被解释为字符串的结尾(因此我无法传递包含它的完整 shellcode)。

我以为我的方法搞砸了,但后来 I checked the manual在第二行显然有一个占用 2 个字节的“近跳转”(还有另一个占用 4 个字节,我在上面显示的那个)。这两个跳转都以相同的字节 e9 开始。

如何将 e9 fb 01 作为只接受两个字节参数的近跳转传递?如何防止操作系统在 e9 之后查找四个字节,即:e9 fb 01 90 90

最佳答案

你不能。

0xE9 操作码在处理器以 32 位模式运行时使用 32 位偏移量,仅当处理器以 16 位模式运行时使用 16 位偏移量。

关于assembly - JMP rel16(而不是 JMP rel32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28099835/

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