導航:首頁 > 源碼編譯 > 注冊碼演算法

注冊碼演算法

發布時間:2022-01-17 14:54:34

㈠ 破解高手快來!看看誰能破解我自己寫的注冊碼生成演算法

樣本太少,無法分析

0000000000000000 900270-1022702-653358-775790

可能不對,
但你的演算法一定可逆,只要有一定數量的樣本。
因為連續的數字或者字元間是等差的。
如果你想做成比較不可逆的,
簡單一點的辦法,建議再加入一維(例如,私鑰,隨機素數等)
再進行位層面上的運算

㈡ 根據兩組注冊碼推算加密規則:

我們如今見到的大多數軟體的雖然在注冊演算法,驗證方式都各不相同自成體系。但不管怎樣變化都沒有脫離出一個關於注冊碼的定式:注冊信息 + 演算法計算 = 注冊碼 。概括地說就是如今大多數軟體所採取的注冊碼生成的方式都是按照:F(注冊信息) = 注冊碼,F(X)表示特定的演算法。這樣的形式計算得出的。大家也可以留心觀察一下平時分析所遇到的軟體,絕大部分都是採用這樣的方式進行注冊碼計算的,無論其中的那個F(X)採取何種復雜的計算,其最根本的形式都是一樣的。 納金網為您解答!narkii com
這個計算模式,對於破解軟體的人來說是一件好事。為什麼呢,因為不論注冊演算法如何,只要能夠分析出詳細的計算過程或是核心的計算方法都可以輕松的做出注冊機。也許有人說他們的演算法十分強勁,但是,由於最基本的模式的限制,我們甚至不用分析出具體演算法只需要找到演算法計算的結果,就可以達到破解的目的。所以說:F(注冊信息) = 注冊碼這種經典的模式是有一定的局限性的,有的時候這樣的方式根本起不到保護軟體的作用。
那麼,還有沒有其他的模式呢!其實,有的人已經注意到這個問題了於是一種新的注冊碼計算模式出現了,這個模式可以概括成:F(注冊信息) = G(注冊碼)也就是說,對注冊信息和注冊碼按照不同的演算法,同時進行計算。以前的注冊碼都是「被動」的,計算出的結果是什麼注冊碼就是什麼,但現在情況不同了,注冊演算法計算出的結果必須和注冊碼經過計算後的結果相同才能注冊成功。
這樣的好處就是,即使破解者分析出了計算注冊碼的演算法,也不一定能夠做出符合條件的注冊機,因為注冊碼不僅需要經過計算,而且要保證兩個演算法計算得到的結果要相同。
對於這樣的計算模式,破解的工作量也就無形中加大了,不僅要同時分析出兩種不同的演算法,而且還要保證計算得到的結果相同。可以肯定,這確實是一種很不錯的方法。
下面,我們就通過兩個非常簡單的實例來給大家介紹一下這種方法的實際應用。
首先來看看第一個例子,這是一個crackme我們先來查一下殼,用peid檢查一下結果程序沒有加殼。現在就用OD來打開它,通過字元串查找的方法很快就可以找到關鍵的代碼了,過程就不詳細說了重點在分析。我們來到一下代碼處:
00425050 |. 55 PUSH EBP ; 來到了這里
00425051 |. 68 11514200 PUSH CrackMe.00425111
00425056 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
00425059 |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0042505C |. 8D55 FC LEA EDX,DWORD PTR SS:[EBP-4]
0042505F |. 8B83 B8010000 MOV EAX,DWORD PTR DS:[EBX+1B8]
00425065 |. E8 96C9FEFF CALL CrackMe.00411A00 ; 取注冊名位數
0042506A |. 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
0042506D |. 8B83 BC010000 MOV EAX,DWORD PTR DS:[EBX+1BC]
00425073 |. E8 88C9FEFF CALL CrackMe.00411A00 ; 取假碼位數
00425078 |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C] ; EBP-C=假碼
0042507B |. 8D55 F8 LEA EDX,DWORD PTR SS:[EBP-8]
0042507E |. E8 71D7FDFF CALL CrackMe.004027F4 ; 計算注冊碼的CALL,跟進
00425083 |. 8BF0 MOV ESI,EAX
00425085 |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
00425088 |. E8 13010000 CALL CrackMe.004251A0 ; 計算注冊名的CALL,跟進
0042508D |. 8BF8 MOV EDI,EAX
0042508F |. 3BFE CMP EDI,ESI 注冊碼的計算結果與注冊名的計算結果相比
00425091 |. 74 18 JE SHORT CrackMe.004250AB 兩者相等就跳向成功
這段代碼就是這個crackme完整的注冊流程:首先,記錄我們輸入的注冊名和注冊碼;然後,將注冊名與注冊碼分別進行計算;最後,將兩個計算所得到的結果進行比較,兩個結果相等就注冊成功。從這里我們就可以看出與以往注冊碼計算的不同之處了,通常在這里只會對注冊名或者其他相類似的注冊信息進行計算;而在這個crackme中依次對注冊名和注冊碼進行了計算。計算完成之後,便對兩個計算結果進行比較,和往常一樣兩個值相等就注冊成功。
那麼,現在我們就來依次分析一下程序對注冊名和注冊碼都進行了怎樣一個具體的計算過程。當步過對注冊碼進行處理的那個call時我們發現注冊碼的值確實發生了變化,但是這個變化讓人感到很意外我輸入的注冊碼是12345經過這個call以後這個值變成了3039本想跟進去詳細的看看,可馬上想起來了3039剛好就是12345對應的十六進制數,原來在這里程序只是把輸入的注冊碼轉換成了對應的十六進制數。看完了注冊碼我們看看程序對注冊名事怎麼樣進行計算的,跟進對注冊名進行計算的call來到下面的代碼處:
004251A0 /$ 53 PUSH EBX
004251A1 |. 89C3 MOV EBX,EAX ; EAX=EBX=輸入的注冊名
004251A3 |. 83FB 00 CMP EBX,0 ; 輸入注冊名了嗎,沒有輸入就跳走
004251A6 |. 74 13 JE SHORT CrackMe.004251BB
004251A8 |. B8 01000000 MOV EAX,1 ; 使EAX=1
004251AD |. 31C9 XOR ECX,ECX ; ECX清零
004251AF |> 8A0B /MOV CL,BYTE PTR DS:[EBX] ; 取注冊名每一位的HEX值,放進ECX
004251B1 |. 80F9 00 |CMP CL,0
004251B4 |. 74 05 |JE SHORT CrackMe.004251BB ; 計算完了嗎,計算完畢就跳走
004251B6 |. F7E1 |MUL ECX ; EAX=EAX*EAC
004251B8 |. 43 |INC EBX
納金網為您解答!narkii com

㈢ 求序列號生成演算法

隨機序列的演算法
作者:unknown 更新時間:2005-03-17

找到了兩個演算法, 第一個很簡單, 但可惜不是隨機的, 第二個是典型的偽隨機數演算法, 可惜要用到2的幾百萬次方這樣巨大的整數, 真痛苦
要是有UNIX上計算密碼的源代碼就好了

第一種做法:
f(k) = (k*F(N-1)) mod F(N)
其中,
k是一個序列號, 就是要取的那個數的順序號
F(N)是這樣一個序列 F(0) = 0, F(1) = 1, F(N+2) = F(N+1)+F(N) (for N>=0)

第二種做法

V = ( ( V * 2 ) + B .xor. B ... )(Mod 2^n)
N+1 N 0 2
V是要取的隨機數, B是個種子, n是隨機數的最大個數

原來這個問題, 很高難, 不少數學高手都為解決這個問題寫了論文, 咳咳, 偶真是個白痴

呵呵, 效果肯定是不錯啦, 因為用不到很大的表.
至於應用是這樣的, 比如, 你要給每個用戶在注冊的時候一個ID但有不希望用戶在看到自己的ID的時候能知道其他用戶的ID, 如果用SEQUENCE來生成ID的話, 一個用戶只要把自己的ID減1就能得到其它用戶的ID了. 所以要用隨機數來做ID, 這樣用戶很難猜到其他用戶的ID了.

當然主要的問題是, 隨機數可能重復. 因此希望使用一個隨機數做種子用它來確定一組"無規律"的自然數序列, 並且在這個序列中不會出現重復的自然數. 在這里使用的方法生成的序列並不是沒有規律的, 只不過這個軌律很難被發現就是了.
Xn+1 = (aXn + b) mod c (其中, abc通常是質數)是一種被廣泛使用的最簡單的隨機數發生演算法, 有研究表表明這個演算法生成的隨機數基本上符合統計規律, JAVA, BORLAND C等用的都是這個方法, 一般只要保證第一個種子是真正的隨機數就行了,

下面來說一下重復的問題,
上述方法會有可能出現重復, 因為當(aXn + b)有可能是同樣的數或者說余數相同的數, 因此要想不重復就得變形
偶想到的方法是
Xn=(a*n + b) mod c n是一個在1到c之間的整數, a*n + b就是一個線性公式了, 且若n不同則a*n + b也不同, 它們除上質數c得到的余數也肯定不同, 因為 若不考慮a和b而只有n的時候, 每次的結果都是n,而線性公式, 只不過移動了這條直線的位置和斜率而已, 每個結果仍然不會相同的,
為了增加不可預計性, 偶又為上面那個公式設計了, 隨機數種子, 於是就變成了這個樣子
F(N)=(隨機數*(N+隨機數))MOD 一個質數
這樣就能夠產生 1到選定質數之間的一個"無規律"的自然數序列了, 只要改變隨機數就能改變序列的次序

在應用的時候, 要把隨機數種子和最後用到的序列號保存到一個表裡, 每此使用的時候取出來算好, 再把序列號更新一下就可以了
具體地說, 就是可以建一個表來保存每個序列的隨機數種子, 然後再為這個序列建一個SEQUENCE就行了
然後就
SELECT MOD(序列控製表.隨機數*(SEQ.NEXTVAL+序列控製表.隨機數)),序列控製表.質數)
FROM 序列控製表
WHERE 序列控製表.序列ID=XX
就OK了
注意 序列控製表.質數 決定了序列的范圍

http://www.ddvip.net/database/mssql/index2/81.htm /* CopyRight */

當然,我以前也見過那種類型的,就是「真隨機」,大概是根據隨機按鍵的鍵位和滑鼠在CRT上任意的「隨機」位置以及當時的系統時間(或相對間隔,一般至少毫秒級)來適應某種較復雜的演算法來產生的。...其實,可以產生隨機效應的自變數的確是很多的,就看你怎麼用好了。

去看看系統論和混沌學吧,還有高等數學中的分形理論和物理熱學中的耗散結構理論,可能會有所幫助,呵呵。
最後,倒有興趣問問你要的隨機數是做什麼用呢,是個子問題嗎?

㈣ 製作軟體注冊碼演算法有哪些實現步驟呢

一般都用 cpu 網卡 硬碟ID 。得到編碼後,MD5加密。得到32或16位MD5編碼。
例如:KDHJKSJFSJDJKDKC
然後再把編碼分成4份得到的就是:KDHJ-KSJF-SJDJ-KDKC
簡單吧。如果怕破解,那麼可以先用別的加密方法加密後後,再用MD5加密。

㈤ 知道機器碼,如何算注冊碼

不同的軟體,通過機器碼生成注冊碼的方法是不一樣的。有些是取反,有些是累加,演算法有無數種,結果就有無數種,這樣才形成的加密。
(小聲說)去找找網上有沒有這個軟體的注冊碼計算器吧。
要不就像CFVGood說的,你自己通過反編譯等辦法自己找出演算法,然後也搞一個計算器出來。

㈥ 加密演算法注冊碼

123對應ABC的話,反向計算很簡單的~~~就算你不會編程,自己手動寫一個編譯表,然後一個一個找就可以啦~~~


當然如果你不知道他是什麼演算法,那麼就基本無解了,因為加密演算法有N種了,除非你運氣好,否則一輩子算不出的~~~


一般破解的話有以下幾種方式:

  1. 暴力破解---就是不斷的輸入密碼,看運氣是不是會猜到正確的~~當然可以寫個程序讓電腦自己自動輸入~~~當然聰明點的,會先反編譯一下,然後再源碼中找到一些規則,以節省時間

  2. 通過反編譯要破解的程序,想辦法改源代碼,來跳過驗證的步驟~~

  3. 如果軟體需要網路驗證來實現注冊,那麼可以自己建一個假的伺服器,讓軟體訪問假的伺服器來驗證,只要讓假的伺服器,無論收到什麼注冊碼,都反饋注冊成功就OK了~~


㈦ 求一個萬能演算法注冊機,可以根據機器碼或者注冊碼來注冊大部分軟體的,好用還有追加分,急用!!!!!!!

不用求了,如果你知道這種注冊碼的原理的話,就應該知道這種軟體絕對不可能存在的,所謂的機器碼就是根據CPU、硬碟序號、主板信息、網卡MAC(有時候還包括操作系統信息)這些信息的組合(比如可能僅僅是CPU信息,也可能是CPU+主板),再加上加密軟體本身的一個隨機的加密因子,再用加密軟體按特定的加密演算法(演算法本身可以在加密軟體中設置)進行計算後再得出注冊碼。每種不同的加密軟體在設置不同、演算法不同、加密因子不同的情況下,對同一台機器算出的注冊碼也會完全不同。

㈧ 如何用一個注冊碼推算另一個注冊碼

可能性不大,注冊機都是高手通用大量相匹配的注冊碼而推算出來的演算法。
一個注冊碼基本無法推算出演算法

閱讀全文

與注冊碼演算法相關的資料

熱點內容
ug編程實例教程 瀏覽:982
cad輸入命令時滑鼠卡頓 瀏覽:795
php過濾文件 瀏覽:757
linux配置ip命令 瀏覽:903
命令的英文怎麼讀 瀏覽:353
哪個app是自己彈音樂的 瀏覽:655
安卓變是什麼意思 瀏覽:612
qq五子棋在哪裡找app 瀏覽:837
圖片活碼二維碼生成器網站源碼 瀏覽:186
國美手機聯系人加密 瀏覽:883
成交量彩色源碼 瀏覽:118
演算法最根本的評價標准 瀏覽:366
個人資源app哪個好用 瀏覽:580
這也能切為什麼沒有安卓 瀏覽:675
可可64山寨源碼 瀏覽:641
怎麼自己解壓和釋放 瀏覽:991
思路與演算法的區別 瀏覽:156
日誌帶源碼 瀏覽:137
php怎麼打包 瀏覽:758
大照丟了如何解壓 瀏覽:654