吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9726|回复: 3
收起左侧

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

[复制链接]
kissy 发表于 2008-4-2 10:04
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一直长期为我们提供国外的优秀工具。

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

目标程序下载:
hxxp://rapidshare.com/files/84809303/particleIllusion3.03.rar.html

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

a393269192 发表于 2008-4-2 11:02
!~!~!~!~!~!~![s:17]~!~!~!~!~!~!~!~
pwzh88 发表于 2011-7-30 08:54
pwzh88 发表于 2011-7-30 09:03
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 07:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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