對一種加密保護的思想的一點分析.....
【宣告】
我寫文章以交流為主,希望大家在轉載時能保持文章的完整性。
作者: ljtt
寫作日期: 2001-05-08
【前言】
有段時間沒有寫東東,主要是肚子空空如也,沒有什麼可寫的了,這會只好又拿點葫蘿蔔加白菜的方法,湊合著向大家推銷點東西了。
不巧的是今天正好趕上"歡樂時光",希望不會在我寫到最後來個什麼驚.....
【分析物件】一類共享軟體的保護機制
此共享軟體的合法使用方式:電子註冊,一機一碼,付錢給碼。
保護方法:
1、把使用者輸入的註冊碼和使用者名稱進行變換得到一個解密資料的KEY。
2、對加密的資料用KEY進行解密。
3、對解密後的資料進行CRC檢驗,如果檢驗值正確,則提示註冊成功,並"開啟"被禁止(或保護)的功能。
以後使用者就可以合法使用軟體了。
暗藏機關:
現在得說一說這些加密的資料了。:-) 那些加密的資料是被禁止(或保護)的功能要使用到的一些關鍵資料。
此保護方法優點:
可對付某些形式的暴破。如果只修改跳轉方向並不能得到真正解密的資料,而這些資料由於還要在被禁止(或保護)的功能中用到。
如果是KEY不正確,還原出一堆垃圾,那麼會在功能使用中出現一些奇異的錯誤。:-)
此保護方法缺點:
1、如果有一合法使用者洩密了KEY,則整個保護體系崩潰。:-)
2、如果加密的資料有明顯的特徵,則KEY可能會被推測出來。
3、如果加密/解密演算法設計不當,也會出問題。
4、好象有已經針對CRC檢驗的一些破解辦法,所以這裡說到的CRC檢驗只是代表類似這樣一種檢驗方法而已,具體用怎樣的檢驗演算法還得小心。
這主要是說明這種保護思路中的說明的重要一點就是不要進行明碼比較,加密演算法使用得再好,如果最後進行直接明碼比較,就功虧一潰。
這種方法主要是針對此薄弱點進行的一種探討。當然要改進之處也很多了。更多的保護方法還是你來吧,我只有三腳貓的功底,說多了就漏了。:-) 當然我想你至少會把這種方式進行迭加,弄它十個幾十個解密/CRC檢驗方式。當然最後的保護效果如何,還是請暴破工程隊來說說吧。
【後記】
當然我相信你知道更多更好的加密思想,如果你希望別人和你分享其中思想的閃光點,那麼不妨說說吧。當然你也可以給我寫信悄悄地告訴我,我猜這大概你已經用在自己編寫的軟體上了吧。:-)