会被执行和不会被执行¶
正常的汇编指令, 运行后不会改变原来的程序的堆栈/寄存器, 起到干扰静态分析的作用 - 利用堆栈操作 - 利用call和jmp指令 主要是通过NOP来改掉无关的代码, 注意修改函数的结束地址, 重定义函数
C
#include <stdio.h>
int main() {
_asm {
xor eax,eax;
jz s;
add esp , 0x11;
s;
}
printf("%s\n","hello world");
}
// 不会执行, 全部NOP
可以通过修改call所压入的返回地址, 配合retn跳到别的位置