【文章标题】: 第一次写破文,请各位指正
【文章作者】: Aucifer
【作者邮箱】: aucifer_blue@163.com
【作者QQ号】: 48701988
【软件名称】: 轻轻松松学开车 6.6
【下载地址】: http://www.sharebank.com.cn/soft/soft_view.php?id=10506
【使用工具】: OD PEID importREC
【操作平台】: XP SP2
【作者声明】: 黑客的精神和技术才是我的追求!
--------------------------------------------------------------------
【详细过程】
呵呵,第一次写破文,有什么出错处,还请各位指出!!!(本人的处女作啊)
首先,查壳PEID----->Nothing found * 不过在脱壳过程中可以看出这是个多重壳
下面OD载入:
0040101B >- E9 97843000 JMP DrvStudy.007094B7 ;载入OD就来到此处,直接F8
00401020 B4 09 MOV AH,9
00401022 BA 0B01CD21 MOV EDX,21CD010B
00401027 B4 4C MOV AH,4C
00401029 CD 21 INT 21
--------------------------------------------------------------------
007094B7 9C PUSHFD ;来到此处
007094B8 60 PUSHAD
007094B9 E8 00000000 CALL DrvStudy.007094BE ;在此用ESP定律
007094BE 5D POP EBP
007094BF B8 07000000 MOV EAX,7
007094C4 2BE8 SUB EBP,EAX
007094C6 8DB5 E9FAFFFF LEA ESI,DWORD PTR SS:[EBP-517]
007094CC 8B06 MOV EAX,DWORD PTR DS:[ESI]
007094CE 83F8 00 CMP EAX,0
007094D1 74 11 JE SHORT DrvStudy.007094E4
下断,F9运行后,断在
00709730 9D POPFD ;断在此处
00709731 - E9 CA68FFFF JMP DrvStudy.00700000 ;F8
00709736 8BB5 9DFAFFFF MOV ESI,DWORD PTR SS:[EBP-563]
0070973C 0BF6 OR ESI,ESI
0070973E 0F84 97000000 JE DrvStudy.007097DB
00709744 8B95 A5FAFFFF MOV EDX,DWORD PTR SS:[EBP-55B]
0070974A 03F2 ADD ESI,EDX
0070974C 833E 00 CMP DWORD PTR DS:[ESI],0
0070974F 75 0E JNZ SHORT DrvStudy.0070975F
00709751 837E 04 00 CMP DWORD PTR DS:[ESI+4],0
00709755 75 08 JNZ SHORT DrvStudy.0070975F
00709757 837E 08 00 CMP DWORD PTR DS:[ESI+8],0
0070975B 75 02 JNZ SHORT DrvStudy.0070975F
0070975D EB 7A JMP SHORT DrvStudy.007097D9
F8后,来到
00700000 55 PUSH EBP ;来到此处
00700001 8BEC MOV EBP,ESP
00700003 6A FF PUSH -1
00700005 68 2A2C0A00 PUSH 0A2C2A
0070000A 68 38900D00 PUSH 0D9038
0070000F 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00700015 50 PUSH EAX
00700016 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
0070001D 58 POP EAX
0070001E 64:A3 00000000 MOV DWORD PTR FS:[0],EAX
00700024 58 POP EAX
00700025 58 POP EAX
00700026 58 POP EAX
00700027 58 POP EAX
00700028 8BE8 MOV EBP,EAX
0070002A B8 01D06F00 MOV EAX,DrvStudy.006FD001
0070002F FFE0 JMP EAX ;跳到006FD001
00700031 90 NOP
00700032 0000 ADD BYTE PTR DS:[EAX],AL
--------------------------------------------------------------------
006FD001 60 PUSHAD ;来到此处
006FD002 E8 03000000 CALL DrvStudy.006FD00A ;再用一次ESP定律
006FD007 - E9 EB045D45 JMP 45CCD4F7
006FD00C 55 PUSH EBP
006FD00D C3 RETN
006FD00E E8 01000000 CALL DrvStudy.006FD014
006FD013 EB 5D JMP SHORT DrvStudy.006FD072
006FD015 BB EDFFFFFF MOV EBX,-13
006FD01A 03DD ADD EBX,EBP
下断后,SHIFT+F9来到:
006FD3AF 61 POPAD
006FD3B0 75 08 JNZ SHORT DrvStudy.006FD3BA ;来到此处,有没有发现,这一段代码是典型的ASPack壳出口点代码
006FD3B2 B8 01000000 MOV EAX,1
006FD3B7 C2 0C00 RETN 0C
006FD3BA 68 4C845F00 PUSH DrvStudy.005F844C
006FD3BF C3 RETN ;回到入口点
这里就是典型的Delphi程序的OEP处代码
005F844C 55 PUSH EBP ;这就是程序的入口点
005F844D 8BEC MOV EBP,ESP
005F844F 83C4 F0 ADD ESP,-10
005F8452 53 PUSH EBX
005F8453 B8 2C7F5F00 MOV EAX,DrvStudy.005F7F2C
在005F844C处脱壳,----->修复。
运行,呵呵 运行出错,这是程序自校验的原因,如何去除自校验,还请各位高手指教~~~~~~
----------------------------------------------------------------------
【经验总结】
在我感觉中,多重壳也就是N个壳的叠加,要破解他,也就只要一层层的脱就行了(新手),在自认为到OEP了,可以DUMP出
来看看,还没脱完就再继续。。。直到搞定为止。
以上是区区、在下、鄙人、我的一点陋见。。。见笑~~~~~
----------------------------------------------------------------------
【版权声明】: Aucifer出品,欢迎各位指正!~~~~~~
2006年11月19日 18:00:36
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)