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

番茄系统家园 · 2022-03-14 05:21:46

【脱文标题】 手动脱壳入门第十八篇 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 >9CPUSHFD //记事本外壳入口。

0040AAFC60PUSHAD//仍然是ESP定律

0040AAFDBD B7710000 MOV EBP,71B7//这里的ESP为12FFA0

0040AB0201AD 543A4000 ADD DWORD PTR SS:[EBP 403A54],EBP

0040AB08FFB5 503A4000 PUSH DWORD PTR SS:[EBP 403A50]

0040AB0E6A 40 PUSH 40

0040AB10FF95 883A4000 CALL DWORD PTR SS:[EBP 403A88]

0040AB1650PUSH EAX

0040AB1750PUSH EAX

0040AB182D 7D394000 SUB EAX,NOTEPAD.0040397D

0040AB1D8985 7E394000 MOV DWORD PTR SS:[EBP 40397E],EAX

0040AB235FPOP EDI

0040AB248DB5 7D394000 LEA ESI,DWORD PTR SS:[EBP 40397D]

0040AB2AB9 FC000000 MOV ECX,0FC

0040AB2FF3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>

0040AB315FPOP EDI

0040AB32FFE7JMP EDI

..................................................

命令行 dd 12ffa0

下硬件访问-Dword断点。

F9运行

硬件中断。

标签1

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

0040AAFB >9CPUSHFD //记事本外壳入口。

0040AAFC60PUSHAD//

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

00132DC661POPAD //堆栈平衡,完全工整对应。

00132DC79DPOPFD//这里是出口,我们断在这里。

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

00132DC661POPAD

00132DC79DPOPFD//这里是出口,我们断在这里。转标签1看看

00132DC8BA CC104000 MOV EDX,4010CC

00132DCDFFE2JMP EDX//EDX=4010CC,这个是地球人都只道的记事本的OEP

004010CC55PUSH EBP//在这里用Loadpe直接脱壳

004010CD8BECMOV EBP,ESP

004010CF83EC 44 SUB ESP,44

004010D256PUSH ESI //我们看到加密表没有破坏,往下看到KERNEL32.GetCommandLineA

004010D3FF15 E4634000 CALL DWORD PTR DS:[4063E4] ; KERNEL32.GetCommandLineA

004010D98BF0MOV ESI,EAX

004010DB8A00MOV AL,BYTE PTR DS:[EAX]

004010DD3C 22 CMP AL,22

004010DF75 1B JNZ SHORT NOTEPAD.004010FC

004010E156PUSH ESI

004010E2FF15 F4644000 CALL DWORD PTR DS:[4064F4] ; USER32.CharNextA

004010E88BF0MOV ESI,EAX

004010EA8A00MOV AL,BYTE PTR DS:[EAX]

004010EC84C0TEST AL,AL

004010EE74 04 JE SHORT NOTEPAD.004010F4

004010F03C 22 CMP AL,22

004010F2^ 75 ED JNZ SHORT NOTEPAD.004010E1

...........................................................

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

脱壳主程序

继续OD载入它的主程序。

004066F8 >9CPUSHFD //主程序外壳入口。

004066F960PUSHAD//从这这句过后用ESP定律吧,

004066FABD B42D0000 MOV EBP,2DB4//到这里ESP=19ffa0

004066FF01AD 543A4000 ADD DWORD PTR SS:[EBP 403A54],EBP

00406705FFB5 503A4000 PUSH DWORD PTR SS:[EBP 403A50]

0040670B6A 40 PUSH 40

0040670DFF95 883A4000 CALL DWORD PTR SS:[EBP 403A88]

0040671350PUSH EAX

0040671450PUSH EAX

004067152D 7D394000 SUB EAX,PCSHRINK.0040397D

0040671A8985 7E394000 MOV DWORD PTR SS:[EBP 40397E],EAX

004067205FPOP EDI

004067218DB5 7D394000 LEA ESI,DWORD PTR SS:[EBP 40397D]

00406727B9 FC000000 MOV ECX,0FC

0040672CF3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>

0040672E5FPOP EDI

0040672FFFE7JMP EDI

................................................................................

dd 19ffa0

下硬件访问-Dword断点。

F9运行

硬件中断。

001A2DD661POPAD

001A2DD79DPOPFD//堆栈平衡

001A2DD8BA 00104000 MOV EDX,401000

001A2DDDFFE2JMP EDX//EDX=401000是主程序的OEP

00401000E8DB E8//这种情况大家应该见多了,点右键-分析-清除分析。

0040100105DB 05

0040100216DB 16

0040100300DB 00

0040100400DB 00

00401005A3DB A3

00401006DFDB DF

0040100737DB 37;CHAR '7'

0040100840DB 40;CHAR '@'

0040100900DB 00

0040100AE8DB E8

0040100BBFDB BF

0040100C15DB 15

免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/wlaq/192041xvXrD7.html
猜你喜欢
最新应用
热门应用