清风袭梦 發表於 2008-10-8 19:02:43

PECompact.v1.80.b2解密详解

/////////////////////////////////////////////////////////////////////

//

//目标软件:PECompact

//

//软件版本:1.80 Build 2

//

//官方网站:http://www.CollakeSoftware.com/

//

//软件授权:共享软件

//

//操作系统:Win95/98/ME、WinNT/2000

//

//软件简介:知名的PE格式文件压缩工具...

//

//软件保护:PECompact壳保护

//

/////////////////////////////////////////////////////////////////////

//

//使用工具:TRW2000 v1.22 娃娃修改版

//            (主要用于调试分析)

//

//            LordPE Armageddon by y0da

//            (Dump & PE文件分析修改)

//

//            WinHEX v10.4 SR-3

//            (用于PE文件的16进制修改)

//

//            Hiew v6.70

//            (用于添加SMC代码)

//

//            Our Brain...:-)

//

/////////////////////////////////////////////////////////////////////

//

//关于本文:本文主要目的在于教学,研究PECompact壳的分析及多重SMC解

//            密方法...请勿将此教程用于商业目的。

//

//                              Always Your Best Friend: FiNALSErAPH

//

//水平有限,难免疏漏...

//

//Any Question?

//Mail To: FiNALSErAPH@yahoo.com.cn

//

//                                                      2002-05-10

//

/////////////////////////////////////////////////////////////////////

//

//第1步:得到可正确执行的脱壳文件(其实只要DUMP就行,没必要可执行)

//

/////////////////////////////////////////////////////////////////////

这一步比较简单,我就不详细叙述...详细过程可参看以前的文章。关于OEP可

参看DiKeN的“快速找到PECompact加壳文件的OEP”



/////////////////////////////////////////////////////////////////////

//

//第2步:分析脱壳后的文件,找到我们要修改的地方

//

//      这里比较有意思的是对于PE文件控件的屏蔽...

//

//      这是最近研究ViRiLiTY做的破解才注意到的。

//

/////////////////////////////////////////////////////////////////////

对于解决日期限制问题就不多说了,比较简单。



pec1:004011E9                call    sub_40542F

pec1:004011EE                mov    ds:dword_40D69D, eax

                              //返回值是剩余的使用时间

                              //修改方法是将0040542F的指令变为ret

pec1:0040542F                enter30h, 0

                              //MOV b,,0C3

/////////////////////////////////////////////////////////////////////

对于显示Unregister! 我找到以下关键点:

pec1:004053A5                push    offset aUnregistered ; lpString

                              //->"Unregistered!"

                              //这里的代码要改为我们想保存自己姓名信息

                              //的地址。(这个地址可稍后确定)

                              //MOV d,,????????

pec1:004053AA                push    434h            ; nIDDlgItem

pec1:004053AF                push          ; hDlg

pec1:004053B2                call    SetDlgItemTextA

/////////////////////////////////////////////////////////////////////<br />



<br />










                                                <div class="cupage">上一页<strong>1</strong>2 下一页 阅读全文</div>
頁: [1]
查看完整版本: PECompact.v1.80.b2解密详解