如何破解lockdown2000 v7.0.0.6
-----------------------------
雪椰
2000,12,25am
Email:wocy@263.net
Http://wocy.yeah.net(有本例中的补丁)
------------------------------
1,检查文件被压缩过了,因为懒得脱壳,所以决定内存补丁
2,以前有一点资料(看雪精华2)
标 题:Lockdown2000_7.0.0.1破解手记 (3千字)
详细信息:
Lockdown2000_7.0.0.1破解手记
本人属懒派狂人,自下载Lockdown2000_7.0.0.1后一直等待破解的出现,但是始终不见其踪影。
本着你不烦我我不破你的原则平静的度过了十天,终于,讨厌的东西出现了,看来只有按原则
办事了,不想这东西加了壳,又臭又硬,还好在吴朝相的主页找到了脱壳后的汉化版本,省了
一道工序,可以开始工作了。
用W32Dasm反编译Lockdown2000.exe,找那个让我讨厌的东西(过期提示),如下所示:
:004C313D E8321CFEFF call 004A4D74
:004C3142 84C0 test al, al
:004C3144 7546 jne 004C318C
:004C3146 E8B516FEFF call 004A4800
:004C314B 48 dec eax
:004C314C 7D27 jge 004C3175
:004C314E A14C9E4D00 mov eax, dword ptr [004D9E4C]
:004C3153 8B00 mov eax, dword ptr [eax]
:004C3155 E82AC5F8FF call 0044F684
* Possible StringData Ref from Code Obj ->"The trial period on this demo "
->"of LockDown 2000 has expired."
往上看看004C3144那一行能跳过过期提示,改为jmp 004C318C就不会过期了,但这也太那个……
注意一下call 004A4D74,看起来好像很有意思,到004A4D74去看看:
* Referenced by a CALL at Addresses:
|:004B5127 , :004B524E , :004B56FC , :004B5C0F , :004BD36D
|:004BE723 , :004C313D , :004C6AF4 , :004CBA42 , :004CCFAB
|:004CF4A3 , :004CF5FF
|
:004A4D74 55 push ebp
:004A4D75 8BEC mov ebp, esp
:004A4D77 B905000000 mov ecx, 00000005
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004A4D81(C)
|
:004A4D7C 6A00 push 00000000
:004A4D7E 6A00 push 00000000
:004A4D80 49 dec ecx
:004A4D81 75F9 jne 004A4D7C
:004A4D83 53 push ebx
:004A4D84 56 push esi
:004A4D85 33C0 xor eax, eax
:004A4D87 55 push ebp
:004A4D88 68E0514A00 push 004A51E0
:004A4D8D 64FF30 push dword ptr fs:[eax] 《---------(1)
:004A4D90 648920 mov dword ptr fs:[eax], esp
* Possible StringData Ref from Code Obj ->"LD2KReg.ini"
|
:004A4D93 B9F8514A00 mov ecx, 004A51F8 〈-----------(2)
:004A4D98 B201 mov dl, 01
:004A4D9A A1C8A14700 mov eax, dword ptr [0047A1C8]
:004A4D9F E8CC54FDFF call 0047A270
:004A4DA4 8BD8 mov ebx, eax
:004A4DA6 6A00 push 00000000
:004A4DA8 8D45E0 lea eax, dword ptr [ebp-20]
:004A4DAB 50 push eax
* Possible StringData Ref from Code Obj ->"Register"
|
:004A4DAC B90C524A00 mov ecx, 004A520C
* Possible StringData Ref from Code Obj ->"Register"
|
:004A4DB1 BA0C524A00 mov edx, 004A520C
:004A4DB6 8BC3 mov eax, ebx
:004A4DB8 8B30 mov esi, dword ptr [eax]
:004A4DBA FF16 call dword ptr [esi]
:004A4DBC 8D45DC lea eax, dword ptr [ebp-24]
:004A4DBF E8B4F9FFFF call 004A4778
:004A4DC4 8B55DC mov edx, dword ptr [ebp-24]
:004A4DC7 8B45E0 mov eax, dword ptr [ebp-20]
:004A4DCA E8BDF2F5FF call 0040408C
:004A4DCF 7537 jne 004A4E08
…………………………………………………………
好像很受欢迎的样子,而且它还提到了LD2KReg.ini,再看看后面的代码,应该是判断注册的地方,程序很简单,将004A4DCF的jne 004A4E08改为je 004A4E08即可成为注册版。
3,估计7006版跟7001版差不多,关键是找到这个检验主函数
上面这段函数中(1)-(2)
这段函数估计不会变。代码是 64,89,20,b9
4,搜索15f:400000 l fffffff 64,89,20,b9
find date at 15f:xxxxxx
bpx 15f:xxxxxx
5,重启程式,中断后跟踪,发现这个主函数在15f:4a4a64
date:55,8b,ec,b9,05,00
改为:b8,01,00,00,00,c3(mov eax,1 ret)
6,rpp,这个世界清净了.