首页
社区
课程
招聘
第一次写破文,请各位指正[原创][讨论]
发表于: 2006-11-19 18:03 4653

第一次写破文,请各位指正[原创][讨论]

2006-11-19 18:03
4653
【文章标题】: 第一次写破文,请各位指正
【文章作者】: 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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这边有个软件, 名称是sockmon5 ,他使用的压缩是现在流行的技术, 我已经研转悠了3天了, 被它搞得头都昏了~
2006-11-19 19:36
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
3
好在都是弱壳!!支持下
2006-11-20 06:49
0
雪    币: 44229
活跃值: (19955)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
最初由 Aucifer 发布
运行,呵呵 运行出错,这是程序自校验的原因,如何去除自校验,还请各位高手指教~~~~~~

........


谢谢楼主与大家分享心得,希望以后看到更精彩的。

有关自校验参考这篇:
http://bbs.pediy.com/showthread.php?s=&threadid=28298
2006-11-20 09:08
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
刚看看不懂,首先就被esp定律搞糊涂了,
后来发现这里介绍的很好,堪称经典,不遗余力的贴出来。

http://www.pediy.com/bbshtml/BBS6/pediy6083.htm
2006-11-20 11:55
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
6
不一定是多重壳

快速到OEP的方法全部都有局限性的

2次内存断点,ESP定律,ATTACH法等

主页上那个PE ARRMOR,用第一种方法断N次还没到OEP,用第二种方法因为硬件断点被占用了,根本断不下来。第三种由于是会弹窗口的程序,还好。

既然程序这么老实的出错,系统会有对话框问你是否调试该程序的,你选择取消就能进入调试器了,看堆栈,从出错的地方往回看,就能找到出问题的地方了。直接打开已脱壳的程序跟一次找到出错的位置也可以。而且不一定是自校验,可能是输入表加密之类的。
2006-11-20 13:07
0
游客
登录 | 注册 方可回帖
返回
//