跳到指令的中间

时间:2015-05-12 13:42:29

标签: assembly disassembly

我尝试测试一些反拆卸技术。其中一个跳转到指令的中间,如下图所示:

使用代码时

mov     ax, 05EBh
xor     eax, eax
jz      -7
db      0xE8

在NASM的小程序中,我收到以下错误:

"错误:Win32 COFF无法正确支持对绝对地址的相对引用"

知道如何解决该问题或使用哪种工具而非NASM?

1 个答案:

答案 0 :(得分:3)

如果你想跳转到jz指令开始的地址减去7个字节,那么你可以用:

jz $-7

来自NASM manual

  

$计算包含表达式

的行开头的装配位置

请注意,movxor指令的大小总共为6个字节,因此您需要在mov开始之前跳转到1个字节。要根据你的身材跳跃,你要使用jz $-4