原始碼備份 V2.20 (重啟驗證)

看雪資料發表於2003-06-28

【軟體介紹】:
 
  如果你是一個程式設計愛好者,或是網頁設計師,或是一名“閃客”,那麼你一定會經常與各種各樣的原始碼打交道。如果你以前有過因為忘記備份原始碼而造成原始碼丟失的慘痛經歷,那麼你一定知道及時備份原始碼的重要性。可是市面上的備份軟體要麼設定複雜,要麼對各種檔案型別照單全收,無法適應原始碼型別眾多,又有很多臨時檔案摻雜其中的特點。於是,我就寫了這個原始碼備份工具。
它是專門為了備份原始碼而設計的,可以定時自動備份,並對檔案進行過濾,只備份原始碼,而將臨時檔案等過濾掉。它的過濾器完全開放的,透過自定義過濾器,可以用來備份各種程式原始碼。

【下載地址】: http://www.softreg.com.cn/download.asp?id=/6FAADF76-F16C-4D33-A75F-386C2499F26F/

【軟體限制】:還沒注意。

【作者宣告】:初學Crack,只是感興趣,沒有其它目的。失誤之處敬請諸位大俠賜教!如果你有條件,請支援國產軟體。

【作    者】:abcde12345【DFCG】

【破解工具】:Ollydbg1.09、Language2K、Api32

―――――――――――――――――――――――――――――――――
【過    程】:


1、用 Language2K 檢查 "原始碼備份 V2.20 ",AsPack 1.2.12殼,用unpack脫殼再查為Delphi程式。

2、執行Api32除錯程式,檢查會用到那些函式,並分析可疑物件。

0046EA9A:RegOpenKeyExA

(HANDLE:80000002,LPSTR:004B8094:"Software\AIS\DPB",DWORD:00000000,DWORD:000F003F,LPDATA:0072FC28)


3、用Ollydbg1.09除錯該程式,在得到的地址0046EA9A處設定斷點。

5、F9執行後,中斷在我們設的斷點上。按F8數次後,終於出現了RegName字樣,等你等到我心痛。

004B7F0C  /.  55            PUSH EBP
004B7F0D  |.  8BEC          MOV EBP,ESP
004B7F0F  |.  33C9          XOR ECX,ECX
004B7F11  |.  51            PUSH ECX
004B7F12  |.  51            PUSH ECX
004B7F13  |.  51            PUSH ECX
004B7F14  |.  51            PUSH ECX
004B7F15  |.  51            PUSH ECX
004B7F16  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
004B7F19  |.  33C0          XOR EAX,EAX
004B7F1B  |.  55            PUSH EBP
004B7F1C  |.  68 7E804B00   PUSH CRDPB.004B807E
004B7F21  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004B7F24  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004B7F27  |.  33C0          XOR EAX,EAX
004B7F29  |.  55            PUSH EBP
004B7F2A  |.  68 BE7F4B00   PUSH CRDPB.004B7FBE
004B7F2F  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004B7F32  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004B7F35  |.  B2 01         MOV DL,1
004B7F37  |.  A1 1CE84600   MOV EAX,DWORD PTR DS:[46E81C]
004B7F3C  |.  E8 DB69FBFF   CALL CRDPB.0046E91C
004B7F41  |.  8945 F8       MOV DWORD PTR SS:[EBP-8],EAX
004B7F44  |.  BA 02000080   MOV EDX,80000002
004B7F49  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004B7F4C  |.  E8 6B6AFBFF   CALL CRDPB.0046E9BC
004B7F51  |.  33C9          XOR ECX,ECX
004B7F53  |.  BA 94804B00   MOV EDX,CRDPB.004B8094                   ;  ASCII "Software\AIS\DPB"
004B7F58  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004B7F5B  |.  E8 C06AFBFF   CALL CRDPB.0046EA20
004B7F60  |.  8D4D F4       LEA ECX,DWORD PTR SS:[EBP-C]
004B7F63  |.  BA B0804B00   MOV EDX,CRDPB.004B80B0                   ;  ASCII "RegName"
004B7F68  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004B7F6B  |.  E8 986CFBFF   CALL CRDPB.0046EC08
004B7F70  |.  8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
004B7F73  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004B7F76  |.  05 34040000   ADD EAX,434
004B7F7B  |.  E8 C0C7F4FF   CALL CRDPB.00404740
004B7F80  |.  8D4D F0       LEA ECX,DWORD PTR SS:[EBP-10]
004B7F83  |.  BA C0804B00   MOV EDX,CRDPB.004B80C0                   ;  ASCII "RegCode"
004B7F88  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004B7F8B  |.  E8 786CFBFF   CALL CRDPB.0046EC08
004B7F90  |.  8B55 F0       MOV EDX,DWORD PTR SS:[EBP-10]
004B7F93  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004B7F96  |.  05 38040000   ADD EAX,438
004B7F9B  |.  E8 A0C7F4FF   CALL CRDPB.00404740
004B7FA0  |.  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004B7FA3  |.  E8 E469FBFF   CALL CRDPB.0046E98C
004B7FA8  |.  33C0          XOR EAX,EAX
004B7FAA  |.  5A            POP EDX
004B7FAB  |.  59            POP ECX
004B7FAC  |.  59            POP ECX
004B7FAD  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
004B7FB0  |.  68 C57F4B00   PUSH CRDPB.004B7FC5
004B7FB5  |>  8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
004B7FB8  |.  E8 C3B9F4FF   CALL CRDPB.00403980
004B7FBE   .^\E9 51C1F4FF   JMP CRDPB.00404114
004B7FC3   .^ EB F0         JMP SHORT CRDPB.004B7FB5
004B7FC5   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004B7FC8   .  83B8 34040000>CMP DWORD PTR DS:[EAX+434],0
004B7FCF   .  74 0C         JE SHORT CRDPB.004B7FDD
004B7FD1   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004B7FD4   .  83B8 38040000>CMP DWORD PTR DS:[EAX+438],0
004B7FDB   .  75 0C         JNZ SHORT CRDPB.004B7FE9
004B7FDD   >  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004B7FE0   .  C680 30040000>MOV BYTE PTR DS:[EAX+430],0
004B7FE7   .  EB 21         JMP SHORT CRDPB.004B800A
004B7FE9   >  55            PUSH EBP
004B7FEA   .  E8 71FEFFFF   CALL CRDPB.004B7E60       ;在這裡進入演算法關鍵


///////////////////////
//進入演算法分析Call:
///////////////////////
004B7E60  /$  55            PUSH EBP
004B7E61  |.  8BEC          MOV EBP,ESP
004B7E63  |.  6A 00         PUSH 0
004B7E65  |.  53            PUSH EBX
004B7E66  |.  56            PUSH ESI
004B7E67  |.  8B75 08       MOV ESI,DWORD PTR SS:[EBP+8]
004B7E6A  |.  83C6 FC       ADD ESI,-4
004B7E6D  |.  33C0          XOR EAX,EAX
004B7E6F  |.  55            PUSH EBP
004B7E70  |.  68 FD7E4B00   PUSH CRDPB.004B7EFD
004B7E75  |.  64:FF30       PUSH DWORD PTR FS:[EAX]
004B7E78  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP
004B7E7B  |.  8B06          MOV EAX,DWORD PTR DS:[ESI]
004B7E7D  |.  8B80 34040000 MOV EAX,DWORD PTR DS:[EAX+434]
004B7E83  |.  E8 1CCBF4FF   CALL CRDPB.004049A4
004B7E88  |.  83F8 09       CMP EAX,9                   ;這裡使用者名稱與9比較
004B7E8B  |.  7C 07         JL SHORT CRDPB.004B7E94
004B7E8D  |.  B8 09000000   MOV EAX,9
004B7E92  |.  EB 0D         JMP SHORT CRDPB.004B7EA1
004B7E94  |>  8B06          MOV EAX,DWORD PTR DS:[ESI]
004B7E96  |.  8B80 34040000 MOV EAX,DWORD PTR DS:[EAX+434]
004B7E9C  |.  E8 03CBF4FF   CALL CRDPB.004049A4
004B7EA1  |>  33DB          XOR EBX,EBX
004B7EA3  |.  85C0          TEST EAX,EAX
004B7EA5  |.  7E 18         JLE SHORT CRDPB.004B7EBF
004B7EA7  |.  BA 01000000   MOV EDX,1
004B7EAC  |>  8B0E          /MOV ECX,DWORD PTR DS:[ESI]
004B7EAE  |.  8B89 34040000 |MOV ECX,DWORD PTR DS:[ECX+434]
004B7EB4  |.  0FB64C11 FF   |MOVZX ECX,BYTE PTR DS:[ECX+EDX-1]
004B7EB9  |.  03D9          |ADD EBX,ECX              ;這裡進行使用者名稱累加到ebx
004B7EBB  |.  42            |INC EDX
004B7EBC  |.  48            |DEC EAX                  ;使用者名稱只加到前9位,後面不管了
004B7EBD  |.^ 75 ED         \JNZ SHORT CRDPB.004B7EAC
004B7EBF  |>  81C3 5D4F0000 ADD EBX,4F5D                   ;再把 累加和 + 4f5d
004B7EC5  |.  8D55 FC       LEA EDX,DWORD PTR SS:[EBP-4]
004B7EC8  |.  8BC3          MOV EAX,EBX
004B7ECA  |.  E8 3111F5FF   CALL CRDPB.00409000
004B7ECF  |.  8B55 FC       MOV EDX,DWORD PTR SS:[EBP-4]
004B7ED2  |.  8B06          MOV EAX,DWORD PTR DS:[ESI]
004B7ED4  |.  8B80 38040000 MOV EAX,DWORD PTR DS:[EAX+438]
004B7EDA  |.  E8 09CCF4FF   CALL CRDPB.00404AE8               ;真假碼在這裡比較
004B7EDF  |.  75 04         JNZ SHORT CRDPB.004B7EE5
004B7EE1  |.  B3 01         MOV BL,1
004B7EE3  |.  EB 02         JMP SHORT CRDPB.004B7EE7
004B7EE5  |>  33DB          XOR EBX,EBX
004B7EE7  |>  33C0          XOR EAX,EAX
004B7EE9  |.  5A            POP EDX
004B7EEA  |.  59            POP ECX
004B7EEB  |.  59            POP ECX
004B7EEC  |.  64:8910       MOV DWORD PTR FS:[EAX],EDX
004B7EEF  |.  68 047F4B00   PUSH CRDPB.004B7F04
004B7EF4  |>  8D45 FC       LEA EAX,DWORD PTR SS:[EBP-4]
004B7EF7  |.  E8 F0C7F4FF   CALL CRDPB.004046EC
004B7EFC  \.  C3            RETN


【原始碼備份 V2.20  Java序號產生器】:

public class SourceBakKey
{
  public  static void main(String[] args)
      {
              String name = new String("abcde12345[DFCG]");
              long sum = 0;

              for(int i=0;i<name.length();i++)
              {
                              char c = name.charAt(i);
                              sum = sum + c ;
                              if(i==8)
                              {
                                  break;
                              }
              }

              long sn  = sum + 0x4F5D;

              System.out .println("原始碼備份 V2.20  序號產生器 Cracked   By   CrazyXY[DFCG]---");
              System.out .println("使用者名稱:" +name);
              System.out .println("註冊碼:" +sn);
              System.out .println("-----------------------------------------------------");
      }
}


相關文章