-
-
[求助]VC++最快速度方式编译的ASM代码规律
-
发表于:
2007-4-8 14:58
5854
-
只要在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)
问题是,该技巧是否在其他版本中有效
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!