. 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 存放注册码的内存地址 第二种写法(这种值得推荐!) 寄存器间接寻址的方法: [ 。
2. 如何制作注册机 我们写注册机时 , 一般都要了解程式的算法 , 之后用汇编语言或 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。