super-man 发表于 2010-2-26 09:34

去除ACDSee的时间限制

1、首先安装ACDSee 1、首先安装ACDSee 4.0 Trial Version,第一次运行会出出现一个提示框,让你做出选择是“购买”还是“试用”,当30天试用期过后,就只有选择购买正式版或退出了。所以,只要找到这个提示框产生的CALL并去掉或绕过它就破解了。
2、运行TRW2000,载入ACDSee.exe文件,然后一路用F10,直到提示框出现,然后退出,程序就会停在某一个CALL xxxxxxxx的下面一行,此时将上面的CALL xxxxxxxx一行设断点(F6,F9结合使用),然后就不用使用TRW2000的载入功能了,而是直接运行程序,就会被TRW2000拦截在上面的断点处,F8进入,BC *,然后又是一路F10,又找到一个CALL xxxxxxxx,同样的方法处理,那么最后哪个CALL xxxxxxxx是最关键的,就看你的判断能力了,那么它一般在ACDsee.exe的程序领空,而不是MFC42.DLL或其他文件中。我跟踪的关键代码在下面:
:00406BB9 6A00 push 00000000
:00406BBB 8D8C24DC000000 lea ecx, dword ptr
:00406BC2 E859720000 call 0040DE20(这个CALL出现ACDsee的LOGO图画)

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00406BB7(C)
|
:00406BC7 8D442430 lea eax, dword ptr
:00406BCB B9605F5700 mov ecx, 00575F60
:00406BD0 50 push eax
:00406BD1 6A00 push 00000000
:00406BD3 C744243800000000 mov , 00000000
:00406BDB E8E04C0000 call 0040B8C0(这个CALL出现提示框)
:00406BE0 85C0 test eax, eax
:00406BE2 7532 jne 00406C16
:00406BE4 8D8C24D8000000 lea ecx, dword ptr
:00406BEB C684243405000002 mov byte ptr , 02
:00406BF3 E8A8700000 call 0040DCA0

从:00406BDB E8E04C0000 call 0040B8C0这里往前有很多
test xxx, xxx
jne xxxxxxxx
之类的跳转,试了几个也都不能跳过那个提示框,何不进去看一下!F8进入出现提示框的那个call 0040B8C0:
:0040B8C0 81ECB0000000 sub esp, 000000B0
:0040B8C6 A0005F5700 mov al, byte ptr
:0040B8CB 56 push esi
:0040B8CC 57 push edi
:0040B8CD 88442418 mov byte ptr , al

…………(省略去一些代码)

* Reference To: License.?IsFullVersion@CLicense@@QAEHXZ, Ord:001Fh
|
:0040B972 FF1578535400 Call dword ptr
:0040B978 85C0 test eax, eax
:0040B97A 7416 je 0040B992(此处若不跳转则可绕过那么提示框)
:0040B97C 39742408 cmp dword ptr , esi
:0040B980 7510 jne 0040B992(此处同样也不同跳转)
:0040B982 5F pop edi

* Possible Reference to String Resource ID=00001: "Clip"
|
:0040B983 B801000000 mov eax, 00000001
:0040B988 5E pop esi
:0040B989 81C4B0000000 add esp, 000000B0
:0040B98F C20800 ret 0008
…………
:0040B992 8B9424C0000000 mov edx, dword ptr

* Reference To: License.?g_license@@3VCLicense@@A, Ord:0038h
|
:0040B999 8B0D74535400 mov ecx, dword ptr
:0040B99F 52 push edx

* Reference To: License.?ShowNagDlg@CLicense@@QAEHPAH@Z, Ord:0027h
|
:0040B9A0 FF15C0535400 Call dword ptr (这里调用License.dll的ShowNagDlg函数显示提示框)
:0040B9A6 5F pop edi
:0040B9A7 5E pop esi
:0040B9A8 81C4B0000000 add esp, 000000B0
:0040B9AE C20800 ret 0008

F8进入:0040B9A0 FF15C0535400 Call dword ptr 看到下面(License.dll领空):
:100031F0 81EC1C070000 sub esp, 0000071C
:100031F6 53 push ebx
:100031F7 55 push ebp
:100031F8 56 push esi
:100031F9 57 push edi
:100031FA 8BBC2430070000 mov edi, dword ptr
:10003201 8BF1 mov esi, ecx
:10003203 C70700000000 mov dword ptr , 00000000
* Reference To: License.?IsFirstRunAfterInstall@CLicense@@QAEHXZ
|
:10003209 E872FCFFFF call 10002E80
:1000320E 85C0 test eax, eax(此处若eax=1则可跳过提示框)
:10003210 8BCE mov ecx, esi
:10003212 741D je 10003231
* Reference To: License.?ShowWelcomeDlg@CLicense@@QAEHXZ
|
:10003214 E847FDFFFF call 10002F60
:10003219 C70701000000 mov dword ptr , 00000001

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:1000334F(C), :100033CF(C)
|
:1000321F 5F pop edi
:10003220 5E pop esi
:10003221 5D pop ebp
:10003222 B801000000 mov eax, 00000001
:10003227 5B pop ebx
:10003228 81C41C070000 add esp, 0000071C
:1000322E C20400 ret

3、程序修改方法:这个版本的ACDsee没有加壳,修改比较方便,当然你可以修改ACDsee.exe也可以修改License.dll,但修改License.dll后运行程序会提示一些文件被修改,就修改ACDsee.exe吧!

:0040B97A 7416 je 0040B992(改为两个NOP)
:0040B97C 39742408 cmp dword ptr , esi
:0040B980 7510 jne 0040B992(改为两个NOP)

使用UltraEdit打开ACDsee.exe文件
查找:85C07416397424087510
修改:85C09090397424089090
,第一次运行会出出现一个提示框,让你做出选择是“购买”还是“试用”,当30天试用期过后,就只有选择购买正式版或退出了。所以,只要找到这个提示框产生的CALL并去掉或绕过它就破解了。
2、运行TRW2000,载入ACDSee.exe文件,然后一路用F10,直到提示框出现,然后退出,程序就会停在某一个CALL xxxxxxxx的下面一行,此时将上面的CALL xxxxxxxx一行设断点(F6,F9结合使用),然后就不用使用TRW2000的载入功能了,而是直接运行程序,就会被TRW2000拦截在上面的断点处,F8进入,BC *,然后又是一路F10,又找到一个CALL xxxxxxxx,同样的方法处理,那么最后哪个CALL xxxxxxxx是最关键的,就看你的判断能力了,那么它一般在ACDsee.exe的程序领空,而不是MFC42.DLL或其他文件中。我跟踪的关键代码在下面:

:00406BB9 6A00 push 00000000
:00406BBB 8D8C24DC000000 lea ecx, dword ptr
:00406BC2 E859720000 call 0040DE20(这个CALL出现ACDsee的LOGO图画)

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00406BB7(C)
|
:00406BC7 8D442430 lea eax, dword ptr
:00406BCB B9605F5700 mov ecx, 00575F60
:00406BD0 50 push eax
:00406BD1 6A00 push 00000000
:00406BD3 C744243800000000 mov , 00000000
:00406BDB E8E04C0000 call 0040B8C0(这个CALL出现提示框)
:00406BE0 85C0 test eax, eax
:00406BE2 7532 jne 00406C16
:00406BE4 8D8C24D8000000 lea ecx, dword ptr
:00406BEB C684243405000002 mov byte ptr , 02
:00406BF3 E8A8700000 call 0040DCA0

从:00406BDB E8E04C0000 call 0040B8C0这里往前有很多
test xxx, xxx
jne xxxxxxxx
之类的跳转,试了几个也都不能跳过那个提示框,何不进去看一下!F8进入出现提示框的那个call 0040B8C0:
:0040B8C0 81ECB0000000 sub esp, 000000B0
:0040B8C6 A0005F5700 mov al, byte ptr
:0040B8CB 56 push esi
:0040B8CC 57 push edi
:0040B8CD 88442418 mov byte ptr , al

…………(省略去一些代码)

* Reference To: License.?IsFullVersion@CLicense@@QAEHXZ, Ord:001Fh
|
:0040B972 FF1578535400 Call dword ptr
:0040B978 85C0 test eax, eax
:0040B97A 7416 je 0040B992(此处若不跳转则可绕过那么提示框)
:0040B97C 39742408 cmp dword ptr , esi
:0040B980 7510 jne 0040B992(此处同样也不同跳转)
:0040B982 5F pop edi

* Possible Reference to String Resource ID=00001: "Clip"
|
:0040B983 B801000000 mov eax, 00000001
:0040B988 5E pop esi
:0040B989 81C4B0000000 add esp, 000000B0
:0040B98F C20800 ret 0008
…………
:0040B992 8B9424C0000000 mov edx, dword ptr

* Reference To: License.?g_license@@3VCLicense@@A, Ord:0038h
|
:0040B999 8B0D74535400 mov ecx, dword ptr
:0040B99F 52 push edx

* Reference To: License.?ShowNagDlg@CLicense@@QAEHPAH@Z, Ord:0027h
|
:0040B9A0 FF15C0535400 Call dword ptr (这里调用License.dll的ShowNagDlg函数显示提示框)
:0040B9A6 5F pop edi
:0040B9A7 5E pop esi
:0040B9A8 81C4B0000000 add esp, 000000B0
:0040B9AE C20800 ret 0008

F8进入:0040B9A0 FF15C0535400 Call dword ptr 看到下面(License.dll领空):
:100031F0 81EC1C070000 sub esp, 0000071C
:100031F6 53 push ebx
:100031F7 55 push ebp
:100031F8 56 push esi
:100031F9 57 push edi
:100031FA 8BBC2430070000 mov edi, dword ptr
:10003201 8BF1 mov esi, ecx
:10003203 C70700000000 mov dword ptr , 00000000
* Reference To: License.?IsFirstRunAfterInstall@CLicense@@QAEHXZ
|
:10003209 E872FCFFFF call 10002E80
:1000320E 85C0 test eax, eax(此处若eax=1则可跳过提示框)
:10003210 8BCE mov ecx, esi
:10003212 741D je 10003231
* Reference To: License.?ShowWelcomeDlg@CLicense@@QAEHXZ
|
:10003214 E847FDFFFF call 10002F60
:10003219 C70701000000 mov dword ptr , 00000001

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:1000334F(C), :100033CF(C)
|
:1000321F 5F pop edi
:10003220 5E pop esi
:10003221 5D pop ebp
:10003222 B801000000 mov eax, 00000001
:10003227 5B pop ebx
:10003228 81C41C070000 add esp, 0000071C
:1000322E C20400 ret

3、程序修改方法:这个版本的ACDsee没有加壳,修改比较方便,当然你可以修改ACDsee.exe也可以修改License.dll,但修改License.dll后运行程序会提示一些文件被修改,就修改ACDsee.exe吧!

:0040B97A 7416 je 0040B992(改为两个NOP)
:0040B97C 39742408 cmp dword ptr , esi
:0040B980 7510 jne 0040B992(改为两个NOP)


使用UltraEdit打开ACDsee.exe文件
查找:85C07416397424087510
修改:85C09090397424089090

凤歌笑 发表于 2010-10-17 16:43

很强大啊,就是看不懂

zhushini3456 发表于 2011-4-2 20:49

看不懂啊!

lionshine 发表于 2011-4-2 21:20

TRW2000 N年前98时代很好用,RING0级别的,貌似叉屁下面不是太好用。

x-style 发表于 2011-4-2 21:26

我还不太会,好羡慕啊
页: [1]
查看完整版本: 去除ACDSee的时间限制