首页
社区
课程
招聘
[原创]PC-Guard 5.0 加密文件简捷无KEY脱壳分析
发表于: 2008-1-19 01:41 8827

[原创]PC-Guard 5.0 加密文件简捷无KEY脱壳分析

2008-1-19 01:41
8827
PC-Guard 5.0 加密文件简捷无KEY脱壳分析

Writer by KuNgBiM/[CCG]

Email: kungbim@163.com

Date: January 18, 2008

Debuger Tools: OllyICE、Universal Import Fixer (UIF)、ImportREC

【目标程序信息】

Particle Illusion 3.03

官方主页:http://www.wondertouch.com

Particle Illusion 是一套分子特效應用軟體,使用簡單、快速、功能強大、特效豐富,現在有愈來愈多的多媒體製作公司,使用 Particle Illusion 的特效,包括武俠劇的打鬥效果, Particle Illusion已成為電視台、廣告商、動畫製作、遊戲公司製作特效的必備軟體了。

【分析文件】

PEiD查壳后可知文件中由PC-Guard 5.0加壳的文件有:

particleIllusion.exe
pIllusionRender.exe
wtpi302lic.dll(这个也是PC-Guard 5.0加壳,但分析后得出结论,该文件属于授权系统自带的库文件,所以就不需要脱壳了,删除也罢 )

【正文】

由于篇幅及通用性关系,此篇文件就以particleIllusion.exe主程序作为分析脱壳目标程序。

【找寻OEP】

OllyICE载入目标文件:

0068E000 >  FC                 cld                                       ; EP
0068E001    55                 push ebp
0068E002    50                 push eax
0068E003    E8 00000000        call particle.0068E008
0068E008    5D                 pop ebp
0068E009    60                 pushad
0068E00A    E8 03000000        call particle.0068E012
0068E00F    83EB 0E            sub ebx,0E
0068E012    EB 01              jmp short particle.0068E015
0068E014    0C 58              or al,58
0068E016    EB 01              jmp short particle.0068E019
0068E018    35 40EB0136        xor eax,3601EB40
0068E01D    FFE0               jmp eax
0068E01F    0B61 B8            or esp,dword ptr ds:[ecx-48]
0068E022    9C                 pushfd
0068E023    3941 00            cmp dword ptr ds:[ecx],eax
0068E026    EB 01              jmp short particle.0068E029
0068E028    E3 60              jecxz short particle.0068E08A
0068E02A    E8 03000000        call particle.0068E032
0068E02F    D2EB               shr bl,cl
0068E031    0B58 EB            or ebx,dword ptr ds:[eax-15]

Alt+M打开内存镜像,并在第一区段F2下断,Shift+F9运行。

等出现PC-Guard的注册界面后直接“Continue”:

00BB10FB    281F               sub byte ptr ds:[edi],bl                  ; 中断在此
00BB10FD    50                 push eax
00BB10FE    8B85 B54C4200      mov eax,dword ptr ss:[ebp+424CB5]
00BB1104    3207               xor al,byte ptr ds:[edi]
00BB1106    D1C0               rol eax,1
00BB1108    8985 B54C4200      mov dword ptr ss:[ebp+424CB5],eax
00BB110E    58                 pop eax
00BB110F    47                 inc edi
00BB1110    59                 pop ecx
00BB1111    E2 02              loopd short 00BB1115
00BB1113    EB 05              jmp short 00BB111A
00BB1115  ^ E9 21FFFFFF        jmp 00BB103B

Alt+M再次打开内存镜像,并在PE文件头F2下断,Shift+F9运行:

7C930806    66:8139 4D5A       cmp word ptr ds:[ecx],5A4D                 ; 中断在此
7C93080B    75 1D              jnz short ntdll.7C93082A
7C93080D    8B51 3C            mov edx,dword ptr ds:[ecx+3C]
7C930810    81FA 00000010      cmp edx,10000000
7C930816    73 12              jnb short ntdll.7C93082A
7C930818    8D040A             lea eax,dword ptr ds:[edx+ecx]
7C93081B    8945 E4            mov dword ptr ss:[ebp-1C],eax
7C93081E    8138 50450000      cmp dword ptr ds:[eax],4550
7C930824    0F85 8B830200      jnz ntdll.7C958BB5
7C93082A    834D FC FF         or dword ptr ss:[ebp-4],FFFFFFFF
7C93082E    E8 CFE5FFFF        call ntdll.7C92EE02
7C930833    C2 0400            retn 4

Alt+M最后一次打开内存镜像,并在第一区段F2下断,Shift+F9运行,飞向OEP:

004D7F46    6A 60              push 60                                    ; OEP
004D7F48    68 A8A75300        push particle.0053A7A8
004D7F4D    E8 D6080000        call particle.004D8828
004D7F52    BF 94000000        mov edi,94
004D7F57    8BC7               mov eax,edi
004D7F59    E8 D2F3FFFF        call particle.004D7330
004D7F5E    8965 E8            mov dword ptr ss:[ebp-18],esp
004D7F61    8BF4               mov esi,esp
004D7F63    893E               mov dword ptr ds:[esi],edi
004D7F65    56                 push esi
004D7F66    FF15 08F45100      call dword ptr ds:[51F408]                 ; kernel32.GetVersionExA
004D7F6C    8B4E 10            mov ecx,dword ptr ds:[esi+10]
004D7F6F    890D B4A65500      mov dword ptr ds:[55A6B4],ecx
004D7F75    8B46 04            mov eax,dword ptr ds:[esi+4]
004D7F78    A3 C0A65500        mov dword ptr ds:[55A6C0],eax
004D7F7D    8B56 08            mov edx,dword ptr ds:[esi+8]
004D7F80    8915 C4A65500      mov dword ptr ds:[55A6C4],edx
004D7F86    8B76 0C            mov esi,dword ptr ds:[esi+C]
004D7F89    81E6 FF7F0000      and esi,7FFF
004D7F8F    8935 B8A65500      mov dword ptr ds:[55A6B8],esi
004D7F95    83F9 02            cmp ecx,2
004D7F98    74 0C              je short particle.004D7FA6

【Dump及修复IAT】

1、使用OllyDump插件去掉"Rebuild Import"选项后,直接在OEP处dump保存文件。

注意:如果这时直接使用ImportREC修复文件,IAT会存在一个无效函数,所以我们现在利用新工具Universal Import Fixer (UIF)来获取及修正IAT。

2、在此时的OD中打开附件进程功能,找到目标进程,复制进程的PID,然后打开UIF并粘贴到"Process ID"中,勾选"Fix Dircetly Imports"选项,OK,"Start"开始修复IAT表。

UIF修复记录:(附件:Uif-Log.txt)

===============================================================

Patch Success...

IAT RVA  : 00FB0000
IAT Size : 0000093C

Normal Imports   : 4644
Directly Imports : 0
All Imports      : 4644

===============================================================

3、运行ImportREC,设置选项:重建原始FT、创建新的IAT、修正EP到OEP、使用来自磁盘的PE头文件头,最后找到进程并填写相关数据:

OEP      : 000D7F46
IAT RVA  : 00FB0000
IAT Size : 0000093C

最后获取输入表,检查函数全部有效,修复抓取文件即可。

程序运行正常,程序为 Microsoft Visual C++ 7.0 所编译。

【小小总结】

PC-Guard 5.0 在没使用SDK而加壳的情况下可以不需要KEY来解码。

【鸣谢】

感谢linhanshi一直长期为我们提供国外的优秀工具。

--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
2
目标程序下载:
hxxp://rapidshare.com/files/84809303/particleIllusion3.03.rar.html
2008-1-19 01:42
0
雪    币: 623
活跃值: (10)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
支持K学习K
2008-1-19 01:54
0
雪    币: 228
活跃值: (75)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
好东西。学习了。嘻嘻。。。
目标程序下载:
hxxp://rapidshare.com/files/84809303/particleIllusion3.03.rar.html

这个要怎样下载啊?
2008-1-19 12:58
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
帮老K顶贴 传上UIF 谢谢老K的精彩文章
上传的附件:
2008-1-19 13:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
k偶像真厉害
我还以为UIF只可以修复expressor 呵呵
学习 学习啊....
2008-1-20 13:00
0
雪    币: 182
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
学习~~~~
2008-1-20 18:00
0
雪    币: 6604
活跃值: (2939)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个工具没用过,下来玩玩!
2008-1-23 08:18
0
游客
登录 | 注册 方可回帖
返回
//