首页
社区
课程
招聘
[原创]Foxit Phantom的完美破解
发表于: 2009-12-8 11:31 32815

[原创]Foxit Phantom的完美破解

2009-12-8 11:31
32815

【破解作者】 TopmenC
【使用工具】 OD
【软件名称】Foxit Phantom1.0.2.1123
【软件简介】 Foxit Phantom是一个商业级的PDF应用软件,是一个集创建,阅读和编辑PDF为一体的新工具.
【下载地址】http://www.skycn.com/soft/57351.html
【破解声明】只是感兴趣,没有其他目的。失误之处敬请赐教!
---------------------------------------------------------------------------------------------------
  前言
      这个软件可以说程序员技术很高,是用了Keyfile保护和重启验证的。遗憾的是,他忽略了一个细节,才会使软件轻松的被破解了。

破解过程:
PEID查壳: 

没壳的,可以省去了一步。
程序一运行就会出现这个试用的窗口。
 
我们需要注意的是:在注册的地方
 
懂点英文都应该看明白这个东西是什么意思了,大概的意思是说有key file的保护。
我们看一下程序的目录
 
只不过是生成fpmkey.txt的这样的一个文件,但是如果我们点keep Evaluating 的话,或者是注册错误的话,这个文件就会自动的删除了。
这个文件里面也没有内容,只不过是我们的一个注册码罢了。

在这如果是用原程序来调试的话,会很麻烦的。我们就直接用Registraion.exe这个文件来调试了。
OD 载入,我们会发现这个程序如要注册错误的话,会提示一个对话框,我们则可以用消息断点来下断。

右边的堆栈里
 
取消断点,Alt+F9返回,
 
在段首下断,右键,在反汇编窗口中跟随,
 
看到了吧,如果是注册错误的话,就会自动的原个key文件删除了。
分析一下这个程序段
可以轻松的找一个跳可以跳过这个错误的提示。

下面就是注册的了,我们随便的输入一个注册码,都是提示正确的。

 
看到了吧,这是重启验证的。我们把保存好的文件改名为程序原来的那个名称,也就是改名为Registraion.exe。
现在我们来看一下原来的程序,也就是自动安装放在桌面上的Foxit Phantom.exe。
我们注册一下,也同样是出现这一个错误的提示

 
而且在关于的里面

 
依然是未注册的。
这也是程序的历害的地方了吧。
花了几个小来搞都还是不行,如果有高手看到的话,麻烦告诉一声,非常感谢。

幸运的是,经过几小时的努力,我找到一个新的突破口,而且是很致命的。
我们从程序的开始的地方,一直往下面慢慢走,一直到出现这个
 

 
在这里用的方法就是把这个试用的窗口给跳过去就行的了。
我们慢慢的回溯代码。
 
 
0044DBE9    .  55               push ebp
0044DBEA    .  50               push eax
0044DBEB    .  E8 20331900      call Foxit_Ph.005E0F10
0044DBF0    .  83C4 0C          add esp,0C
0044DBF3    .  8D4C24 14        lea ecx,dword ptr ss:[esp+14]
0044DBF7    .  E8 84661800      call Foxit_Ph.005D4280
0044DBFC    .  8D4C24 28        lea ecx,dword ptr ss:[esp+28]
0044DC00    .  889C24 9C020000  mov byte ptr ss:[esp+29C],bl
0044DC07    .  E8 74661800      call Foxit_Ph.005D4280
0044DC0C    .  C74424 1C E096A5>mov dword ptr ss:[esp+1C],Foxit>
0044DC14    .  6A 20            push 20                         ; /Arg3 = 00000020
0044DC16    .  8D5424 2C        lea edx,dword ptr ss:[esp+2C]   ; |
0044DC1A    .  B3 07            mov bl,7                        ; |
0044DC1C    .  57               push edi                        ; |Arg2
0044DC1D    .  52               push edx                        ; |Arg1
0044DC1E    .  8D4C24 28        lea ecx,dword ptr ss:[esp+28]   ; |
0044DC22    .  889C24 A8020000  mov byte ptr ss:[esp+2A8],bl    ; |
0044DC29    .  E8 12051F00      call Foxit_Ph.0063E140          ; \Foxit_Ph.0063E140
0044DC2E    .  8B00             mov eax,dword ptr ds:[eax]
0044DC30    .  C68424 9C020000 >mov byte ptr ss:[esp+29C],8
0044DC38    .  85C0             test eax,eax
0044DC3A    .  74 05            je short Foxit_Ph.0044DC41
0044DC3C    .  83C0 0C          add eax,0C
0044DC3F    .  EB 05            jmp short Foxit_Ph.0044DC46
0044DC41    >  B8 04CFD100      mov eax,Foxit_Ph.00D1CF04
0044DC46    >  6A FF            push -1
0044DC48    .  50               push eax
0044DC49    .  8D4424 1C        lea eax,dword ptr ss:[esp+1C]
0044DC4D    .  50               push eax
0044DC4E    .  E8 9D6E1800      call Foxit_Ph.005D4AF0
0044DC53    .  83C4 0C          add esp,0C
0044DC56    .  8B00             mov eax,dword ptr ds:[eax]
0044DC58    .  C68424 9C020000 >mov byte ptr ss:[esp+29C],9
0044DC60    .  85C0             test eax,eax
0044DC62    .  74 05            je short Foxit_Ph.0044DC69
0044DC64    .  83C0 0C          add eax,0C
0044DC67    .  EB 05            jmp short Foxit_Ph.0044DC6E
0044DC69    >  B8 00CFD100      mov eax,Foxit_Ph.00D1CF00
0044DC6E    >  50               push eax
0044DC6F    .  8D4C24 14        lea ecx,dword ptr ss:[esp+14]
0044DC73    .  E8 6A6A5700      call Foxit_Ph.009C46E2
0044DC78    .  8D4C24 14        lea ecx,dword ptr ss:[esp+14]
0044DC7C    .  C68424 9C020000 >mov byte ptr ss:[esp+29C],8
0044DC84    .  E8 F7651800      call Foxit_Ph.005D4280
0044DC89    .  8D4C24 28        lea ecx,dword ptr ss:[esp+28]
0044DC8D    .  889C24 9C020000  mov byte ptr ss:[esp+29C],bl
0044DC94    .  E8 E7651800      call Foxit_Ph.005D4280
0044DC99    .  51               push ecx
0044DC9A    .  8D4C24 14        lea ecx,dword ptr ss:[esp+14]
0044DC9E    .  8BEC             mov ebp,esp
0044DCA0    .  896424 18        mov dword ptr ss:[esp+18],esp
0044DCA4    .  6A FF            push -1
0044DCA6    .  E8 4530FDFF      call Foxit_Ph.00420CF0
0044DCAB    .  50               push eax
0044DCAC    .  55               push ebp
0044DCAD    .  E8 3E951800      call Foxit_Ph.005D71F0
0044DCB2    .  83C4 0C          add esp,0C
0044DCB5    .  E8 B60B0000      call Foxit_Ph.0044E870
0044DCBA    .  83C4 04          add esp,4
0044DCBD    .  E8 AEE2FEFF      call Foxit_Ph.0043BF70
0044DCC2    .  85C0             test eax,eax
0044DCC4    .  8B4424 64        mov eax,dword ptr ss:[esp+64]
0044DCC8    .  0F85 49010000    jnz Foxit_Ph.0044DE17           ;  如果这个跳,则OVER
0044DCCE    .  85C0             test eax,eax
0044DCD0    .  75 51            jnz short Foxit_Ph.0044DD23     ;  如果这个跳,则是试用户
0044DCD2    .  8B4424 68        mov eax,dword ptr ss:[esp+68]
0044DCD6    .  85C0             test eax,eax
0044DCD8    .  75 49            jnz short Foxit_Ph.0044DD23     ;  如果这个跳,则是试用户
0044DCDA    .  6A 00            push 0
0044DCDC    .  8D8C24 90000000  lea ecx,dword ptr ss:[esp+90]
0044DCE3    .  E8 68F30300      call Foxit_Ph.0048D050
0044DCE8    .  8D8C24 8C000000  lea ecx,dword ptr ss:[esp+8C]
0044DCEF    .  C68424 9C020000 >mov byte ptr ss:[esp+29C],0A
0044DCF7    .  E8 C9745700      call Foxit_Ph.009C51C5          ;  出现一个窗口
0044DCFC    .  8D8C24 E8000000  lea ecx,dword ptr ss:[esp+E8]
0044DD03    .  C68424 9C020000 >mov byte ptr ss:[esp+29C],0B
0044DD0B    .  E8 10EF1E00      call Foxit_Ph.0063CC20
0044DD10    .  8D8C24 8C000000  lea ecx,dword ptr ss:[esp+8C]
0044DD17    .  889C24 9C020000  mov byte ptr ss:[esp+29C],bl
0044DD1E    .  E8 68705700      call Foxit_Ph.009C4D8B
0044DD23    >  57               push edi
0044DD24    .  E8 BB255700      call Foxit_Ph.009C02E4
0044DD29    .  83C4 04          add esp,4
0044DD2C    .  B9 7019D200      mov ecx,Foxit_Ph.00D21970
0044DD31    .  C705 6819D200 01>mov dword ptr ds:[D21968],1
0044DD3B    .  68 744BB900      push Foxit_Ph.00B94B74          ;  UNICODE "ANNOT,TEXTVIEW,FORMFILL,FORMDES,CREATOR,ORGANIZER,SECURITY,DIGITALSIGNATURE"
0044DD40    .  E8 2B671800      call Foxit_Ph.005D4470
0044DD45    .  68 E44FB900      push Foxit_Ph.00B94FE4          ;  UNICODE "FPMTEMP"
0044DD4A    .  B9 7819D200      mov ecx,Foxit_Ph.00D21978
0044DD4F    .  E8 1C671800      call Foxit_Ph.005D4470
0044DD54    .  68 C847B900      push Foxit_Ph.00B947C8
0044DD59    .  B9 7419D200      mov ecx,Foxit_Ph.00D21974
0044DD5E    .  E8 0D671800      call Foxit_Ph.005D4470
0044DD63    .  68 C44FB900      push Foxit_Ph.00B94FC4          ;  UNICODE "Evaluation user"
0044DD68    .  B9 6C19D200      mov ecx,Foxit_Ph.00D2196C
0044DD6D    .  E8 FE661800      call Foxit_Ph.005D4470
0044DD72    .  8D4C24 20        lea ecx,dword ptr ss:[esp+20]
0044DD76    .  C74424 1C E096A5>mov dword ptr ss:[esp+1C],Foxit>
0044DD7E    .  C68424 9C020000 >mov byte ptr ss:[esp+29C],4
0044DD86    .  E8 C0675700      call Foxit_Ph.009C454B
0044DD8B    .  8D4C24 18        lea ecx,dword ptr ss:[esp+18]
0044DD8F    .  C68424 9C020000 >mov byte ptr ss:[esp+29C],3
0044DD97    .  E8 AF675700      call Foxit_Ph.009C454B
0044DD9C    .  8D4C24 10        lea ecx,dword ptr ss:[esp+10]

经过漫长的分析,终于找到了一个关键的跳了。
 
我们运行保存后的文件,那个试用的窗口已经不在,而且关于里面也不是试用户的了。
 

现在来看一下是不是完美破解的了。
现在的时间是:
 
把系统的时间调后一些,调到2010年
 
我们来运行一下原来的程序,会出现这样的一个对话框
 
而我们破解的那个则是能正常的运行的,而且已经什么限制也没有了。

[总结]
  方法并不是唯一的,只要我们多去跟踪和分析。


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 4560
活跃值: (1002)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
还可以进一步突破PDF文件读写保护
2009-12-8 12:05
0
雪    币: 255
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个软件好用。。。

虽然用了注册版本,但是支持。。。
2009-12-8 12:43
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
太强大了,严重学习一下
2009-12-8 15:12
0
雪    币: 38
活跃值: (52)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
很强大耶。。
2009-12-12 23:30
0
雪    币: 335
活跃值: (10)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
6
很好非常好很好非常好
2009-12-14 20:16
0
雪    币: 210
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不错,感谢楼主的思路
2009-12-15 00:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢楼主分享!是强帖!
2011-8-6 13:54
0
雪    币: 212
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
喜欢楼主的坚持!
2011-8-8 23:38
0
游客
登录 | 注册 方可回帖
返回
//