花指令的实现方法

简单jmp

OD能骗过去,IDA正常识别。

1
2
3
4
5
__asm{
jmp label1
db junkcode
label1:
}

多层跳转

1
2
3
4
5
6
7
8
9
10
11
__asm{
jmp label1
db junkcode
label1:
jmp label2
db junkcode
label2:
jmp label3
db junkcode
label3:
}

jnx和jx条件跳转

1
2
3
4
5
6
__asm{
jz label1
jnz label1
db junkcode
label:
}

永真条件跳转

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
__asm{
push ebx
xor ebx,ebx
test ebx,ebx
jnz label1
jz label2
label1:
_emit junkcode
label2:
pop ebx
}
//...
__asm{
clc
jnz label1
_emit junkcode
label1:
}