演算法解析 => 密碼學應用 => 炒某某財 (6千字)

看雪資料發表於2002-12-01

=======================================================================================
Yy[CCG] => 演算法解析 => 炒股理財_3.21

註冊形式:序列號/使用者名稱/註冊碼

限制:試用一百次左右,未註冊版最多可記錄五十次交易記錄

難度點評:初級、變態形

聲    明:偶不是搞漢化的那個、註冊名一大一小(Yy)搞漢化的那謂兩個大大(YY)別弄錯嘎!

          對本解析的驚喜打擊~~~概不負責
=======================================================================================
東東用ASProtect_1.2X加殼、可自動或手動脫掉、執行跳出個視窗說有毒~~~靠~~~有嘔像味

把 42DA91 的 7434 改為 EB34 執行、又跳出個資料庫密碼登陸視窗~~~再靠一下、Cancel掉

再出個什麼鳥就不搞了~~~倒~~~註冊提示視窗、進去、發現載入後主視窗的內容少了點東東

這個東東演算法重點在重啟驗證、軟體註冊那裡、取硬碟型號、硬碟ID、轉換為序列號、並判斷註冊碼形式及位數、把相關的資訊寫入登錄檔 註冊碼形式是這樣 ****-****-****
=======================================================================================
***演算法解析***重啟驗證***
=======================================================================================
這個東東比較煩、反覆呼叫變態MD5算算算、對付的辦法就是在變態MD5初始化那裡設斷、想看的資訊會隨著程式的流程顯現出來、只要弄懂前後的變換演算法就能搞定。
---------------------------------------------------------------------------------------
***註冊碼變換演算法***(填入註冊碼 => 1234-ABCD-5678)
-----------------------------------------------------
3412 CDAB 7856 => 0097FBC8  34 12 CD AB 78 56

3412<<=1;==6825
12cd<<=1;==259B
cdab<<=1;==9B56
ab78<<=1;==56F0
7856<<=1;==F0AC
5634<<=1;==AC68

6825 9B56 F0AC => 0097F9A0  68 25 9B 56 F0 AC
              => 0097FBC8  68 25 9B 56 F0 AC
6825<<=1;==D04A
259B<<=1;==4B36
9B56<<=1;==36AC
56F0<<=1;==ADE0
F0AC<<=1;==E158
AC68<<=1;==58D0
                  <= 逆運算密文 3 2 1 逆推回去得出註冊碼
D04B AD36 E158 => 0097FBC8  D0 4B 36 AD E1 58

呼叫變態MD5算出三組最終註冊碼密文 <= 不可逆
=======================================================================================
序列號 變換演算法 =>
====================
00420A30 <= 取硬碟型號、取硬碟ID

1:取硬碟型號呼叫演算法1 算出硬體程式碼計算常量前四位

2:取硬碟 ID 呼叫演算法1 算出硬體程式碼計算常量後四位

3:硬體程式碼計算常量 => 0x564B9D85 => 轉換為系列號

0x564B9D85^=0x12345678;==0x447FCBFD

0097F640  FD CB 7F 44

FDCB<<=1;==FB96
CB7F<<=1;==96FE
7F44<<=1;==FE89
44FD<<=1;==89FB

0097F344  FB 96 FE 89 <= 系列號 

系列號 <=> 硬體程式碼計算常量 <= 互逆

~~~什麼、逆不回去!那就在下面的點位設斷 =>

004210C8  . 8B45 98        MOV EAX,DWORD PTR SS:[EBP-68] <= 硬體程式碼計算常量
004210CB  . 8945 9C        MOV DWORD PTR SS:[EBP-64],EAX <= 硬體程式碼計算常量
==========================-------------------------------------------------------------
序列號+使用者名稱 變換演算法 =>
===========================
1:使用者名稱轉換為大寫

2:硬體程式碼計算常量+使用者名稱 呼叫 變態MD5+128位轉換得出逆運算密文1

0097FA2C  85 9D 4B 56 00 59 59 5B 43 43 47 5D <= KV.YY[CCG]

變態MD5運算結果 =>

0097FA14  |3906DB74
0097FA18  |02CDEF80
0097FA1C  |3DDDBF94
0097FA20  |8898E7D3

128位轉換 => 0097FB66  0A 92 <= 逆運算密文1
---------------------------------------------------------------------------------------
3:使用者名稱+硬體程式碼計算常量 呼叫 變態MD5+128位轉換得出逆運算密文2

0097FA2C  59 59 5B 43 43 47 5D 00 85 9D 4B 56 <= YY[CCG].KV

變態MD5運算結果 =>

0097FA6C  0226F32C
0097FA70  F79858DA
0097FA74  45813EE3
0097FA78  78E64F34

128位轉換 => 0097FB66  F0 29 <= 逆運算密文2
---------------------------------------------------------------------------------------
4:逆運算密文1+逆運算密文2 呼叫 變態MD5+128位轉換得出逆運算密文3

0097FB74  0A 92 F0 29

變態MD5運算結果 =>

0097FA14  |3B48F5D4
0097FA18  |5A8C4FCD
0097FA1C  |5B7BBC47
0097FA20  |93BBDD1C

128位轉換 => 0097FB66  1B 64 <= 逆運算密文3
---------------------------------------------------------------------------------------
5:逆運算密文 1 2 3 呼叫 變態MD5算出三組最終硬體密文 <= 不可逆
---------------------------------------------------------------------------------------
6:最終硬體密文 和 最終註冊碼密文 對比後得出註冊結果
=======================================================================================
***演算法描述***
=======================================================================================
演算法 => 1:(128位轉換、硬碟型號轉換、硬碟ID轉換)
-------------------------------------------------
h1(*p)

把p[]=“E7D0C697F6F28CDA434DDAD160244AB8” 轉換為這樣 =>
t[]={E7 D0 C6 97 F6 F2 8C DA 43 4D DA D1 60 24 4A B8};

***(硬碟型號轉換、硬碟ID轉換)不用上面的轉換***

k=0xffffffff;
t1=0x00000000;
for(i=0;i<strlen(t)或者用strlen(p);i++)

t2=0x00000080;
t1=t[i];或者用t1=p[i];
for(;t2!=0;)

k1=k;
k1&=0x8000;
k+=k;
t4=t1&t2;
if(t4==0x0) t3=0x00000000,k|=t3;
else t3=0x00000001,k|=t3;
if(k1==0x0) t2>>=1;
else k^=0x1021,t2>>=1;
}}
return (k);}
=============--------------------------------------------------------------------------
變態MD5設定
=============
MD5演算法 網上搜噎嚇就是一堆 (略)

A=0x76543210;B=0xFEDCBA98;C=0x89ABCDEF;D=0x01234567;

第四輪對換第一輪相應的引數對換掉、其它的接著按順序調換(4=>1;1=>2;2=>3;3=>4;)
========================================================================================
演算法總結:
========================================================================================
1:使用者名稱轉換為大寫、序列號轉換為硬體程式碼計算常量

2:硬體程式碼計算常量+使用者名稱 呼叫 變態MD5+128位轉換得出逆運算密文1

3:使用者名稱+硬體程式碼計算常量 呼叫 變態MD5+128位轉換得出逆運算密文2

4:逆運算密文1+逆運算密文2 呼叫 變態MD5+128位轉換得出逆運算密文3

5:逆運算密文 3 2 1 用註冊碼變換演算法的逆運算反推回去得出註冊碼
========================================================================================
--------------------------
使用者名稱 <= Yy[CCG]
--------------------------
系列號 <= 89FE96FB
--------------------------
註冊碼 <= A402-0ABC-D946
--------------------------
========================================================================================
---------------
序號產生器:(略)
---------------
----------------------------------------------------------------------------------------
如你寫出序號產生器勿大肆傳播、哪怕你覺得偶寫的這堆東東如同香菸盒上吸菸有害健康的廣告、那在你行動之前先考慮清楚~~~
----------------------------------------------------------------------------------------
========================================================================================
====================
--------------------   
        Yy
--------------------
China Cracking Group
--------------------===========-----------
                              2002.12.1
                              -----------
==========================================

相關文章