| 
注册时间2008-5-1
阅读权限30
最后登录1970-1-1UID49047 龙战于野 
 
 TA的每日心情|  | 奋斗 2025-1-6 18:17
 | 
|---|
 签到天数: 153 天 [LV.7]常住居民III | 
 
| 【破文标题】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下断,看了下参数,新建了一个,内容如下
 [License]
 USERID=Beijingren
 SERIALNUMBER=111111111111111111
 在Trial Version处往上找,段首下断,重载
 运行,断在段首,F8单步,走到下面代码
 4466AA      393D F0239B00 CMP     DWORD PTR [0x9B23F0], EDI
 004466B0      0F85 A8000000 JNZ     new.0044675E             //关键跳转
 004466B6      68 EC398700   PUSH    new.008739EC
 此时EDI为0,常量9B23F0的值是关键
 于是,查找所有常量,寻找给它赋值的地方,共有5个mov,都下断
 0063A840   Presenta   始终                         mov dword ptr ds:[9B23F0],esi
 0063A8E5   Presenta   始终                         mov dword ptr ds:[9B23F0],esi
 0063B491   Presenta   始终                         mov dword ptr ds:[9B23F0],eax
 0063B4AA   Presenta   始终                         mov dword ptr ds:[9B23F0],ecx
 0063BC38   Presenta   始终                         mov dword ptr ds:[9B23F0],0
 重新加载,断在0063B491
 63B491    A3 F0239B00     mov dword ptr ds:[9B23F0],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:[9B2404],ecx
 0063B4A2    390D 18249B00   cmp dword ptr ds:[9B2418],ecx
 0063B4A8    75 69           jnz short Presenta.0063B513
 0063B4AA    890D F0239B00   mov dword ptr ds:[9B23F0],ecx        //再次赋值0
 ecx赋值给常量的地方无法修改,所以从
 0063B491    A3 F0239B00     mov dword ptr ds:[9B23F0],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 [ESP+0x30]
 00446500  |.  64:A3 0000000>MOV     DWORD PTR FS:[0], EAX
 00446506  |.  8B4424 44     MOV     EAX, DWORD PTR [ESP+0x44]
 0044650A  |.  33DB          XOR     EBX, EBX
 0044650C  |.  83F8 07       CMP     EAX, 0x7
 0044650F  |.  895C24 10     MOV     DWORD PTR [ESP+0x10], EBX
 00446513  |.  75 5D         JNZ     SHORT Presenta.00446572
 00446515  |.  68 98398700   PUSH    Presenta.00873998                ;  Ultimate
 0044651A  |.  8D4424 18     LEA     EAX, DWORD PTR [ESP+0x18]
 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 [ESP+0x18]
 00446580  |.  68 6C398700   PUSH    Presenta.0087396C                ;  179
 如果eax不等于6,就跳到这里,变成标准版
 004465CD  |> \68 58398700   PUSH    Presenta.00873958                ;  Standard
 004465D2  |.  8D4C24 18     LEA     ECX, DWORD PTR [ESP+0x18]
 004465D6  |.  68 50398700   PUSH    Presenta.00873950                ;  178
 图省事呢,就nop第一个跳转,个人倾向于修改赋值比较妥当,程序不容易出错
 00446506  |.  8B4424 44     MOV     EAX, DWORD PTR [ESP+0x44]
 这句直接给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!
 
 ------------------------------------------------------------------------
 【破解总结】想学老大优雅,但是做不到哇~~~~~~
 有大大路过,指导指导如何优雅~~~~~~~
 ------------------------------------------------------------------------
 【版权声明】本文纯属技术交流, 转载请注明作者信息并保持文章的完整, 谢谢!
 
 
 
 
 | 
 评分
查看全部评分
 |