• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    手动脱壳入门第十八篇 PC Shrinker 0.71

    发布者: 您的网友已离线 | 发布时间: 2025-6-28 23:41| 查看数: 64| 评论数: 0|帖子模式

    【脱文标题】 手动脱壳入门第十八篇 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


    来源:https://www.jb51.net/hack/5150.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表