本文只是适合新手手动脱壳的入门和爆破入门,高手们不要笑小弟呀! (可以多多提意见,我是很谦虚的!). 用到的工具: 1.)softice 4.05 2.)icedump v6.0.1.6 3.)filemon v245 4.)peditor v1.7 5.)ImportREC v 1.2beta2 我没有用trw2000,因为这个软件解密时检查Trw2000,我看是因为这软件是中国人写的吧!!(比较了解国情).一)脱壳部分: 1.)首先我们用filemon来检查文件的类型: 相信大家都会用吧:烤,怎么是petite2.2 ,没搞过呀!!!.别急. 2.)当然是检查程序的pe结构了: 打开peditor,选中程序,用笔记录以下几个数据: Entry Point:169042. Image base :400000 size of image:16a000. 3.)寻找入口点(OEP):先运行icedump->再运行softice loader--> 再Ctrl+d 好了准备工作完成了,该选择断点了.一般大家脱壳时用 bpx loadlibrarya do "dd esp->4"(经验,好好看看Pe结构并懂一些Win32编程即知) 再Ctrl+d-->再load program. 断了吧这是loadlibrary函数的入口,该函数是Dll中的不用理. bc *,按F12 n下,注意领空的变化呀!,到了主程序的领空后停下. 当前代码如下: 0167:004E7679 JZ 004E7683 0167:004E767B ADD ESP,2A 0167:004E767E JMP 00569015 0167:004E7683 MOV ESI,000E5000 0167:004E7688 ADD ESI,EBP 0167:004E768A LEA ECX,[EBP+00000800] 0167:004E7690 MOV EBX,EAX 0167:004E7692 CMP DWORD PTR [ESI],00 0167:004E7695 JZ 004E78A9 --->注意这是个捷径. 0167:004E769B PUSH ECX 0167:004E769C PUSH ECX 0167:004E769D CALL [EBP+00000790] 0167:004E76A3 TEST EAX,EAX ---->注意这是用F12跳到的第一条指令. 0167:004E76A5 JZ 004E778A 0167:004E76AB MOV EDI,EAX 0167:004E76AD ADD EAX,[EAX+3C] 0167:004E76B0 MOV EAX,[EAX+78] 0167:004E76B3 PUSH DWORD PTR [EDI+EAX+18] 0167:004E76B7 MOV ECX,[EDI+EAX+24] 0167:004E76BB ADD ECX,EDI 0167:004E76BD PUSH ECX ------------------------CPKCBJB!.petite+2679---------------- 程序第一次来到004e76a3,正常的话用F10开道(用F12就出去了),可是我参考了精华3上的如下文章: {标 题:脱壳----对用Petite2.2加壳的程序进行手动脱壳的一点分析 (5千字) 发信人:ljttt 时 间:2000-7-27 19:57:10 详细信息: 脱壳----对用Petite2.2加壳的程序进行手动脱壳的一点分析 } 那上说在这时应向上找入口点的捷径.所以我直接用指令g 004e78a9来到: (当然,你有耐心的话不用捷径用F10最后也可以来到这地方) 0167:004E78A4 SUB EBX,06 0167:004E78A7 JMP 004E786E 0167:004E78A9 POP ECX --->g 指令来到的点. 0167:004E78AA POP ESI 0167:004E78AB STD 0167:004E78AC XOR EAX,EAX 0167:004E78AE MOV ECX,00000356 0167:004E78B3 CALL 00569039 --->F8进入. 0167:004E78B8 ADD [EAX],AL 0167:004E78BA ADD [EAX],AL 0167:004E78BC ADD [EAX],AL 0167:004E78BE ADD [EAX],AL 0167:004E78C0 ADD [EAX],AL ------------------------CPKCBJB!.petite+288F---------------------- 必须进入不然又掉了.来到: 0167:00569039 POP EDI 0167:0056903A REPZ STOSB 0167:0056903C POPAD 0167:0056903D POPF 0167:0056903F ADD ESP,08 0167:00569042 JMP 004C3E28 --->很关键的跳(OEP的跳). 0167:00569047 JMP KERNEL32!GetCurrentThreadId 0167:0056904C JMP KERNEL32!VirtualFree
上一篇:手动脱壳的教程(由petite v2.2加壳)
下一篇:regetjr去除广告条
|