做為軟件開(kāi)發(fā)者,研究好軟件加密的確很重要,不過(guò)也很有必要多了解一些關(guān)于加密狗解密和po解的知識,加密和po解就像矛和盾一樣,對于解密知識了解的越多,那么編寫(xiě)的加密代碼就越好,要知道加密永遠都比解密要容易的多,只有知己知彼,方能百戰百勝。 以下就針對使用加密狗(加密鎖)進(jìn)行硬件保護談?wù)剮c(diǎn)心得: 針對于使用加密狗的解密有什么方法? 1、硬件復制 復制硬件,即解密者復制Sentinel Superpro相同的加密鎖。 2、監聽(tīng) 目前加密鎖(加密狗)的解密po解工作主要集中在應用程序與加密動(dòng)態(tài)庫之間的通訊攔截。這種方法成本較低,也易于實(shí)現,對待以單片機等芯片為核心的加密鎖(加密狗)具有不錯的解密效果。 3、DEBUG 解密者DEBUG等反編譯程序,修改程序源代碼或跳過(guò)查詢(xún)比較,應用程序也就被解密了。 對于Debug調試po解,由于軟件的復雜度越來(lái)越高,編譯器產(chǎn)生的代碼也越來(lái)越多,通過(guò)反匯編等方法跟蹤調試po解的復雜度已經(jīng)變得越來(lái)越高,po解成本也越來(lái)越高,目前已經(jīng)很少有人愿意花費大量精力進(jìn)行如此復雜的po解,除非被po解的軟件具有較高的價(jià)值。 對于以上的幾種解密方法加密者可以考慮使用以下幾種加密策略: 1、在選擇加密狗的時(shí)候要選擇硬件安全復制難度大的加密產(chǎn)品。使用可移植算法加密狗,可以把自己軟件中一部分算法和代碼移植到加密狗中運行,后者給用戶(hù)提供二次開(kāi)發(fā)環(huán)境,軟件開(kāi)發(fā)商可在上面做很多工作,完成自己的二次加密。實(shí)現了算法級加密,而不是簡(jiǎn)單的對比認證的點(diǎn)級加密。內部移植代碼用戶(hù)自行掌握和控制不存通用的邏輯加密模塊,破譯者也無(wú)從下手。 2、加密鎖特有的文件完整性檢測專(zhuān)門(mén)用于反跟蹤,反破譯。加密鎖一旦檢測到客戶(hù)程序的校驗碼有變,則自動(dòng)終止程序,保護軟件,防止文件被非法篡改、分析。此功能將使得任何對開(kāi)發(fā)商軟件的解密企圖都被識破。 3、可移植加密鎖均為高強度設計,相當于主機之外另有一臺專(zhuān)職加密的小主機,內置CPU,加密算法的實(shí)現在鎖內獨立完成,不在主機CPU中,以便防止任何跟蹤、解密,也減少CPU資源占用,不影響軟件運行速度。整個(gè)過(guò)程中加密鎖與計算機之間通訊均做加密處理,防止任何端口截獲。 現在的解密技術(shù)排除法律和道德因素,就從學(xué)術(shù)角度來(lái)說(shuō)是門(mén)科學(xué)。它與加密技術(shù)一樣是相輔相成不斷提高。我們的目標就是讓加密技術(shù)在大部分時(shí)間內保持對解密技術(shù)優(yōu)勢,不斷研究新型加密方法,使解密技術(shù)、時(shí)間、資源成本超出被保護軟件的研制成本和實(shí)用時(shí)效,從而在實(shí)際意義上保護軟件在其生存周期內不被dao版。希望以上的分析及應對策略能給讀者些參考性建議。 |