License的攻與防


背景:
權限文件(有的叫註冊碼)是商業軟件控制分發的常用方法。如何有效防止軟件權限被破解,是軟件不可得不考慮的問題。

知己知彼:

軟件如何破解、繞過權限驗證

破解方式,有大神總結爲兩種,完全破解、暴力破解。(http://www.baike.com/wiki/軟件破解)
前者可以生成正確的權限文件或叫註冊碼。後者需要修改程序本身,一般通過修改彙編代碼進而控制程序的運行流程。

破解方法
反編譯執行程序,找到解密算法、private key等。(http://www.pediy.com/kssd/pediy07/pediy7-784.htm)

防:
完全破解:
這個時候,別人已經能製作出和以假亂真的權限文件,軟件本身已經無計可施。
1)需要增加其他方式進行二次驗證。比如訪問某網絡資源,雲端校驗。
2)增加checkpoint,複合校驗

暴力破解:
這個時候,別人把你的代碼修改了。
1)主要校驗入口應該已經被攻克了。

2)但可以多增加些校驗點,隨機+暗樁(不定時觸發),增加破解難度。校驗點,可檢測程序是否被修改過。


加解密簡單資料:
單向加密算法,不能解密,不可逆。
1.MD5(Message Digest algorithm 5,信息摘要算法)
2.SHA(Secure Hash Algorithm,安全散列算法)
3.HMAC(Hash Message Authentication Code,散列消息鑑別碼)
4.MD5、SHA、HMAC這三種加密算法,通常只把他們作爲加密的基礎。單純的以上三種的加密並不可靠,通常與其他對稱或非對稱加密算法一起使用。 

對稱加密算法,使用相同密鑰。
1.DES算法
2.3DES/edeDES/TDES算法
3.AES算法
4.Twofish算法
5.Blowfish算法
6.RC2算法
7.RC4算法
8.RC5算法
9.RC6算法
10.PBE算法
11.CAST算法
12.IDEA算法

非對稱加密算法,公開密鑰解密,私有密鑰解密。
1.RSA算法
2.DH算法
3.DSA-Digital Signature Algorithm(數字簽名算法)
4.ECC-Elliptic Curves Cryptography(橢圓曲線密碼編碼學)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章