2012-08-15 63 views
2

我有一大堆的序列號和一些舊軟件及其相應的激活碼的激活密鑰。由於最初安裝它們,我失去了許多激活密鑰(但仍有序列號)。我仍然擁有大約20個鍵的數據集,甚至可以目睹它,我可以告訴我們有一種方法來確定激活鍵的瘋狂。鑑於我的大數據集有一種方法可以解決找出我失去的信息的激活密鑰。序列號的生成從一大組的序列號和激活密鑰

例如:14051激活密鑰:E9E9F-9993432-45543

+0

您是否確認過您的序列號與該確切的激活密鑰相關聯? – 2012-08-15 20:29:03

+0

我有順序鍵有一個模式。 – user1601597 2012-08-15 20:31:19

回答

0

這取決於如何將計劃啞巴是擺在首位,但我的猜測是,這是不可能的。沒有固定的方法,但一般的領域與codebreaking相同。

+0

它很笨。例如,所有的鍵都有999作爲激活碼第二部分的前3位數字。此外,激活按鍵的前5個數字/字母與前一個激活按鍵的最後5個數字/字母相同。最後在第二組關鍵字中,字母/數字必須是abcdef689的組合。 – user1601597 2012-08-15 20:33:33

+0

在第二組中有2,3和4個例子,而不僅僅是[abcdef689]。 – 2012-08-15 20:34:36

+0

對不起,我不想放出一個實際的代碼,以避免法律顧慮,如果你想我可以設置給你的實際數據集 – user1601597 2012-08-15 20:43:48

1

你試圖做的是拿出該序列號映射到激活密鑰的功能。在不瞭解函數本質的情況下,這可能是非常簡單的(只有幾個術語的多項式)到非常困難的任何地方(一個涉及大量塊XOR,替換表,複雜密鑰表的多層函數.. )。

如果你有訪問密鑰驗證程序(例如,通過拆卸 - 這是幾乎總是對商業軟件的最終用戶許可協議),那麼你必須返回一個給定的激活密鑰是否是正確的例行給定的序列號。如果這是通過計算序列號的激活密鑰完成的,那麼你實際上已經完成了。如果這是通過計算鍵上的反函數來完成的,那麼你的任務有點困難:你需要反轉該函數來檢索密鑰推導算法,這可能並不那麼容易。如果你最終不得不解決一些困難的數學問題(例如離散對數問題),因爲該方案依賴於公鑰密碼學,那麼你希望你處理的值足夠小,以至於可以蠻力或者在計算可行的時間內使用已知的算法(例如Pollard的rho算法)。

在任何情況下,你需要獲得舒適與拆卸和調試,並希望有沒有適當的反調試措施。

否則,問題更難 - 你需要做出一些猜測和試戴(例如,通過試圖做一個多項式擬合),並希望最好的。由於非常大的各種不同的可能的功能,可以適應任何組的輸入和輸出(數學不可數,在實踐中由源代碼大小的限制雖然),試圖做的算法本身一個已知明文攻擊的是通常不可行。