[题好文一半] 如何破解 ACDSEE 3.0
[始作文者] 夜月
[oicq,e-mail,宿舍电话,一个都不能少]
36606500
luoyi.ly@yeah.net
(0546)7391075
[人最重要的是找准自己的位置] 菜鸟
[工欲善其事,必先利其器]
trw2000 1.22
[人为刀俎,我为鱼肉]
ACDSEE 3.0
[天下文章一大抄]
嗯?错了,错了,
[文章本天成,妙手偶得之]
嘿嘿.....这才像“破解四大才子”之一的夜月的风格吗....
“你说什么”?
“破解四大才子”呀!
于是,美好的事物被撕裂给大家看到了.....
一堆CRACKER冲了过来,拿着夜月从来没见过的SICE把夜月分成了
60%的脂肪,30%的蛋白质,10%的“不明存在物”,简称UEO(Unknown Exit Object)....
从此,“破解四大才子”老大的板凳一直空闲,据说以前上面座着一个很帅的小伙......
ACDSEE是干什么用的,相信各位不用我再说了吧。以前2.4版的时候,可以用序列号的方式注册,于是,
注册码就满天飞。后来,出了3.0版,不能再用注册码注册了,可是后来,又出了个“零售版”,真是......
不知道软件的作者看到他的软件如此流行,作何感想?小弟今天下午闲着无事,就来砍砍它的时间限制,写成此文,献给大家,希望能博得大家一笑。
时间限制的破解,肯定是暴力破解。
ACDSEE的保护方式,肯定是ASPACK之流。
对付ASPACK,肯定是TRW2000的绝招:LOAD+PNEWSEC+MAKEPE
大功告成!看到NEWPE.EXE了吗?
高兴乎?兴奋乎?奋起直追时间限制乎?
问:偷懒一派的一个典型特点是什么?
答:碰到软件先看《论坛精华》。有1就看1,有2就看2,将来有3了,自然就看3。
再问:偷懒一派的另一个典型特点是什么?
再答:看时容易做时难,跟踪无力破解残。 未到核心力已尽,退出TR泪不干。
由于《论坛精华2》中的文章是E文的,固有下面一段:
最近比较烦,比较烦,比较烦。 总觉得E文有一点难看。
我想我还是不习惯,从方方正正到大洋彼岸。
最近比较烦,比较烦,比较烦。 总觉得方法有一些弊端。
我问自己说怎么办? 脑袋说: 基本上,这个很难。
麻烦,我很麻烦; 麻烦,我很麻烦;
我冥思苦想。
作家说:没有做不成的文章。
军人说:没有打不赢的战役。
CRACKER们说:没有破不了的软件。
毛主席总结说:世上无难事,只要肯登攀。
夜月连忙附和:PATCH不难打,只要有跳转。PC烧成灰,CODE不难追。
我追---------------
于是有了(别人)追出来的时间断点:GETSYSTEMTIME的出场。
断点一找对,事半功也倍。断点找不到,直接一傻冒。
作者可能以为:ASPACK的保护,体贴又周到。
于是在时间的判断上就........
我一直追,感觉不算融洽。
在代码丛林中,也渐渐感到心在变化。
都是追到深处才由它,看不看懂都算了吧。
破解从来都是稀里糊涂的生涯。
不要再为了它挣扎,不要再为它左牵右挂。
算了吧,都随它!
追出来的代码如下:
015F:004984DE CALL `KERNEL32!GetSystemTime`
015F:004984E4 LEA ECX,[ESP+18]
015F:004984E8 LEA EDX,[ESP+20]
015F:004984EC PUSH ECX
015F:004984ED PUSH EDX
015F:004984EE CALL `KERNEL32!SystemTimeToFileTime`
015F:004984F4 LEA EAX,[ESP+18]
015F:004984F8 PUSH ESI
015F:004984F9 PUSH EAX
015F:004984FA CALL `KERNEL32!CompareFileTime`
015F:00498500 INC EAX
015F:00498501 POP ESI
015F:00498502 NEG EAX
015F:00498504 SBB EAX,EAX
015F:00498506 NEG EAX
015F:00498508 DEC EAX
015F:00498509 ADD ESP,BYTE +7C
015F:0049850C RET 04
乱七八糟,气煞我也。一个跳转都没有,让我如何PATCH?
代码若是不懂时,何不换条道路?
还记得鲁迅的话吗?
破解时本没有路,F(N)(N=5,7,9,12。。。。)按的多了,代码中就有了路。
于是F12过去后.........
是你给我一片天,是你给了我一片天,就算全世界代码我都不懂,走到你的身旁就看到春天。
小女孩问:春天是什么样子的?
夜月很自豪地U+>(重定向符)了一下,
告诉小女孩:春天就是这个样子的:
015F:004982BA PUSH EAX
015F:004982BB CALL 004983E0
015F:004982C0 TEST EAX,EAX 改为:inc eax
015F:004982C2 JNZ NEAR 004983CD 改为:jmp 4983cd
015F:004982C8 MOV CL,[004E8A30]
015F:004982CE PUSH EDI
论坛的大客看过来,看过来,看过来,菜鸟的世界很精彩,请不要装作不理不睬。
破解菜鸟的悲哀, 说出来, 谁明白, 求求你发篇教程过来,教教我,让我乐开怀。
我左看右看,上看下看,原来每个程序都不简单。
我左看右看,上看下看,程序们的判断可真奇怪。
嘿!真奇怪........
看到这一句了么?
015F:004982C0 TEST EAX,EAX
当我在这里,把EAX无中生有地由0改成1之后,
当至尊宝在观音面前手舞足蹈,叽叽喳喳之后,
说了一句让我记忆犹新的经典:
整个世界清静了...........
是的,
整个世界清静了。
[狗尾叙貂]
曾经有一个珍贵的注册码摆在我的面前,但是我没有珍惜,
直到看到看雪的教学才追悔莫及。
如果上天能再给我一次机会,
我会对那个注册码说:我要你!
如果要给注册期加上一个限制的话,
我希望是--------一万年!
远处传来刘德华的歌声:
注册一万年,注册经得起考验。
穿越了判断的防线,出现成功的地面!
标 题:将ACDSee V3.1 Build 921试用版变为注册版 (5千字)
发信人:liangs
时 间:2001-3-18 23:34:33
详细信息:
将ACDSee V3.1 Build 921试用版变为注册版
by liangs 2001/3/18
说明:软件可从《电脑报2000年合订本》配套光盘中获得。
前两天买了套《电脑报2000年合订本》,装了一下这个软件觉得还不错,比原来
的2.4版功能强劲了不少。它的限制主要是时间限制,破掉它的时间限制很简单,但
程序启动后标题栏显示的Trial Version让人看到很不舒服,我们试着拿掉它看看。
(1)首先来搞定时间问题。过期后弹出 Trial Period Expired 的提示框,用W32Dasm
反汇编后,我们查找Expired的字样,我们可以找到如下的地址:
* Reference To: InTouchClient.?TrialPeriod_GetDaysLeft@InTouchClient@@QAEHXZ, Ord:005Dh
|
:00404596 FF1564824D00 Call dword ptr [004D8264]
:0040459C 85C0 test eax, eax
:0040459E 7F16 jg 004045B6
* Reference To: InTouchClient.?g_itc@@3VInTouchClient@@A, Ord:0069h
|
:004045A0 8B0D30824D00 mov ecx, dword ptr [004D8230]
:004045A6 6A00 push 00000000
* Reference To: InTouchClient.?TrialMode_ShowExpiredBox@InTouchClient@@QAEHPAUHWND__@@@Z,
Ord:005Bh
|
:004045A8 FF155C824D00 Call dword ptr [004D825C]
:004045AE 85C0 test eax, eax
:004045B0 7521 jne 004045D3
:004045B2 83C408 add esp, 00000008
:004045B5 C3 ret
上面的 TrialMode_ShowExpiredBox 字样已经很能说明问题了,其它地方也能找到Expired
的字样,但是一看就知道不是,当然如果你看不出来的话,你就下bpx 00xxxxxx试试就知道了,
根本就不会在那儿中断下来。
很明显只要将0040459E处的jg 004045B6改为Jmp 004045B6就可以搞定时间问题了。
(2)接着要搞定的是标题栏显示的Trial Version字样。我们查找Trial Version的字样,我们可
以找到如下两处地址:
第一处地址:
:004172D0 B900434F00 mov ecx, 004F4300
:004172D5 E816320000 call 0041A4F0
:004172DA 85C0 test eax, eax
:004172DC 7529 jne 00417307
:004172DE 8D8C2414010000 lea ecx, dword ptr [esp+00000114]
:004172E5 6A50 push 00000050
:004172E7 51 push ecx
* Reference To: KERNEL32.lstrlenA, Ord:0335h
|
:004172E8 FF1550834D00 Call dword ptr [004D8350]
:004172EE 8D940418010000 lea edx, dword ptr [esp+eax+00000118]
:004172F5 A124434F00 mov eax, dword ptr [004F4324]
:004172FA 52 push edx
* Possible Reference to String Resource ID=00195: " Trial Version"
^^^^^^^^^^^^^^^^^
|
:004172FB 68C3000000 push 000000C3
:00417300 50 push eax
------------------------------------------------------------------------
第二处地址:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00465A0E(U)
|
:00465A36 B900434F00 mov ecx, 004F4300
:00465A3B E8B04AFBFF call 0041A4F0
:00465A40 85C0 test eax, eax
:00465A42 7520 jne 00465A64
:00465A44 8D442408 lea eax, dword ptr [esp+08]
:00465A48 6A50 push 00000050
:00465A4A 50 push eax
:00465A4B FFD6 call esi
:00465A4D 8B1524434F00 mov edx, dword ptr [004F4324]
:00465A53 8D4C040C lea ecx, dword ptr [esp+eax+0C]
:00465A57 51 push ecx
* Possible Reference to String Resource ID=00195: " Trial Version"
^^^^^^^^^^^^^^^^^
|
:00465A58 68C3000000 push 000000C3
:00465A5D 52 push edx
你注意看一下就可以发现,在判断是否是"Trial Version"的时候,在前面共同都
调用了call 0041A4F0来判断eax的值,如果eax到时候为0就铁定是" Trial Version"
我们进call 0041A4F0的里面去看看:
* Referenced by a CALL at Addresses:
|:004044F2 , :0040468F , :0040488B , :004049FE , :004087DC
|:004088D3 , :00412A6F , :004172D5 , :0041837B , :00418499
|:0043D2B6 , :0043D3AB , :0043D4B9 , :0043D5A5 , :0043D6E6
|:0045A549 , :00465A3B
|
:0041A4F0 33C0 xor eax, eax
:0041A4F2 C3 ret
:0041A4F3 90 nop
:0041A4F4 90 nop
:0041A4F5 90 nop
:0041A4F6 90 nop
:0041A4F7 90 nop
我们发现这里只有两行代码就是使eax为0,而且还有很多地方要调用这个Call,如果这里
eax返回的是1的话,我们的目的就完成了,好在0041A4F3后面有好几个nop可以给我们用。
将上面代码简单修改如下就可以了:
:0041A4F0 33C0 xor eax, eax
:0041A4F2 40 inc eax
:0041A4F3 c3 ret
现在再重新启动ACDSee看看,是不是已经变成注册版了,还有一点不尽入人意的地方就是
打开About ACDSee...菜单时,里面的"The software is license to:"和"license number:"
还是空的,要让它在这显示你的名字也很简单,用RegMon检测软件对注册表的读写,我们
可以找到如下的地方,写个注册文件运行一下就可以了,至此ACDSee V3.1就彻底搞定了。:->
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\ACD Systems\ACDInTouch]
"UserName"="liangs"
"CompanyName"="ZTE"
"UserEMail"="liangs@wx88.net"
[HKEY_LOCAL_MACHINE\Software\ACD Systems\ACDSee]
"LicenseNumber"="ZTE389"
[HKEY_CURRENT_USER\Software\ACD Systems\ACDInTouch]
"UserName"="liangs"
标 题:另外关于ACDInTouch的弹出窗口,下 bpx destroywindow 5秒就能搞定。
(空)
发信人:liangs
时 间:2001-3-18 23:47:02
详细信息: