只要在RETURN后面加入下面语句
_asm
{
}
ASM可以插入也可以不插入,只要有这个描述符(如果没有,则ret后面可能紧接着其他函数。最小大小的方式编译也是紧接其他函数),编译后的函数末尾便会有下面特征:
0040106B 50 push eax
0040106C C705 E8AC4000 0>mov dword ptr [40ACE8], 0A ; 请输入加数\n
00401076 FF15 C4704000 call dword ptr [<&USER32.MessageBoxA>>; USER32.MessageBoxA
0040107C B0 01 mov al, 1
0040107E 5D pop ebp
0040107F C3 retn
00401080 32C0 xor al, al
00401082 5D pop ebp
00401083 C3 retn
00401084 90 nop
00401085 90 nop
00401086 90 nop
00401087 90 nop
00401088 90 nop
00401089 90 nop
0040108A 90 nop
0040108B 90 nop
也就是说可以通过c3 9090909090作为特征码识别函数尾部
我用的是VC++ 6.0(sp6)
问题是,该技巧是否在其他版本中有效
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课