-3
我遇到了这个汇编代码,当试图编译它时说它有错误。对装配不太了解,我想知道是否有人可以帮助我。提前致谢。汇编代码错误
JMP 0x1F
POPL %ESI
MOVL %ESI, 0x8(%ESI)
XORL %EAX, %EAX
我遇到了这个汇编代码,当试图编译它时说它有错误。对装配不太了解,我想知道是否有人可以帮助我。提前致谢。汇编代码错误
JMP 0x1F
POPL %ESI
MOVL %ESI, 0x8(%ESI)
XORL %EAX, %EAX
在JMP
的目的地并使用它的不断0x1F
放置一个标签。或者,知道指令的长度,使用构造如JMP .+length+offset
,在这种情况下,长度是2个字节,因此它变成JMP .+0x21
。这将被编码为0xeb 0x1f
,这是phrack链接显然需要的。在86相对跳转被编码为从下一条指令的开始偏移,如果你不知道的指令长度,你可以把一个标签的指令后,像这样:
JMP next+0x1f
next:
POPL %ESI
MOVL %ESI, 0x8(%ESI)
XORL %EAX, %EAX
(局部标签可能会有所帮助,但在这种特殊情况下1f+0x1f
本来会令人困惑。)
请注意,汇编代码时,汇编器可能会选择一种您不期望的编码,因此如果您不使用标签,就会弄乱您的偏移。
什么是错误以及您使用的汇编程序/体系结构是什么?另外,我建议重新格式化您的代码,以便更清楚地看到所有内容都在这里。 – RonaldBarzell
完整的代码可以在http://www.phrack.com/issues.html?issue=49&id=14找到。 – melpomene
我原来格式化了它,但忘记在帖子中将其标记为“代码” –