首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >相对偏移跳变

相对偏移跳变
EN

Stack Overflow用户
提问于 2012-07-20 20:36:37
回答 4查看 2.9K关注 0票数 1

如何才能强迫相对偏移量的值?

我知道该怎么做:jmp label_name

想做的事:jmp $0x01

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-07-22 20:25:50

语法问题..。Nasm将使用"$ + 5",(G)将使用". + 5",也可能需要"$“(?)。我从最初的标签上了解到,我们在使用纳玛斯?那么"$ + 5“应该是正确的,但可能不会做你想做的事情。asm语法将是"jmp目标“(或用于Gas的"jmp $target”),您将在反汇编中看到同样的情况.但是仔细看看正在生成的字节。"jmp“操作码后面是”距离目标“,而不是”目标“!如果您想编码“距离到目标”,我认为您需要使用"db 0xE8“(或适当的操作码),然后是"db (或dw或dd) 0x??”(我认为“.byte”或".long“表示天然气)。这可能不是你想做的。重新考虑你的密码。

最好,弗兰克

票数 1
EN

Stack Overflow用户

发布于 2012-07-20 20:39:39

您可以使用相对跳转,例如

代码语言:javascript
运行
复制
jmp $+5

它相对于跳跃的开始。

票数 4
EN

Stack Overflow用户

发布于 2020-11-09 02:48:02

下面是我为好玩而做的一个例子。(使用NASM)

代码语言:javascript
运行
复制
BITS 32
segment .text
global _start
_start:
    jmp tmp
    PUSH 0x68732f
    PUSH 0x6e69622f
    LEA EBX,[ESP]
    ; ...
_jumpstop:
    tmp equ ($ - _start)

这样,一旦被编译,它就变成了

代码语言:javascript
运行
复制
00000000  E90D000000        jmp 0x12
00000005  682F736800        push dword 0x68732f
0000000A  682F62696E        push dword 0x6e69622f
0000000F  8D1C24            lea ebx,[esp]

因此跳转在lea ebx,[esp]之后立即着陆

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11586622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档