註冊碼演算法入門!----菜鳥篇

看雪資料發表於2015-11-15

  各位看官大家好,俗話說的好,近朱者赤,近墨者黑。本人3天前在看雪論壇註冊ID,當時對破解,crack,IAT,等等連個概念都沒有,在論壇裡泡了3天,看了很多各方面的貼子,感覺到收入良多,今日正好看見了一個軟體的破解過程,按作者的方法,成功找到註冊碼,破解了軟體,心中一陣竊喜,因為這是本人第一次破解軟體,當然高興啦!後來覺得閒來無事,乾脆就研究一下注冊碼的演算法,結果還讓我看出點兒門道,為了讓和我一樣的菜菜們能學點兒新東西,特別將過程發出來,也算是為本論壇出一份薄力吧。因為本人就是菜鳥一個,所以寫出來的東東,各位菜友應該能看懂的!
  好了,進入正題!
SuperCleaner 2.61*注:此文給新手看,高手不要浪費時間 
軟體大小:386KB 
軟體語言:英文 
軟體類別:國外軟體/免費版/解除安裝工具 
執行環境:Win9x/Me/NT/2000/XP 
下載地址:http://www.onlinedown.net/soft/6433.htm 
軟體介紹:是幫助使用者清洗他們的計算機硬碟內不必要的檔案的程式。它能掃描你的系統讓你選擇不再需要的檔案進行刪除。並能備份檔案已避免你誤刪除有用的檔案,此備份功能將不必要的檔案扔進再迴圈箱,這樣可以讓你再必要的時候恢復資訊。
  軟體的破解內容請參見論壇裡的另外一貼。
  這裡我主要想和大家研究一下注冊碼的演算法。該軟體的註冊方式為“使用者名稱+註冊碼”方式,註冊碼分為4段即“XXXX-XXXX-XXXX-XXXX”形式。首先要找到註冊碼的演算法程式碼,在上面的貼子裡有,這裡就不多說了。下面就是註冊碼各部分演算法的程式碼。

註冊碼第一部分演算法:

00419841   |> /0FBE1C38     /movsx ebx,byte ptr ds:[eax+edi]        "ds:[edi]中存放的為使用者名稱"
00419845   |. |03DA       |add ebx,edx                  "edx中存放一常數38"
00419847   |. |03CB       |add ecx,ebx
00419849   |. |40        |inc eax                    "指向使用者名稱中下一個字母"
0041984A   |. |3BC6       |cmp eax,esi                  "比較使用者名稱是否結束,esi中存放使用者名稱長度"
0041984C   |.^7C F3       jl short SuperCle.00419841           "迴圈取數計算"

註冊碼第二部分演算法:

00419873   |> /0FBE2C38     /movsx ebp,byte ptr ds:[eax+edi]
00419877   |. |0FAFEA      |imul ebp,edx                  "edx中存放一常數52"
0041987A   |. |03CD       |add ecx,ebp
0041987C   |. |40        |inc eax
0041987D   |. |3BC6       |cmp eax,esi
0041987F   |.^7C F2       jl short SuperCle.00419873

註冊碼第三部分演算法:

004198AF   |> /0FBE2C38     /movsx ebp,byte ptr ds:[eax+edi]
004198B3   |. |03EA       |add ebp,edx                  "edx中存放一常數12"
004198B5   |. |03CD       |add ecx,ebp
004198B7   |. |40        |inc eax
004198B8   |. |3BC6       |cmp eax,esi
004198BA   |.^7C F3       jl short SuperCle.004198AF

註冊碼第四部分演算法:

004198EA   |> /0FBE2C38     /movsx ebp,byte ptr ds:[eax+edi]
004198EE   |. |0FAFEA      |imul ebp,edx                 "edx中存放一常數14"
004198F1   |. |03CD       |add ecx,ebp
004198F3   |. |40        |inc eax
004198F4   |. |3BC6       |cmp eax,esi
004198F6   |.^7C F2       jl short SuperCle.004198EA

  相信看完上面的註冊碼演算法,大家也差不多都能寫出具體的演算法了吧,不過像和我一樣的菜菜們,可能還是有些不太明白的地方,沒關係下面就是根據的演算法,得到的註冊碼計算公式。
  第一部分註冊碼演算法:(使用者名稱中的每一個字母的ASCII碼+38)的累計數。
  第二部分註冊碼演算法:(使用者名稱中的每一個字母的ASCII碼*52)的累計數。
  第三部分註冊碼演算法:(使用者名稱中的每一個字母的ASCII碼+12)的累計數。
  第四部分註冊碼演算法:(使用者名稱中的每一個字母的ASCII碼*14)的累計數。
  這下應該比較直觀了,要是還不明白,還是沒關係,因為最後還有舉例說明,俺想的周到吧!
  舉例:使用者名稱:123456,註冊碼計算流程如下:
  123456的ASCII碼分別為十進位制的49,50,51,52,53,54。
  第一部分註冊碼:(49+38)+(50+38)+(51+38)+(52+38)+(53+38)+(54+38)=537;
  第二部分註冊碼:(49*52)+(50*52)+(51*52)+(52*52)+(53*52)+(54*52)=16068;
  第三部分註冊碼:(49+12)+(50+12)+(51+12)+(52+12)+(53+12)+(54+12)=381;
  第四部分註冊碼:(49*14)+(50*14)+(51*14)+(52*14)+(53*14)+(54*14)=4326;
  註冊碼:537-16068-381-4326
  以上就是偶花了2小時的勞動成果(1小時解演算法,1小時發貼子),還請大家多多捧場,有意見和看法歡迎提出來,因為這是偶第一篇帶點兒技術性的貼子,所以可能寫的不是很好,以後我會努力的! :D

相關文章