论彩票快车白金版v90的脱壳+爆破
2006-07-03 20:26:19 来源:WEB开发网本文只是适合新手手动脱壳的入门和爆破入门,高手们不要笑小弟呀! (可以多多提意见,我是很谦虚的!).
用到的工具:
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上的如下文章:
那上说在这时应向上找入口点的捷径.所以我直接用指令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
0167:00569051 JMP KERNEL32!LocalFree
------------------------CPKCBJB!+0039----------------------
接着来到OEP.:
0167:004C3E28 PUSH EBP --->程序的入口点
0167:004C3E29 MOV EBP,ESP
0167:004C3E2B ADD ESP,-0C
0167:004C3E2E PUSH EBX
0167:004C3E2F MOV EAX,004C3B60
0167:004C3E34 CALL 004061A8
0167:004C3E39 MOV EBX,[004C6B34] -----------------------CPKCBJB!+000C2E28------------------------
呵呵,OEP找到了,成功一半了.
下指令/dump 400000 16da000 1.exe
退出softice和icedump.
更多精彩
赞助商链接