看过很多托ASProtect 2.1x的文章,一般都是先找OEP,方法有几种,一般都是 OD忽略除INT3外的所有异常(注意同时忽略以下所有异常前面不要选),过两次异常后在CODE段下内存断点,然后SHIFT F9就可以了.
或是忽略除非法访问内存异常外的所有异常,最后一次异常发生时,给代码段下断点(方法:ALT+M,然后找到freestyle的代码段,选中后按一下F2),然后shift+F9忽略异常.
出现下面代码,应该是正常的OEP
004B09F0 55 PUSH EBP
004B09F1 8BEC MOV EBP,ESP
004B09F3 83C4 F0 ADD ESP,-10
但是我用上述方法对我自己在解的那个程序 却到达这样的代码段:
很短,比较了一下论坛上的文章,简直差别太大.
00528500 3D 00100000 cmp eax, 1000
00528505 73 0E jnb short 00528515
00528507 F7D8 neg eax
00528509 03C4 add eax, esp
0052850B 83C0 04 add eax, 4
0052850E 8500 test [eax], eax
00528510 94 xchg eax, esp
00528511 8B00 mov eax, [eax]
00528513 50 push eax
00528514 C3 retn
00528515 51 push ecx
00528516 8D4C24 08 lea ecx, [esp+8]
0052851A 81E9 00100000 sub ecx, 1000
00528520 2D 00100000 sub eax, 1000
00528525 8501 test [ecx], eax
00528527 3D 00100000 cmp eax, 1000
0052852C ^ 73 EC jnb short 0052851A
0052852E 2BC8 sub ecx, eax
00528530 8BC4 mov eax, esp
00528532 8501 test [ecx], eax
00528534 8BE1 mov esp, ecx
00528536 8B08 mov ecx, [eax]
00528538 8B40 04 mov eax, [eax+4]
0052853B 50 push eax
0052853C C3 retn
很明显 不是正常的OEP.也许被抽取的太厉害了,甚至怀疑它是不是OEP.接下来就更不知道怎么做了.哎 偶是菜鸟没办法.
请高人指点迷经~~!!!! 谢谢
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!