• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發其它知識 → 注冊碼生成工具CrackCode2000的使用教程

    注冊碼生成工具CrackCode2000的使用教程

    相關軟件相關文章發表評論 來源:看雪論壇時間:2011/7/30 16:19:43字體大?。?em class="fontsize">A-A+

    作者:Ru Feng點擊:680次評論:2次標簽: 注冊碼

    • 類型:圖像處理大?。?i>58KB語言:中文 評分:1.5
    • 標簽:
    立即下載
     以前我們寫注冊機時,一般都要了解程式的算法,之后用匯編語言或 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 。哦!被取注冊碼的軟件也運行了,哦!軟件一運行 注冊碼就出來了!哈哈。。。。。。

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(2)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>