豪仕知识网--知识就是力量!

微信
手机版
生活常识

注册码生成工具CrackCode2000的使用教程,注册码生成器源码

作者 :东邦奴奶 2024-01-05 09:11:44 围观 : 评论

注册码生成工具CrackCode2000的使用教程,注册码生成器源码

豪士君测试所用平台

纪录美好生活,一起观趣事,这里包罗IT知识,豪仕知识网是信息的海洋,有你听不到的故事,接下来我们一起来看看注册码生成工具CrackCode2000的使用教程。

以前我们写注册机时,一般都要了解程式的算法,之后用汇编语言或 C 语言来把算法还原,这样做一个注册机一般都有要花不少的时间,而且要对汇编语言和编程有比较高的要求,所以对于初学者来说,是一件很难的事情,对于不少的初学者 ,有时他们能在内存中找到注册码,但却没有能力写出注册机来,这大大削弱了他 们的破解积极性,但还有更可恶的事,就是目前有不少的程式,它的注册码都与硬 件有关,就是在每一台机上安装都有一个机身码,要把这个机身码 E-MAIL 给作者,作者把收到的机身码用注册程式算出注册码后再寄回给用户,这样做使得软件的防 复制方面加强了,但造成了不少用户的麻烦,因为只要用户一重装系统或升级主板 ,就要重新去注册了。对于这种程式,一般初学者只能在内存中找到自己机器的注 册码,但这种注册码到了其它的机器上又不能用了,而自己又没有办法写出注册机来,为了解决这方面的问题,我写了一个小软件,它可以从另一进程内存中取出注 册码来,显示出来,而不需要你去了解注册程式的算法,但它的应用面是很有限的, 只能对付符合以下条件的软件: 一、必须在内存中或在寄存器中可以找到正确的注册码; 二、被取注册码的软件不能反跟踪程式; 三、被取注册码的软件的比较部分程式是静态的存在的; 四、注册码比较程式只作比较注册码使用。 好了,讲了这么多,不如来个例子说明一下如何使用它吧!哦对了,大家还不知那 个东西是什么呢?它叫 CrackCode2000 啊! 以下是一个软件的注册码比较程式,大家不要问我怎么样得到了,大家只要听下去 就可以了。 015F:004149D2 8A06 MOV AL,[ESI] 这里放你的输入的注册码 015F:004149D4 84C0 TEST AL,AL 015F:004149D6 740D JZ 004149E5 015F:004149D8 8A11 MOV DL,[ECX] 这里放正确的注册码 015F:004149DA 41 INC ECX 015F:004149DB 46 INC ESI 015F:004149DC 3AC2 CMP AL,DL 015F:004149DE 751F JNZ 004149FF 015F:004149E0 803900 CMP BYTE PTR [ECX],00 015F:004149E3 75ED JNZ 004149D2 015F:004149E5 803900 CMP BYTE PTR [ECX],00 015F:004149E8 7515 JNZ 004149FF 015F:004149EA 803E00 CMP BYTE PTR [ESI],00 015F:004149ED 7510 JNZ 004149FF 015F:004149EF B801000000 MOV EAX,00000001 最后正确就把 EAX=1 015F:004149F4 5F POP EDI 015F:004149F5 5E POP ESI 015F:004149F6 5D POP EBP 015F:004149F7 5B POP EBX 015F:004149F8 81C460030000 ADD ESP,00000360 015F:004149FE C3 RET 好了,大家在 Winsoftice 下以下的命令可以看到: :d esi 0167:0041F1F8 34 38 34 38 34 38 34 38-34 38 34 38 00 00 00 00 484848484848.... 0167:0041F208 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0041F218 04 0D 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0041F228 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0041F238 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0041F248 00 00 00 00 00 00 00 00-00 C0 00 00 0A 04 00 00 ................ 0167:0041F258 04 00 00 00 0A 00 00 00-01 00 00 00 90 03 CA 00 ................ 0167:0041F268 00 00 00 00 D0 03 CA 00-00 00 00 00 00 00 00 00 ................ :d ecx 0167:0066F3E4 58 51 4D 50 5A 43 57 58-54 45 52 53 00 01 08 00 XQMPZCWXTERS.... 0167:0066F3F4 9A EE 8B 17 E3 A4 00 00-10 00 E0 2C 00 00 00 01 ...........,.... 0167:0066F404 00 03 00 00 00 00 00 00-80 01 AB 01 8D 01 9C 01 ................ 0167:0066F414 00 00 AB 01 8D 01 00 00-80 01 9C 01 8C 01 A4 01 ................ 0167:0066F424 8D 01 9C 01 8C 01 A4 01-8D 01 04 00 00 00 B6 0C ................ 0167:0066F434 00 A9 52 FB 83 2A D1 78-21 88 73 DA A2 0B F0 59 ..R..*.x!.s....Y 0167:0066F444 65 CC 37 9E E6 4F B4 1D-44 ED 16 BF C7 6E 95 3C e.7..O..D....n.< 0167:0066F454 ED 44 BF 16 6E C7 3C 95-CC 65 9E 37 4F E6 1D B4 .D..n.<..e.7O... 见到了吧!那个 XQMPZCWXTERS 就是正确的注册码了,但如果我们用以前的方法来写注册机, 就要去分析前面的程式了,但我们今次不是用这种方法来制作,而是用 CRACKCODE 来做,这样大家可以见到用 CRACKCODE 来做注册机实在是太方便了,太简单了! 好,我们为 CRACKCODE 来写一个 INI 文件吧! 第一种写法(这是一种不提倡的写法!): 内存直接寻址的方法: [Options] CommandLine=Axplorer.exe 这是被取注册码的 EXE 文件名 Mode=0 采用模式 0 读取注册码 First_Break_Address=4149D2 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=8A 中断程式的 1 Byte 代码,这个 8A 就是 015F:004149D2 的 8A First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=66F3E4 存放注册码的内存地址 第二种写法(这种值得推荐!) 寄存器间接寻址的方法: [Options] CommandLine=test.exe 这是被取注册码的 EXE 文件名(化名) Mode=0 取用模式 0 读取注册码 First_Break_Address=4149D2 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=8A 中断程式的 1 Byte 代码,这个 8A 就是 015F:004149D2 的 8A First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=ECX 存放注册码的内存地址,这个 ECX 是从 015F:004149D8 来 的,大家见到了吧!这和上前的方法相差就只是这句, 当你使用了这句,就不怕软件是否被压缩过了。 注意: 目前 CRACKCODE2000 对所中断地址的代码长度已经是无有要求的,只要把长度写进 INI 就可以了! 015F:004149D2 8A06 MOV AL,[ESI] 本行代码为 2 Bytes 015F:004149DA 41 INC ECX 本行代码为 1 Byte 015F:004149E0 803900 CMP BYTE PTR [ECX],00 本行代码为 3 Bytes 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦!被取注册码的软件也运行了,到注册的窗口去,输入一个名字,随便输入注册码,按确定,哦!跳出一个显示窗来,里面出现了你想要的正确注册码了。是不是觉得很神奇呢!来试一试你就知道了! 好了,下面我再为大家显示 CrackCode2000 的另一种工作模式吧! 下面是 Decompile Winhelp 的注册机的写法,这个软件是加了壳的软件,我们来看一看加了壳 的软件对于 CrackCode2000 是否有影响 , 现在我把它注册码的部分那出来给大家看一看吧!而且它的注册码和硬件是有关系的,所以要想别人可以注册,就一定要写出注册机了! 下面就是它的比较程式了: 015f:0040e4a9 8d45c0 lea eax,[ebp-40] 015f:0040e4ac 8d55ac lea edx,[ebp-54] 015f:0040e4af 8a08 mov cl,[eax] ds:eax 放的是你输入的注册码 015f:0040e4b1 3a0a cmp cl,[edx] ds:edx 放的是正确的注册码 015f:0040e4b3 7516 jnz 0040e4cb 015f:0040e4b5 84c9 test cl,cl 015f:0040e4b7 746e jz 0040e527 015f:0040e4b9 8a4801 mov cl,[eax+01] 015f:0040e4bc 3a4a01 cmp cl,[edx+01] 015f:0040e4bf 750a jnz 0040e4cb 015f:0040e4c1 83c002 add eax,02 015f:0040e4c4 83c202 add edx,02 015f:0040e4c7 84c9 test cl,cl 015f:0040e4c9 75e4 jnz 0040e4af 015f:0040e4cb 745a jz 0040e527 在 winsoftice 里下以下命令可以见到: :d ds:eax 0167:006DF33C 34 34 34 34 34 34 34 34-34 34 34 34 34 34 00 00 44444444444444.. 0167:006DF34C 80 00 BC 58 C8 F3 6D 00-7E 51 46 00 8C 29 47 00 ...X..m.~QF..)G. 0167:006DF35C 1C F3 6D 00 14 00 00 00-00 00 78 83 F5 10 00 00 ..m.......x..... 0167:006DF36C 00 00 00 00 A0 0E 08 00-00 00 00 00 00 00 00 00 ................ :d ds:edx 0167:006DF328 32 39 34 46 41 41 38 36-33 30 44 30 35 39 00 58 294FAA8630D059.X 0167:006DF338 80 00 00 00 34 34 34 34-34 34 34 34 34 34 34 34 ....444444444444 0167:006DF348 34 34 00 00 80 00 BC 58-C8 F3 6D 00 7E 51 46 00 44.....X..m.~QF. 0167:006DF358 8C 29 47 00 1C F3 6D 00-14 00 00 00 00 00 78 83 .)G...m.......x. 好了,来段 INI 文件把帮它做一个注册机吧! [Options] CommandLine=Decompile Winhelp.exe 这是被取注册码的 EXE 文件名 Mode=0 采用模式 0 读取注册码 First_Break_Address=40E4AF 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=8A 中断程式的 1 Byte 代码,这个 8A 就是 015f:0040e4af 的 8A First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=EDX 存放注册码的内存地址 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦!被取注册码的软件也运行了,到注册的窗口去,随便输入足够数量的注册码,按确定,哦!跳出一个显示窗来,里面出现了你想要的正 确注册码了。是不是觉得很神奇呢!来试一试你就知道了!大家现在可以见到,用寄存器寻 址是多么好的一件事啊! 下面我们再来看一看 CrackCode2000 的另一个工作模式吧!以下是关于美萍网管大师 3.1 的注册 机的写法: 大家看一看这个软件的比较程式吧! 015f:00460759 8bd8 mov ebx,eax 015f:0046075b b87c074600 mov eax,0046077c 015f:00460760 e81f000000 call 00460784 015f:00460765 3bd8 cmp ebx,eax 这里的 ebx 就是放你台机器 015f:00460767 7507 jnz 00460770 的正确的注册码了 015f:00460769 b801000000 mov eax,00000001 015f:0046076e 5b pop ebx 015f:0046076f c3 ret 好我们来写注册机了: [Options] CommandLine=scon.exe 这是被取注册码的 EXE 文件名 Mode=1 采用模式 1 读取注册码 First_Break_Address=460765 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=3B 中断程式的 1 Byte 代码,这个 3B 就是 015f:00460765 的 3B First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=EBX 存放注册码的内存地址 大家看到了吗?今次 CrackCode2000 使用了模式 1 来读取了,因为今次的注册码不是直接用 ASCII 的形式放在内存中的,而是用数值的形式放在寄存器处的,所以这时就要用模式 1 了。 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦!被取注册码的软件也运行了,哦!软件一运行 注册码就出来了!哈哈。。。。。。 好了,我们再来进一步地研究 CrackCode 的加强模式吧!这是正式版本才具有的,二重断点读取注册码,这是 CrackCode 的增强模式,它可以使用二次重点的方法,来达到的目的,大 家可能还不了解为什么要这样做吧!好,让我们看一看下面这个软件,你就明白这是多么 的重要啊! 下面的实现例子是大家熟悉的 Winzip7.0 !好了开始吧!我们找到了它的比较程式了: 015f:00457920 8a06 mov al,[esi] 输入的注册码 015f:00457922 46 inc esi 015f:00457923 8a27 mov ah,[edi] 正确的注册码 015f:00457925 47 inc edi 015f:00457926 38c4 cmp ah,al 015f:00457928 74f2 jz 0045791c 015f:0045792a 2c41 sub al,41 015f:0045792c 3c1a cmp al,1a 015f:0045792e 1ac9 sbb cl,cl 015f:00457930 80e120 and cl,20 015f:00457933 02c1 add al,cl 015f:00457935 0441 add al,41 015f:00457937 86e0 xchg ah,al 015f:00457939 2c41 sub al,41 015f:0045793b 3c1a cmp al,1a 015f:0045793d 1ac9 sbb cl,cl 015f:0045793f 80e120 and cl,20 015f:00457942 02c1 add al,cl 015f:00457944 0441 add al,41 015f:00457946 38e0 cmp al,ah 015f:00457948 74d2 jz 0045791c 我们在 winsoftice 中下以下的命令: :d ds:esi 0167:0047D958 34 38 34 38 34 38 34 38-34 38 00 00 00 00 00 00 4848484848...... 0167:0047D968 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0047D978 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ :d ds:edi 0167:0072F41C 43 39 36 32 30 35 45 42-00 00 01 00 00 00 0A 00 C96205EB........ 0167:0072F42C D0 00 36 18 DA F4 0C 00-2C 20 0C 00 CE 1F 1A 84 ..6....., ...... 0167:0072F43C 3F 19 5C 84 97 0F 47 04-00 00 0A 00 00 00 0A 00 ?.\...G......... 看到了吗?那 ds:edi 放的就是你要的东西啊! 好了,我们先试一试用普通模式 0 来写注册机吧! [Options] CommandLine=winzip32.exe 这是被取注册码的 EXE 文件名 Mode=0 采用模式 1 读取注册码 First_Break_Address=457923 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=8A 中断程式的 1 Byte 代码,这个 3B 就是 015f:00460765 的 3B First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=EDI 存放注册码的内存地址 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦! winzip 会说很多的 dll 找不到,不能正常运行。 哦!发生了什么事啊!好我们用 winsoftice 在那 cs:457923 下一个断点,重新运行 winzip , 哦!我们的 winsoftice 不断地中断,原来 winzip 的设计很特殊性,它会用比较注册码的程式来加载其它的 dll ,所以 CrackCode 的跟踪就不能正常地进行下去了。 好吧!我们再看一看程式吧!经过分析我们知道,上面的比较程式是由下面的程式调用去 做比较注册码的工作的。 015f:00407c14 50 push eax 015f:00407c15 57 push edi 015f:00407c16 e8ab000000 call 00407cc6 带过这个 Call 在上面的 015f:00407c1b 59 pop ecx 0167:0072F41C 址中注册 015f:00407c1c be58d94700 mov esi,0047d958 码就出来了。 015f:00407c21 59 pop ecx 015f:00407c22 8d85c0feffff lea eax,[ebp-0140] 015f:00407c28 56 push esi 015f:00407c29 50 push eax 015f:00407c2a e8d1fc0400 call 00457900 这个 Call 就是调用比较 015f:00407c2f f7d8 neg eax 注册码的 Call 了。 015f:00407c31 1bc0 sbb eax,eax 015f:00407c33 59 pop ecx 015f:00407c34 40 inc eax 015f:00407c35 59 pop ecx 015f:00407c36 a37cb04700 mov [0047b07c],eax 本来我们可以在上面出现了注册之后就找一个中断地址中断用模式 0 去取注册啊!但有一点你们切记,那是到了万不得意时才使用的,我们要尽可能地用寄存器寻址。所以我们使用增强模式来解决这个问题。好了,我们在出现了注册码和调用比较注册码程式的 Call 之间 找一个地址,但经过分析我选取 015f:00407c1c 这个地址,当然你也可以选择其它的。 下面大家看一看 INI 文件是如何写的: [Options] CommandLine=winzip32.exe 这是被取注册码的 EXE 文件名 Mode=2 采用增强模式 2 读取注册码 First_Break_Address=407C1C 程式的中断地址 1 ,它和 ICE 中见到的是一样的 First_Break_Address_Code=BE 中断程式的 1 Byte 代码,这个 3B 就是 015f:00407c1c 的 BE First_Break_Address_Code_Lenth=5 中断行代码的长度(单位: byte ) Second_Break_Address=457923 程式的中断地址 2 ,它和 ICE 中见到的是一样的 Second_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=EDI 存放注册码的内存地址 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦!被取注册码的软件也运行了,哦!软件一运行 注册码就出来了!哈哈。。。。。。以前我们写注册机时,一般都要了解程式的算法,之后用汇编语言或 C 语言来把算法还原,这样做一个注册机一般都有要花不少的时间,而且要对汇编语言和编程有比较高的要求,所以对于初学者来说,是一件很难的事情,对于不少的初学者 ,有时他们能在内存中找到注册码,但却没有能力写出注册机来,这大大削弱了他 们的破解积极性,但还有更可恶的事,就是目前有不少的程式,它的注册码都与硬 件有关,就是在每一台机上安装都有一个机身码,要把这个机身码 E-MAIL 给作者,作者把收到的机身码用注册程式算出注册码后再寄回给用户,这样做使得软件的防 复制方面加强了,但造成了不少用户的麻烦,因为只要用户一重装系统或升级主板 ,就要重新去注册了。对于这种程式,一般初学者只能在内存中找到自己机器的注 册码,但这种注册码到了其它的机器上又不能用了,而自己又没有办法写出注册机来,为了解决这方面的问题,我写了一个小软件,它可以从另一进程内存中取出注 册码来,显示出来,而不需要你去了解注册程式的算法,但它的应用面是很有限的, 只能对付符合以下条件的软件: 一、必须在内存中或在寄存器中可以找到正确的注册码; 二、被取注册码的软件不能反跟踪程式; 三、被取注册码的软件的比较部分程式是静态的存在的; 四、注册码比较程式只作比较注册码使用。 好了,讲了这么多,不如来个例子说明一下如何使用它吧!哦对了,大家还不知那 个东西是什么呢?它叫 CrackCode2000 啊! 以下是一个软件的注册码比较程式,大家不要问我怎么样得到了,大家只要听下去 就可以了。 015F:004149D2 8A06 MOV AL,[ESI] 这里放你的输入的注册码 015F:004149D4 84C0 TEST AL,AL 015F:004149D6 740D JZ 004149E5 015F:004149D8 8A11 MOV DL,[ECX] 这里放正确的注册码 015F:004149DA 41 INC ECX 015F:004149DB 46 INC ESI 015F:004149DC 3AC2 CMP AL,DL 015F:004149DE 751F JNZ 004149FF 015F:004149E0 803900 CMP BYTE PTR [ECX],00 015F:004149E3 75ED JNZ 004149D2 015F:004149E5 803900 CMP BYTE PTR [ECX],00 015F:004149E8 7515 JNZ 004149FF 015F:004149EA 803E00 CMP BYTE PTR [ESI],00 015F:004149ED 7510 JNZ 004149FF 015F:004149EF B801000000 MOV EAX,00000001 最后正确就把 EAX=1 015F:004149F4 5F POP EDI 015F:004149F5 5E POP ESI 015F:004149F6 5D POP EBP 015F:004149F7 5B POP EBX 015F:004149F8 81C460030000 ADD ESP,00000360 015F:004149FE C3 RET 好了,大家在 Winsoftice 下以下的命令可以看到: :d esi 0167:0041F1F8 34 38 34 38 34 38 34 38-34 38 34 38 00 00 00 00 484848484848.... 0167:0041F208 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0041F218 04 0D 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0041F228 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0041F238 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0041F248 00 00 00 00 00 00 00 00-00 C0 00 00 0A 04 00 00 ................ 0167:0041F258 04 00 00 00 0A 00 00 00-01 00 00 00 90 03 CA 00 ................ 0167:0041F268 00 00 00 00 D0 03 CA 00-00 00 00 00 00 00 00 00 ................ :d ecx 0167:0066F3E4 58 51 4D 50 5A 43 57 58-54 45 52 53 00 01 08 00 XQMPZCWXTERS.... 0167:0066F3F4 9A EE 8B 17 E3 A4 00 00-10 00 E0 2C 00 00 00 01 ...........,.... 0167:0066F404 00 03 00 00 00 00 00 00-80 01 AB 01 8D 01 9C 01 ................ 0167:0066F414 00 00 AB 01 8D 01 00 00-80 01 9C 01 8C 01 A4 01 ................ 0167:0066F424 8D 01 9C 01 8C 01 A4 01-8D 01 04 00 00 00 B6 0C ................ 0167:0066F434 00 A9 52 FB 83 2A D1 78-21 88 73 DA A2 0B F0 59 ..R..*.x!.s....Y 0167:0066F444 65 CC 37 9E E6 4F B4 1D-44 ED 16 BF C7 6E 95 3C e.7..O..D....n.< 0167:0066F454 ED 44 BF 16 6E C7 3C 95-CC 65 9E 37 4F E6 1D B4 .D..n.<..e.7O... 见到了吧!那个 XQMPZCWXTERS 就是正确的注册码了,但如果我们用以前的方法来写注册机, 就要去分析前面的程式了,但我们今次不是用这种方法来制作,而是用 CRACKCODE 来做,这样大家可以见到用 CRACKCODE 来做注册机实在是太方便了,太简单了! 好,我们为 CRACKCODE 来写一个 INI 文件吧! 第一种写法(这是一种不提倡的写法!): 内存直接寻址的方法: [Options] CommandLine=Axplorer.exe 这是被取注册码的 EXE 文件名 Mode=0 采用模式 0 读取注册码 First_Break_Address=4149D2 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=8A 中断程式的 1 Byte 代码,这个 8A 就是 015F:004149D2 的 8A First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=66F3E4 存放注册码的内存地址 第二种写法(这种值得推荐!) 寄存器间接寻址的方法: [Options] CommandLine=test.exe 这是被取注册码的 EXE 文件名(化名) Mode=0 取用模式 0 读取注册码 First_Break_Address=4149D2 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=8A 中断程式的 1 Byte 代码,这个 8A 就是 015F:004149D2 的 8A First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=ECX 存放注册码的内存地址,这个 ECX 是从 015F:004149D8 来 的,大家见到了吧!这和上前的方法相差就只是这句, 当你使用了这句,就不怕软件是否被压缩过了。 注意: 目前 CRACKCODE2000 对所中断地址的代码长度已经是无有要求的,只要把长度写进 INI 就可以了! 015F:004149D2 8A06 MOV AL,[ESI] 本行代码为 2 Bytes 015F:004149DA 41 INC ECX 本行代码为 1 Byte 015F:004149E0 803900 CMP BYTE PTR [ECX],00 本行代码为 3 Bytes 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦!被取注册码的软件也运行了,到注册的窗口去,输入一个名字,随便输入注册码,按确定,哦!跳出一个显示窗来,里面出现了你想要的正确注册码了。是不是觉得很神奇呢!来试一试你就知道了! 好了,下面我再为大家显示 CrackCode2000 的另一种工作模式吧! 下面是 Decompile Winhelp 的注册机的写法,这个软件是加了壳的软件,我们来看一看加了壳 的软件对于 CrackCode2000 是否有影响 , 现在我把它注册码的部分那出来给大家看一看吧!而且它的注册码和硬件是有关系的,所以要想别人可以注册,就一定要写出注册机了! 下面就是它的比较程式了: 015f:0040e4a9 8d45c0 lea eax,[ebp-40] 015f:0040e4ac 8d55ac lea edx,[ebp-54] 015f:0040e4af 8a08 mov cl,[eax] ds:eax 放的是你输入的注册码 015f:0040e4b1 3a0a cmp cl,[edx] ds:edx 放的是正确的注册码 015f:0040e4b3 7516 jnz 0040e4cb 015f:0040e4b5 84c9 test cl,cl 015f:0040e4b7 746e jz 0040e527 015f:0040e4b9 8a4801 mov cl,[eax+01] 015f:0040e4bc 3a4a01 cmp cl,[edx+01] 015f:0040e4bf 750a jnz 0040e4cb 015f:0040e4c1 83c002 add eax,02 015f:0040e4c4 83c202 add edx,02 015f:0040e4c7 84c9 test cl,cl 015f:0040e4c9 75e4 jnz 0040e4af 015f:0040e4cb 745a jz 0040e527 在 winsoftice 里下以下命令可以见到: :d ds:eax 0167:006DF33C 34 34 34 34 34 34 34 34-34 34 34 34 34 34 00 00 44444444444444.. 0167:006DF34C 80 00 BC 58 C8 F3 6D 00-7E 51 46 00 8C 29 47 00 ...X..m.~QF..)G. 0167:006DF35C 1C F3 6D 00 14 00 00 00-00 00 78 83 F5 10 00 00 ..m.......x..... 0167:006DF36C 00 00 00 00 A0 0E 08 00-00 00 00 00 00 00 00 00 ................ :d ds:edx 0167:006DF328 32 39 34 46 41 41 38 36-33 30 44 30 35 39 00 58 294FAA8630D059.X 0167:006DF338 80 00 00 00 34 34 34 34-34 34 34 34 34 34 34 34 ....444444444444 0167:006DF348 34 34 00 00 80 00 BC 58-C8 F3 6D 00 7E 51 46 00 44.....X..m.~QF. 0167:006DF358 8C 29 47 00 1C F3 6D 00-14 00 00 00 00 00 78 83 .)G...m.......x. 好了,来段 INI 文件把帮它做一个注册机吧! [Options] CommandLine=Decompile Winhelp.exe 这是被取注册码的 EXE 文件名 Mode=0 采用模式 0 读取注册码 First_Break_Address=40E4AF 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=8A 中断程式的 1 Byte 代码,这个 8A 就是 015f:0040e4af 的 8A First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=EDX 存放注册码的内存地址 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦!被取注册码的软件也运行了,到注册的窗口去,随便输入足够数量的注册码,按确定,哦!跳出一个显示窗来,里面出现了你想要的正 确注册码了。是不是觉得很神奇呢!来试一试你就知道了!大家现在可以见到,用寄存器寻 址是多么好的一件事啊! 下面我们再来看一看 CrackCode2000 的另一个工作模式吧!以下是关于美萍网管大师 3.1 的注册 机的写法: 大家看一看这个软件的比较程式吧! 015f:00460759 8bd8 mov ebx,eax 015f:0046075b b87c074600 mov eax,0046077c 015f:00460760 e81f000000 call 00460784 015f:00460765 3bd8 cmp ebx,eax 这里的 ebx 就是放你台机器 015f:00460767 7507 jnz 00460770 的正确的注册码了 015f:00460769 b801000000 mov eax,00000001 015f:0046076e 5b pop ebx 015f:0046076f c3 ret 好我们来写注册机了: [Options] CommandLine=scon.exe 这是被取注册码的 EXE 文件名 Mode=1 采用模式 1 读取注册码 First_Break_Address=460765 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=3B 中断程式的 1 Byte 代码,这个 3B 就是 015f:00460765 的 3B First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=EBX 存放注册码的内存地址 大家看到了吗?今次 CrackCode2000 使用了模式 1 来读取了,因为今次的注册码不是直接用 ASCII 的形式放在内存中的,而是用数值的形式放在寄存器处的,所以这时就要用模式 1 了。 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦!被取注册码的软件也运行了,哦!软件一运行 注册码就出来了!哈哈。。。。。。 好了,我们再来进一步地研究 CrackCode 的加强模式吧!这是正式版本才具有的,二重断点读取注册码,这是 CrackCode 的增强模式,它可以使用二次重点的方法,来达到的目的,大 家可能还不了解为什么要这样做吧!好,让我们看一看下面这个软件,你就明白这是多么 的重要啊! 下面的实现例子是大家熟悉的 Winzip7.0 !好了开始吧!我们找到了它的比较程式了: 015f:00457920 8a06 mov al,[esi] 输入的注册码 015f:00457922 46 inc esi 015f:00457923 8a27 mov ah,[edi] 正确的注册码 015f:00457925 47 inc edi 015f:00457926 38c4 cmp ah,al 015f:00457928 74f2 jz 0045791c 015f:0045792a 2c41 sub al,41 015f:0045792c 3c1a cmp al,1a 015f:0045792e 1ac9 sbb cl,cl 015f:00457930 80e120 and cl,20 015f:00457933 02c1 add al,cl 015f:00457935 0441 add al,41 015f:00457937 86e0 xchg ah,al 015f:00457939 2c41 sub al,41 015f:0045793b 3c1a cmp al,1a 015f:0045793d 1ac9 sbb cl,cl 015f:0045793f 80e120 and cl,20 015f:00457942 02c1 add al,cl 015f:00457944 0441 add al,41 015f:00457946 38e0 cmp al,ah 015f:00457948 74d2 jz 0045791c 我们在 winsoftice 中下以下的命令: :d ds:esi 0167:0047D958 34 38 34 38 34 38 34 38-34 38 00 00 00 00 00 00 4848484848...... 0167:0047D968 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ 0167:0047D978 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................ :d ds:edi 0167:0072F41C 43 39 36 32 30 35 45 42-00 00 01 00 00 00 0A 00 C96205EB........ 0167:0072F42C D0 00 36 18 DA F4 0C 00-2C 20 0C 00 CE 1F 1A 84 ..6....., ...... 0167:0072F43C 3F 19 5C 84 97 0F 47 04-00 00 0A 00 00 00 0A 00 ?.\...G......... 看到了吗?那 ds:edi 放的就是你要的东西啊! 好了,我们先试一试用普通模式 0 来写注册机吧! [Options] CommandLine=winzip32.exe 这是被取注册码的 EXE 文件名 Mode=0 采用模式 1 读取注册码 First_Break_Address=457923 程式的中断地址,它和 ICE 中见到的是一样的 First_Break_Address_Code=8A 中断程式的 1 Byte 代码,这个 3B 就是 015f:00460765 的 3B First_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=EDI 存放注册码的内存地址 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦! winzip 会说很多的 dll 找不到,不能正常运行。 哦!发生了什么事啊!好我们用 winsoftice 在那 cs:457923 下一个断点,重新运行 winzip , 哦!我们的 winsoftice 不断地中断,原来 winzip 的设计很特殊性,它会用比较注册码的程式来加载其它的 dll ,所以 CrackCode 的跟踪就不能正常地进行下去了。 好吧!我们再看一看程式吧!经过分析我们知道,上面的比较程式是由下面的程式调用去 做比较注册码的工作的。 015f:00407c14 50 push eax 015f:00407c15 57 push edi 015f:00407c16 e8ab000000 call 00407cc6 带过这个 Call 在上面的 015f:00407c1b 59 pop ecx 0167:0072F41C 址中注册 015f:00407c1c be58d94700 mov esi,0047d958 码就出来了。 015f:00407c21 59 pop ecx 015f:00407c22 8d85c0feffff lea eax,[ebp-0140] 015f:00407c28 56 push esi 015f:00407c29 50 push eax 015f:00407c2a e8d1fc0400 call 00457900 这个 Call 就是调用比较 015f:00407c2f f7d8 neg eax 注册码的 Call 了。 015f:00407c31 1bc0 sbb eax,eax 015f:00407c33 59 pop ecx 015f:00407c34 40 inc eax 015f:00407c35 59 pop ecx 015f:00407c36 a37cb04700 mov [0047b07c],eax 本来我们可以在上面出现了注册之后就找一个中断地址中断用模式 0 去取注册啊!但有一点你们切记,那是到了万不得意时才使用的,我们要尽可能地用寄存器寻址。所以我们使用增强模式来解决这个问题。好了,我们在出现了注册码和调用比较注册码程式的 Call 之间 找一个地址,但经过分析我选取 015f:00407c1c 这个地址,当然你也可以选择其它的。 下面大家看一看 INI 文件是如何写的: [Options] CommandLine=winzip32.exe 这是被取注册码的 EXE 文件名 Mode=2 采用增强模式 2 读取注册码 First_Break_Address=407C1C 程式的中断地址 1 ,它和 ICE 中见到的是一样的 First_Break_Address_Code=BE 中断程式的 1 Byte 代码,这个 3B 就是 015f:00407c1c 的 BE First_Break_Address_Code_Lenth=5 中断行代码的长度(单位: byte ) Second_Break_Address=457923 程式的中断地址 2 ,它和 ICE 中见到的是一样的 Second_Break_Address_Code_Lenth=2 中断行代码的长度(单位: byte ) Save_Code_Address=EDI 存放注册码的内存地址 生成后保存为 CRACKCODE.INI 文件,把 CRACKCODE.EXE 和 CRACKCODE.INI 一起 copy 到被注册的 软件的安装目录下,运行 CRACKCODE.EXE 。哦!被取注册码的软件也运行了,哦!软件一运行 注册码就出来了!哈哈。。。。。。

◐◐◐◐●☛█▼▲豪仕知识网███████豪仕知识网HTtp://www.haoZ.net▼▲▼▲▼▲▼▲▼●●●●●●●▼▲▼▲▼▲

关于注册码生成工具CrackCode2000的使用教程的介绍到此就结束了,字数约20140字,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,豪仕知识网往后会继续推荐注册码生成工具CrackCode2000的使用教程相关内容。

相关文章