跟了几个yoda'scrypter v1.2的壳并参考了一下fly兄的脱壳文章(非常感谢fly),
现总结一下这个壳的脱壳要点.总的来说这个壳的保护只是一般,anti-debug的方法过于普通(用createFilea), 壳也没有多少花指令,脱壳要点:
一般加壳后你一直按f8(第一个call也是一样,这点和aspack之类的有点不同),到了如下地方就要f4下一行跳过:
loopd short XXXXXXXX
跳过后就来到anti-debug处了,怎么知道是哪里呢,一般看到很多如:
0040C191 E8 74000000 CALL D2K2_CRK.0040C20A
0040C196 8985 44274000 MOV DWORD PTR SS:[EBP+402744],EAX
0040C19C 8D85 48274000 LEA EAX,DWORD PTR SS:[EBP+402748]
call载入相关api时就要小心了按F8到了出现Createfilea(当然你也可以直接下bpx createfilea了)的下一行又一个经典cmp eax,-1这里的eax为8,改成-1就跳过了,再f8可以看到又一个经典
0040C345 8D85 A3214000 LEA EAX,DWORD PTR SS:[EBP+4021A3]
0040C34B 50 PUSH EAX
这里可以说是这个壳的标志吧??(这个不会因程序的变化而变化)
这后的ret 到的地方的下一行
0040C41C 039D 68254000 ADD EBX,DWORD PTR SS:[EBP+402568]
就push了oep
EBX=oep