我尝试测试一些反拆卸技术。其中一个跳转到指令的中间,如下图所示:
使用代码时
mov ax, 05EBh
xor eax, eax
jz -7
db 0xE8
在NASM的小程序中,我收到以下错误:
"错误:Win32 COFF无法正确支持对绝对地址的相对引用"
知道如何解决该问题或使用哪种工具而非NASM?
答案 0 :(得分:3)
如果你想跳转到jz
指令开始的地址减去7个字节,那么你可以用:
jz $-7
来自NASM manual:
的行开头的装配位置
$
计算包含表达式
请注意,mov
和xor
指令的大小总共为6个字节,因此您需要在mov
开始之前跳转到1个字节。要根据你的身材跳跃,你要使用jz $-4