您现在的位置: 骇客基地 >> 黑客文章 >> 黑客攻防 >> 黑客编程 >> 正文

手动脱壳入门第十八篇 PC Shrinker 0.71
骇客基地 阅读: 时间:2007-6-3 10:38:36 来源:www.hookbase.com
  
【脱文标题】 手动脱壳入门第十八篇 PC Shrinker 0.71

【脱文作者】 weiyi75[Dfcg]

【作者邮箱】 weiyi75@sohu.com

【作者主页】 Dfcg官方大本营

【使用工具】 Peid,Ollydbg,ImportREC

【脱壳平台】 Win2K/XP

【软件名称】 Pcshrink.exe

【软件简介】 Phrozen Crew PE Shrinker is an windows 9x/NT executable file compressor, allowing compressed executables to run, functionally,the same as always, but occupy a significantly less amount of disk space.

【软件大小】 15 KB

【下载地址】 本地下载PC Shrinker 0.71.rar

【加壳方式】 PC Shrinker 0.71 -> Virogen

【保护方式】 PC Shrinker压缩壳

【脱壳声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)

--------------------------------------------------------------------------------

【脱壳内容】

这个程序的压缩选项是非常丰富的,从界面中也没有加密选项,无效隐藏OD和设置异常。

先看看它加壳的记事本

本地下载NOTEPAD.rar

首先Peid查壳,为PC Shrinker 0.71 -> Virogen,OD载入运行,无任何异常,判断其为压缩壳。

0040AAFB >  9C              PUSHFD   //记事本外壳入口。
0040AAFC    60              PUSHAD  //仍然是ESP定律
0040AAFD    BD B7710000     MOV EBP,71B7  //这里的ESP为12FFA0
0040AB02    01AD 543A4000   ADD DWORD PTR SS:[EBP+403A54],EBP
0040AB08    FFB5 503A4000   PUSH DWORD PTR SS:[EBP+403A50]
0040AB0E    6A 40           PUSH 40
0040AB10    FF95 883A4000   CALL DWORD PTR SS:[EBP+403A88]
0040AB16    50              PUSH EAX
0040AB17    50              PUSH EAX
0040AB18    2D 7D394000     SUB EAX,NOTEPAD.0040397D
0040AB1D    8985 7E394000   MOV DWORD PTR SS:[EBP+40397E],EAX
0040AB23    5F              POP EDI
0040AB24    8DB5 7D394000   LEA ESI,DWORD PTR SS:[EBP+40397D]
0040AB2A    B9 FC000000     MOV ECX,0FC
0040AB2F    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
0040AB31    5F              POP EDI
0040AB32    FFE7            JMP EDI
..................................................

命令行 dd 12ffa0

下硬件访问-Dword断点。

F9运行

硬件中断。

标签1

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

0040AAFB >  9C              PUSHFD   //记事本外壳入口。
0040AAFC    60              PUSHAD  //

解压缩过程,就是我们以前慢慢跟踪的一下循环圈。

00132DC6    61              POPAD   //堆栈平衡,完全工整对应。
00132DC7    9D              POPFD  //这里是出口,我们断在这里。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

00132DC6    61              POPAD
00132DC7    9D              POPFD  //这里是出口,我们断在这里。转标签1看看
00132DC8    BA CC104000     MOV EDX,4010CC
00132DCD    FFE2            JMP EDX  //EDX=4010CC,这个是地球人都只道的记事本的OEP

004010CC    55              PUSH EBP    //在这里用Loadpe直接脱壳
004010CD    8BEC            MOV EBP,ESP
004010CF    83EC 44         SUB ESP,44
004010D2    56              PUSH ESI   //我们看到加密表没有破坏,往下看到KERNEL32.GetCommandLineA
004010D3    FF15 E4634000   CALL DWORD PTR DS:[4063E4]               ; KERNEL32.GetCommandLineA
004010D9    8BF0            MOV ESI,EAX
004010DB    8A00            MOV AL,BYTE PTR DS:[EAX]
004010DD    3C 22           CMP AL,22
004010DF    75 1B           JNZ SHORT NOTEPAD.004010FC
004010E1    56              PUSH ESI
004010E2    FF15 F4644000   CALL DWORD PTR DS:[4064F4]               ; USER32.CharNextA
004010E8    8BF0            MOV ESI,EAX
004010EA    8A00            MOV AL,BYTE PTR DS:[EAX]
004010EC    84C0            TEST AL,AL
004010EE    74 04           JE SHORT NOTEPAD.004010F4
004010F0    3C 22           CMP AL,22
004010F2  ^ 75 ED           JNZ SHORT NOTEPAD.004010E1
...........................................................

运行ImportREC,选择这个进程。把OEP改为000010cc,点IT AutoSearch,点“Get Import”,函数都是有效的。FixDump,正常运行,记事本脱壳完毕。

脱壳主程序

继续OD载入它的主程序。

004066F8 >  9C              PUSHFD   //主程序外壳入口。
004066F9    60              PUSHAD  //从这这句过后用ESP定律吧,
004066FA    BD B42D0000     MOV EBP,2DB4  //到这里ESP=19ffa0
004066FF    01AD 543A4000   ADD DWORD PTR SS:[EBP+403A54],EBP
00406705    FFB5 503A4000   PUSH DWORD PTR SS:[EBP+403A50]
0040670B    6A 40           PUSH 40
0040670D    FF95 883A4000   CALL DWORD PTR SS:[EBP+403A88]
00406713    50              PUSH EAX
00406714    50              PUSH EAX
00406715    2D 7D394000     SUB EAX,PCSHRINK.0040397D
0040671A    8985 7E394000   MOV DWORD PTR SS:[EBP+40397E],EAX
00406720    5F              POP EDI
00406721    8DB5 7D394000   LEA ESI,DWORD PTR SS:[EBP+40397D]
00406727    B9 FC000000     MOV ECX,0FC
0040672C    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
0040672E    5F              POP EDI
0040672F    FFE7            JMP EDI
................................................................................

dd 19ffa0

下硬件访问-Dword断点。

F9运行

硬件中断。

001A2DD6    61              POPAD
001A2DD7    9D              POPFD  //堆栈平衡
001A2DD8    BA 00104000     MOV EDX,401000
001A2DDD    FFE2            JMP EDX  //EDX=401000是主程序的OEP

00401000      E8            DB E8  //这种情况大家应该见多了,点右键-分析-清除分析。
00401001      05            DB 05
00401002      16            DB 16
00401003      00            DB 00
00401004      00            DB 00
00401005      A3            DB A3
00401006      DF            DB DF
00401007      37            DB 37                                    ;  CHAR '7'
00401008      40            DB 40                                    ;  CHAR '@'
00401009      00            DB 00
0040100A      E8            DB E8
0040100B      BF            DB BF
0040100C      15            DB 15
0040100D      00      

[1] [2] 下一页

今天广告
参与评论:
注意事项:
【手动脱壳入门第十八篇 PC Shrinker 0.71】文章由骇客基地网上搜集,其立场行为并不代表本站。
如果您发现该文章若无意中侵犯到您的权利,请联系我们!
未经本站明确许可,任何网站不得非法盗链及抄袭本站资源;如引用页面,请注明来自本站,谢谢您的支持!
最近更新
最新推荐
     
 
黑客首页 | 服务指南 | 软件发布  | 关于我们 | 本站声明  | 隐私声明 | 诚征英才 | 网站地图 | 友情链接 |
 
 
中国·黑客·骇客·基地 请使用IE6.0版本, 分辩率1024×768进行浏览 www.hookbase.com 站长:利客 Email:hookbase@163.com
Copyright © 2004-2009 All Rights Reserved. 粤ICP备05000985号