一。crackcode
教程 以前我们写注册机时,一般都要了解程式的算法,之后用汇编语言或C语言来
把算法还原,这样做一个注册机一般都有要花不少的时间,而且要对汇编语言和编
程有比较高的要求,所以对于初学者来说,是一件很难的事情,对于不少的初学者
,有时他们能在内存中找到注册码,但却没有能力写出注册机来,这大大削弱了他
们的
破解积极性,但还有更可恶的事,就是目前有不少的程式,它的注册码都与硬
件有关,就是在每一台机上安装都有一个机身码,要把这个机身码E-MAIL给作者,
作者把收到的机身码用注册程式算出注册码后再寄回给用户,这样做使得
软件的防
复制方面加强了,但造成了不少用户的麻烦,因为只要用户一重装
系统或升级主板
,就要重新去注册了。对于这种程式,一般初学者只能在内存中找到自己机器的注
册码,但这种注册码到了其它的机器上又不能用了,而自己又没有办法写出注册机
来,一个小
软件crackcode可以解决这方面的
问题,它可以从另一进程内存中取出注
册码来,显示出来,而不需要你去了解注册程式的算法,但它的应用面是很有限的,
只能对付符合以下条件的
软件:
一、必须在内存中可以找到正确的注册码;
二、被取注册码的
软件不能反跟踪程式;
三、被取注册码的
软件的比较部分程式是静态的;
四、注册码比较程式只作比较注册码使用。
用CRACKCODE2000做注册机主要是编写CRACKCODE.INI文件
[例一]
下载:crackcode2000很小,我做的很多注册机都含有它
破解对象:监狱(QUOD)1.0
下载: http://newhua.ruyi.com/down/Quod10.EXE
1.用language2000侦测是否加壳,发现aspack壳 ;2.unaspack脱壳;
3.用W32DASM反汇编
:0045F32E 8B55F0 mov edx, dword ptr [ebp-10]
:0045F331 8D4DF4 lea ecx, dword ptr [ebp-0C]
:0045F334 8BC3 mov eax, ebx
:0045F336 E8BD010000 call 0045F4F8
:0045F33B 8B55F4 mov edx, dword ptr [ebp-0C] ****
破解经典句式
:0045F33E 58 pop eax ***** eax和edx中有一个装真码
:0045F33F E8F854FAFF call 0040483C ****** 关键call ==============
:0045F344 7576 jne 0045F3BC ****** 关键跳转
:0045F346 B201 mov dl, 01
:0045F348 A1E8EA4500 mov eax, dword ptr [0045EAE8]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045F2DE(C)
|
:0045F34D E896F8FFFF call 0045EBE8
:0045F352 8945FC mov dword ptr [ebp-04], eax
:0045F355 33C0 xor eax, eax
:0045F357 55 push ebp
:0045F358 68B5F34500 push 0045F3B5
:0045F35D 64FF30 push dword ptr fs:[eax]
:0045F360 648920 mov dword ptr fs:[eax], esp
:0045F363 B101 mov cl, 01
* Possible StringData Ref from Code Obj ->"Software\XDZHAN\Quod"
|
:0045F365 BA00F44500 mov edx, 0045F400
:0045F36A 8B45FC mov eax, dword ptr [ebp-04]
:0045F36D E87AF9FFFF call 0045ECEC
* Possible StringData Ref from Code Obj ->"Real Programmers Use Pascal!"
|
:0045F372 B920F44500 mov ecx, 0045F420
* Possible StringData Ref from Code Obj ->"Key"
|
:0045F377 BA48F44500 mov edx, 0045F448
:0045F37C 8B45FC mov eax, dword ptr [ebp-04]
:0045F37F E804FBFFFF call 0045EE88
* Possible StringData Ref from Code Obj ->"
软件注册成功,谢谢您的支持!"--正确提示信息处向上找第一个跳转
|
:0045F384 B854F44500 mov eax, 0045F454
:0045F389 E82A39FDFF call 00432CB8
:0045F38E A1E83E4600 mov eax, dword ptr [00463EE8]
:0045F393 8B00 mov eax, dword ptr [eax]
* Possible StringData Ref from Code Obj ->"监狱(Quod)—注册版"
|
:0045F395 BA78F44500 mov edx, 0045F478
:0045F39A E8459EFDFF call 004391E4
:0045F39F 33C0 xor eax, eax
:0045F3A1 5A pop edx
:0045F3A2 59 pop ecx
:0045F3A3 59 pop ecx
:0045F3A4 648910 mov dword ptr fs:[eax], edx
:0045F3A7 68C6F34500 push 0045F3C6
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045F3BA(U)
|
:0045F3AC 8B45FC mov eax, dword ptr [ebp-04]
:0045F3AF E82043FAFF call 004036D4
:0045F3B4 C3 ret
:0045F3B5 E9AE4AFAFF jmp 00403E68
:0045F3BA EBF0 jmp 0045F3AC
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045F344(C) 绿色光条停在此,双击鼠标右键,可来到跳过来的地方
|
* Possible StringData Ref from Code&