首页
社区
课程
招聘
[旧帖] [原创]ADOBE Premiere Pro Cs3 3.2.0汉化后过期限制问题的跟踪过程 0.00雪花
发表于: 2009-5-22 19:01 1935

[旧帖] [原创]ADOBE Premiere Pro Cs3 3.2.0汉化后过期限制问题的跟踪过程 0.00雪花

2009-5-22 19:01
1935
软件ADOBE Premiere Pro Cs3 3.2.0
限制:汉化后运行软件出现过期提示,不能打开
破解文件:原文件为:  Premiere.dll
想法:本人从事摄影行业,所以总用这些软件,业余爱好:软件逆向工程。
希望站长或其它正式会员能引我加入看雪正式会员行列,万分感谢。
由于开始走了很多弯路,所以就不详细写进来,只把最后的分析写上。

02F58229    B8 03000000     mov eax,3
02F5822E    C3              retn
02F5822F    53              push ebx
02F58230    8B5C24 10       mov ebx,dword ptr ss:[esp+10]
02F58234    55              push ebp
02F58235    BD 04000000     mov ebp,4
02F5823A    8B7424 20       mov esi,dword ptr ss:[esp+20]
02F5823E    56              push esi
02F5823F    C605 EE301503 0>mov byte ptr ds:[31530EE],1
02F58246    8935 E0301503   mov dword ptr ds:[31530E0],esi
02F5824C    891D E4301503   mov dword ptr ds:[31530E4],ebx
02F58252    892D 44671303   mov dword ptr ds:[3136744],ebp
02F58258    E8 23FCFFFF     call Premiere.02F57E80
02F5825D    83C4 04         add esp,4
02F58260    833D DC301503 0>cmp dword ptr ds:[31530DC],0
02F58267    0F85 93000000   jnz Premiere.02F58300
02F5826D    6A 50           push 50
02F5826F    E8 90AEFEFF     call <jmp.&MSVCR80.operator new>
00000001   cerate by 网上虫子(原创)
00000002   业余爱好-软件逆向,希望加入看雪!
上面两行与破解无关,可以NOP掉。

注意这行:
02F58252    892D 44671303   mov dword ptr ds:[3136744],ebp
其中:ds:[B66744]=00000002  
注:后经过几次跟踪,发现这里的值如果为4则可以通知以后的两个检查。
而这个值是EBP的值,于是往上找EBP的值,找到了这行
02F58235    8B6C24 10       mov ebp,dword ptr ss:[esp+10]
不好追,于是放弃在这里修改EBP的值
继续下一处:

02F580DE    8B0D E0301503   mov ecx,dword ptr ds:[31530E0]
02F580E4    85C9            test ecx,ecx
02F580E6    75 0B           jnz short Premiere.02F580F3
02F580E8    B9 5CE30E03     mov ecx,Premiere.030EE35C
02F580ED    890D E0301503   mov dword ptr ds:[31530E0],ecx
02F580F3    833D E4301503 0>cmp dword ptr ds:[31530E4],0
02F580FA    75 0A           jnz short Premiere.02F58106         // 我在这下的断,下面是JE跳转,有4个跳向同一地址的。
02F580FC    C705 E430B800 5>mov dword ptr ds:[B830E4],0B1E35C        ; ASCII "G/ProjectmanagerDialog/kCalculateButtonString"
02F58106    A1 4467B600     mov eax,dword ptr ds:[B66744]
02F5810B    83F8 01         cmp eax,1
02F5810E    0F84 83000000   je Premiere.02F58197
02F58114    83F8 04         cmp eax,4

02F58117    74 7E           je short Premiere.02F58197         // 经测试只有这个跳成功跳转才能最终使软件真正运行起来。
02F58119    A1 E830B800     mov eax,dword ptr ds:[B830E8]
02F5811E    85C0            test eax,eax
02F58120    74 75           je short Premiere.02F58197
02F58122    8B40 10         mov eax,dword ptr ds:[eax+10]
02F58125    85C0            test eax,eax
02F58127    74 6E           je short Premiere.02F58197
02F58129    8378 04 00      cmp dword ptr ds:[eax+4],0
02F5812D    74 68           je short Premiere.02F58197
02F5812F    51              push ecx
02F58130    8D4C24 24       lea ecx,dword ptr ss:[esp+24]
02F58134    E8 07FDFFFF     call Premiere.02F57E40
02F58139    A1 E4301503     mov eax,dword ptr ds:[31530E4]
02F5813E    50              push eax
02F5813F    8D4C24 08       lea ecx,dword ptr ss:[esp+8]
02F58143    C74424 4C 00000>mov dword ptr ss:[esp+4C],0
02F5814B    E8 F0FCFFFF     call Premiere.02F57E40
02F58150    6A 00           push 0
02F58152    6A 00           push 0
02F58154    6A 00           push 0
02F58156    68 94190F03     push Premiere.030F1994                   ; ASCII "$$$/amt/alert/ExpiredMsg=Product license has

expired."
02F5815B    C64424 58 01    mov byte ptr ss:[esp+58],1
02F58160    E8 EB930000     call Premiere.02F61550
02F58165    83C4 10         add esp,10
02F58168    50              push eax
02F58169    6A 00           push 0
02F5816B    6A 00           push 0
02F5816D    6A 00           push 0
02F5816F    68 6C190F03     push Premiere.030F196C                   ; ASCII "$$$/amt/alert/Expired=License Expired"
02F58174    E8 D7930000     call Premiere.02F61550
02F58179    83C4 10         add esp,10
02F5817C    50              push eax
02F5817D    E8 9ED00000     call Premiere.02F65220
02F58182    83C4 08         add esp,8
02F58185    8D4C24 04       lea ecx,dword ptr ss:[esp+4]
02F58189    E8 E2F9FFFF     call Premiere.02F57B70
02F5818E    8D4C24 20       lea ecx,dword ptr ss:[esp+20]
02F58192    E8 D9F9FFFF     call Premiere.02F57B70
02F58197    B8 02000000     mov eax,2
02F5819C    8B4C24 40       mov ecx,dword ptr ss:[esp+40]
02F581A0    64:890D 0000000>mov dword ptr fs:[0],ecx
02F581A7    59              pop ecx
02F581A8    8B4C24 38       mov ecx,dword ptr ss:[esp+38]
02F581AC    33CC            xor ecx,esp
02F581AE    E8 B1B3FEFF     call Premiere.02F43564
02F581B3    83C4 48         add esp,48
02F581B6    C3              retn
02F581B7    CC              int3
02F581B8    CC              int3

经过了上面的分析:于是修改代码如下:
02F580FA   /75 0A           jnz short Premiere.02F58106
02F580FC   |C705 E4301503 5>mov dword ptr ds:[31530E4],Premiere.030E>
02F58106   \B8 0400B002     mov eax,2B00004
02F5810B    B8 04000000     mov eax,4                 //第一次只修改了这里,发现不行,软件运行时这里代码会变
02F58110    90              nop
02F58111    90              nop
02F58112    90              nop
02F58113    90              nop
02F58114    83F8 04         cmp eax,4                 //于是这里也修改了,直接给EAX赋值4
                  
02F58117    74 7E           je short Premiere.02F58197
02F58119    A1 E8301503     mov eax,dword ptr ds:[31530E8]
02F5811E    85C0            test eax,eax
02F58120    74 75           je short Premiere.02F58197
02F58122    8B40 10         mov eax,dword ptr ds:[eax+10]
02F58125    85C0            test eax,eax
02F58127    74 6E           je short Premiere.02F58197
02F58129    8378 04 00      cmp dword ptr ds:[eax+4],0
02F5812D    74 68           je short Premiere.02F58197
02F5812F    51              push ecx
02F58130    8D4C24 24       lea ecx,dword ptr ss:[esp+24]
02F58134    E8 07FDFFFF     call Premiere.02F57E40

上段修改后跳到了这里
02F40B50    E8 9BDCFFFF     call Premiere.02F3E7F0   
02F40B55    83C4 04         add esp,4
02F40B58    84C0            test al,al
02F40B5A    C745 FC FFFFFFF>mov dword ptr ss:[ebp-4],-1      //我在这里下了断
02F40B61    75 31           jnz short Premiere.02F40B94      //这个跳不重要
02F40B63    803D 4826C505 0>cmp byte ptr ds:[5C52648],0
02F40B6A    75 40           jnz short Premiere.02F40BAC      //这个是关键,这里ds:[5C52648]如果=1就好了,可找到它的值的地方
02F40B6C    6A 00           push 0                           //找不到就改跳吧,cmp byte ptr ds:[5C52648],0 改一下;
02F40B6E    C605 48261503 0>mov byte ptr ds:[3152648],1      //改成:cmp byte ptr ds:[5C52648],1
02F40B75    E8 36DAFFFF     call Premiere.02F3E5B0
02F40B7A    83C4 04         add esp,4
02F40B7D    8B4D F4         mov ecx,dword ptr ss:[ebp-C]
02F40B80    64:890D 0000000>mov dword ptr fs:[0],ecx
02F40B87    5F              pop edi
02F40B88    5E              pop esi
02F40B89    5B              pop ebx
02F40B8A    8BE5            mov esp,ebp
02F40B8C    5D              pop ebp
02F40B8D    C3              retn
02F40B8E    B8 630BF402     mov eax,Premiere.02F40B63
02F40B93    C3              retn
02F40B94    51              push ecx
02F40B95    8BC4            mov eax,esp
02F40B97    8965 EC         mov dword ptr ss:[ebp-14],esp
02F40B9A    50              push eax
02F40B9B    E8 20FEFFFF     call Premiere.02F409C0
02F40BA0    83C4 04         add esp,4
02F40BA3    FF15 709C0E03   call dword ptr ds:[<&MediaLayer.ML::SetR>; MediaLay.ML::SetRegistrationServer
02F40BA9    83C4 04         add esp,4
02F40BAC    8B4D F4         mov ecx,dword ptr ss:[ebp-C]
02F40BAF    5F              pop edi
02F40BB0    5E              pop esi
02F40BB1    64:890D 0000000>mov dword ptr fs:[0],ecx
02F40BB8    5B              pop ebx
02F40BB9    8BE5            mov esp,ebp
02F40BBB    5D              pop ebp
02F40BBC    C3              retn
02F40BBD    CC              int3
02F40BBE    CC              int3
02F40BBF    CC              int3
02F40BC0    8B4424 04       mov eax,dword ptr ss:[esp+4]
02F40BC4    8B51 04         mov edx,dword ptr ds:[ecx+4]
02F40BC7    8950 04         mov dword ptr ds:[eax+4],edx
02F40BCA    8908            mov dword ptr ds:[eax],ecx
02F40BCC    C2 0400         retn 4
修改了这里,程序开始跑起来了,加载了一大堆东西。
后来又回到了第一处断处,依然EAX=4跳,成功。后来到这里,还有最后一处。

02F3FF96    E8 05FAFFFF     call Premiere.02F3F9A0
02F3FF9B    84C0            test al,al
02F3FF9D    C745 FC FFFFFFF>mov dword ptr ss:[ebp-4],-1
02F3FFA4    75 1A           jnz short Premiere.02F3FFC0        // 我在这下的断,哈哈,看起来和第二处太像了,方法同上。
02F3FFA6    803D 4826C505 0>cmp byte ptr ds:[5C52648],0        // 改cmp byte ptr ds:[5C52648],0为cmp byte ptr ds:[5C52648],1
02F3FFAD    75 11           jnz short Premiere.02F3FFC0
02F3FFAF    6A 01           push 1
02F3FFB1    C605 48261503 0>mov byte ptr ds:[3152648],1
02F3FFB8    E8 F3E5FFFF     call Premiere.02F3E5B0
02F3FFBD    83C4 04         add esp,4
02F3FFC0    8B4D F4         mov ecx,dword ptr ss:[ebp-C]
02F3FFC3    5F              pop edi
02F3FFC4    5E              pop esi
02F3FFC5    64:890D 0000000>mov dword ptr fs:[0],ecx
02F3FFCC    5B              pop ebx
02F3FFCD    8BE5            mov esp,ebp
02F3FFCF    5D              pop ebp
02F3FFD0    C3              retn
02F3FFD1    B8 A6FFF302     mov eax,Premiere.02F3FFA6
02F3FFD6    C3              retn

这回彻底把过期的限制破除了,哈哈。
本来打算再继续找一下,看能不能找到真正让Premiere 发现过期的地方,但用时间断点没有找到关键的地方,于是放弃,反正能用就行。
现在已做成补丁:
由于是新手不能上传:
可以到下面地址下载 :
Adobe Premiere Pro Cs3.2.0过期补丁.exe
软件下载及安装:
下载 Adobe.Premiere.Pro.CS3.Full 757M安装包,里面有注册机及汉化包,注意不要用里面的汉化包汉化,安装完成后为  Adobe Premiere Pro CS3 v3.0.0 (374)  
到网上搜索下载:Adobe Premiere Pro CS3 中文化程序 v1.23 汉化包,62.4M,汉化时直接选中升级到3.2.0选项,汉化后为 Adobe Premiere Pro CS3 v3.2.0 (374)
用这个汉化后运行,出现过期的提示,关闭软件,运行我提供的补丁后即可正常使用。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2568
活跃值: (399)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
弄个邀请码这么难呢
2010-1-20 11:54
0
雪    币: 53
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我来支持你者头疼
2010-1-20 12:46
0
游客
登录 | 注册 方可回帖
返回
//