beijingren 发表于 2014-5-4 23:35:26

Presentation Assistant 2.8.0破解分析

【破文标题】Presentation Assistant 2.8.0破解分析
【破文作者】Beijingren
【破解工具】OD
【破解平台】XP
【软件名称】Presentation Assistant 2.8.0
【软件大小】6.2MB
【原版下载】http://www.presentation-assistant.com/download/presentationa.zip
【保护方式】ini文件
【软件简介】看名字就知道了,演讲辅助用的,感觉软件很不错,smallhorse发布了一个他破解的版本,才知道这么个软件,然后下载了原版。花一个晚上研究了一下,感觉注册过程还是比较简单的,写个破文备份。这个月开始会连续加班数个月,希望年底能有个好收成~~暂停crack的活动一段时间,主要精力还得养家糊口,呵呵。
------------------------------------------------------------------------
【破解过程】我下载的是免安装的portable版本
先试着运行了一下,标题,关于会有trial字样,输假码有错误对话框
PEID,无壳,VC++
OD载入,Unicode查找,看到很多有用信息
其中就有license\license.ini,当然,还有trial version
到license\license.ini下断,看了下参数,新建了一个,内容如下

USERID=Beijingren
SERIALNUMBER=111111111111111111
在Trial Version处往上找,段首下断,重载
运行,断在段首,F8单步,走到下面代码
4466AA      393D F0239B00 CMP   DWORD PTR , EDI
004466B0      0F85 A8000000 JNZ   new.0044675E             //关键跳转
004466B6      68 EC398700   PUSH    new.008739EC   
此时EDI为0,常量9B23F0的值是关键
于是,查找所有常量,寻找给它赋值的地方,共有5个mov,都下断
0063A840   Presenta   始终                         mov dword ptr ds:,esi
0063A8E5   Presenta   始终                         mov dword ptr ds:,esi
0063B491   Presenta   始终                         mov dword ptr ds:,eax
0063B4AA   Presenta   始终                         mov dword ptr ds:,ecx
0063BC38   Presenta   始终                         mov dword ptr ds:,0
重新加载,断在0063B491
63B491    A3 F0239B00   mov dword ptr ds:,eax        //第一次给常量赋值,为0,不管这里赋值为多少,下面ecx清零后还是会将常量置零
0063B496    33C9            xor ecx,ecx                                //ecx清零
0063B498    3BC1            cmp eax,ecx
0063B49A    75 06         jnz short Presenta.0063B4A2
0063B49C    890D 04249B00   mov dword ptr ds:,ecx
0063B4A2    390D 18249B00   cmp dword ptr ds:,ecx
0063B4A8    75 69         jnz short Presenta.0063B513
0063B4AA    890D F0239B00   mov dword ptr ds:,ecx        //再次赋值0
ecx赋值给常量的地方无法修改,所以从
0063B491    A3 F0239B00   mov dword ptr ds:,eax        //eax改为1,其余字节用nop填充
0063B496    33C9            xor ecx,ecx
0063B498    3BC1            cmp eax,ecx
0063B49A    75 06         jnz short Presenta.0063B4A2
保存为可执行文件,运行,显示为标准版,继续,改为旗舰版
还是字符串那边,在trial下面有 ultimate,professional,standard字样,段首下断
往下单步
这里是显示注册版本类型的地方,在00446506处,将esp+44的值传递给了eax,然后与7比较,等于就不跳。

004464FC|.8D4424 30   LEA   EAX, DWORD PTR
00446500|.64:A3 0000000>MOV   DWORD PTR FS:, EAX
00446506|.8B4424 44   MOV   EAX, DWORD PTR
0044650A|.33DB          XOR   EBX, EBX
0044650C|.83F8 07       CMP   EAX, 0x7
0044650F|.895C24 10   MOV   DWORD PTR , EBX
00446513|.75 5D         JNZ   SHORT Presenta.00446572
00446515|.68 98398700   PUSH    Presenta.00873998                ;Ultimate
0044651A|.8D4424 18   LEA   EAX, DWORD PTR
0044651E|.68 90398700   PUSH    Presenta.00873990                ;180
往下翻,可以发现各个版本的代码,6是专业版
00446572|> \83F8 06       CMP   EAX, 0x6
00446575      75 56         JNZ   SHORT Presenta.004465CD
00446577|.68 74398700   PUSH    Presenta.00873974                ;Professional
0044657C|.8D5424 18   LEA   EDX, DWORD PTR
00446580|.68 6C398700   PUSH    Presenta.0087396C                ;179
如果eax不等于6,就跳到这里,变成标准版
004465CD|> \68 58398700   PUSH    Presenta.00873958                ;Standard
004465D2|.8D4C24 18   LEA   ECX, DWORD PTR
004465D6|.68 50398700   PUSH    Presenta.00873950                ;178
图省事呢,就nop第一个跳转,个人倾向于修改赋值比较妥当,程序不容易出错
00446506|.8B4424 44   MOV   EAX, DWORD PTR
这句直接给eax赋7不行,字节数不够,于是在尾部找了块地方patch
0086B100      B8 07000000   MOV   EAX, 0x7
0086B105      33DB          XOR   EBX, EBX
0086B107    ^ E9 FAB3BDFF   JMP   new2.0044650C
00446506改为 jmp 0086B100,多余字节nop填充
再保存,运行一下,OK!

------------------------------------------------------------------------
【破解总结】想学老大优雅,但是做不到哇~~~~~~
有大大路过,指导指导如何优雅~~~~~~~
------------------------------------------------------------------------
【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
**** Hidden Message *****


尿尿不洗手 发表于 2014-5-5 07:52:00

学习了!希望LZ有时间多发发这种深入浅出的破文给我们新手学习。

wkxq 发表于 2014-5-5 07:56:54

很精彩的分析

xingbing 发表于 2014-5-5 10:57:13

学习学习。

阳光宅男 发表于 2014-5-5 12:08:37

学习一下 ,感谢分享了

飞天 发表于 2014-5-5 13:52:23

支持楼主的破文,顺便再发一个原创补丁就是两个主题。

beijingren 发表于 2014-5-5 15:14:32

感谢楼上各位的支持~~~

jolly_800 发表于 2014-5-5 15:44:41

学习一下破文,谢谢

montana 发表于 2014-5-5 21:09:52

支持楼主的破文

Dxer 发表于 2014-5-6 12:29:21

{:sweat:}来看看大牛是怎么学习的
页: [1] 2
查看完整版本: Presentation Assistant 2.8.0破解分析