您的位置:首页 > 其它

手脱PEncrypt 4.0

2015-11-15 00:35 375 查看
1.载入PEID
PEncrypt4.0Gamma/4.0Phi->junkcode[Overlay]
2.载入OD,没什么头绪,忽略所有异常,用最后一次异常法shift+F9运行两次,因为第三次会跑飞,所以运行两次,另外这个壳使用单步太费劲了,一不小心就跑飞了,所以直接使用的最后一次异常法进行脱壳的
00401000>FCcld;//入口点
00401001FCcld
00401002FCcld
0040100390nop
00401004-E9BDBA0000jmpPEncrypt.0040CAC6
00401009-E3D5jecxzshortPEncrypt.00400FE0
0040100B044Faddal,0x4F
0040100D-74A4jeshortPEncrypt.00400FB3
0040100FD24874rorbyteptrds:[eax+0x74],cl
3.最后一次异常法的落脚点,落脚后,右键—转到—表达式—输入SE句柄(也叫SE处理程序)”0040CCD7”—回车
0040CCD09Dpopfd0040CCD190nop0040CCD24Bdecebx;//最后一次异常法落脚点0040CCD36Foutsdx,dwordptres:[edi]0040CCD4636869arplwordptrds:[eax+0x69],bp0040CCD78B442404moveax,dwordptrss:[esp+0x4]0040CCDB8B00moveax,dwordptrds:[eax]0040CCDD3D04000080cmpeax,0x800000040012FF880040CCD7SE处理程序
4.回车后的位置,然后F2,SHIFT+F9,F2,也就是让程序运行到转到的位置上,然后继续F8,F8过程中,记得在向上跳转的下一行F4,也就是让程序运行到向上跳转的下一行,这是脱壳的基本原则,尽量不让程序往回跳
0040CCD36Foutsdx,dwordptres:[edi]0040CCD4636869arplwordptrds:[eax+0x69],bp0040CCD78B442404moveax,dwordptrss:[esp+0x4];//回车的位置0040CCDB8B00moveax,dwordptrds:[eax]0040CCDD3D04000080cmpeax,0x800000040040CCE27406jeshortPEncrypt.0040CCEA0040CCE44Bdecebx
5.找到关键跳,指向OEP的关键跳
0040CD269Dpopfd0040CD2761popad0040CD28BDCC104000movebp,PEncrypt.004010CC0040CD2D-FFE5jmpebp;//指向OEP的关键跳0040CD2F0000addbyteptrds:[eax],al0040CD310000addbyteptrds:[eax],al0040CD330000addbyteptrds:[eax],al
6.来到OEP,进行脱壳,需要注意的是脱壳后无法正常运行,需要使用loadPE重建PE表才可以正常运行
004010CC55pushebp;PEncrypt.004010CC004010CD8BECmovebp,esp004010CF83EC44subesp,0x44004010D256pushesi004010D3FF15E4634000calldwordptrds:[<&KERNEL32.Get>;kernel32.GetCommandLineA004010D98BF0movesi,eax004010DB8A00moval,byteptrds:[eax]004010DD3C22cmpal,0x22004010DF751BjnzshortPEncrypt.004010FC
7.运行查壳
运行OK,查壳:MicrosoftVisualC++v6.0SPx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: