;跳转到 函数执行后的吓一吓一跳指令继续执行END_EXIT: ;程序结束的代码不关注 mov ax, 4c00h int 21h
看到上面的代码发现了什么,是不是和我们上面的图很像...一直加标号,一直调用吗,显然是不切实际的.
2.Call 带有参数的传递
上面发现了一个大缺陷,就是不能参数传递,这样就不行了,那么我们要想办法,可不可以在外面传入参数
看代码:
mov cx,1
mov...jmp d_ONE ;跳转到 函数执行后的吓一吓一跳指令继续执行
END_EXIT: ;程序结束的代码不关注
mov ax,
4c00h...我们发现jmp的地方下面申请了一个字节,但是在汇编的时候,这1个字节和mov的机器码在一起了
因而产生的汇编代码就出错了,花指令混淆就是这样,这段代码还是可以正常执行的
对抗手法
1.如果是动态的调试,...,他要jmp, jmp 1个字节,这个时候可以写个工具去弄,把jmp变为NOP(就是告诉CPU不执行)
现在我们在WINHEX中找到,然后改为 90机器码(代表NOP)
?