![]() |
来源:安全中国 |
一。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 Obj ->"注册码不正确,无法注册!" | :0045F3BC B894F44500 mov eax, 0045F494 :0045F3C1 E8F238FDFF call 00432CB8 :0045F3C6 33C0 xor eax, eax 追入关键call :0045F33F处的call 0040483C :0040483C 53 push ebx :0040483D 56 push esi :0040483E 57 push edi :0040483F 89C6 mov esi, eax :00404841 89D7 mov edi, edx :00404843 39D0 cmp eax, edx ================ :00404845 0F848F000000 je 004048DA 好,用CRACKCODE2000做个注册机 CRACKCODE.INI内容为: [Options] CommandLine=quod.exe //软件名 Mode=2 //破解经典句式 一般都用2 First_Break_Address=45F33F //关键CALL所在的行地址 First_Break_Address_Code=E8 //此CALL的第一个字节 First_Break_Address_Code_Lenth=5 //此调用语句共5个字节 Second_Break_Address=404843 //追入关键CALL后cmp eax, edx所在的行地址 Second_Break_Address_Code_Lenth=2 //共有2个字节 Save_Code_Address=EDX //放真注册码的地方 填eax或edx(此例中edx装真码) crackcode2000注册机使用方法 1.将crackcode.exe和crackcode.ini放到quod.exe所在目录 2.运行crackcode.exe,它会使quod程序启动 3.找到注册选项,输入你的用户名,随便输入假注册码,注册 4.crackcode会弹出,给你正确的注册码。最后用你的姓名和正确的注册码去注册吧! 总结:CRACKCODE2000做注册机 CRACKCODE.INI只需改上面红色的部分,黑色的部分不要动,傻瓜式,你一定学会了吧!(//后为注释) |