SmartLock并口單片機軟件狗加密技術
用戶軟件只需以函數(shù)調用的方式調用SmartLock加密系統(tǒng)中的用戶接口模塊,完成對軟件的加密。這樣便在用戶軟件和加密軟件之間建立了數(shù)據(jù)聯(lián)系,隱式地檢查合法軟件狗的存在。加密軟件將自動對調試軟件檢測和處理,用戶不需管理。
另一個更為可靠的使用方式是用戶定制加密軟件。SmartLock系統(tǒng)將用戶待加密軟件中的某些算法完全移植到單片機軟件狗中去,再提供相應的用戶接口模塊。這一方式下用戶軟件將受到最大限度的保護。
傳統(tǒng)的軟件加密的指導思想是:在軟件系統(tǒng)中加入一種特殊的信息,這種信息既是加密后的軟件系統(tǒng)在正常運行時必須引用的,又是用戶無法自行復制的。于是,加密后該軟件系統(tǒng)的運行完全依賴于售給用戶的原信息載體。這一載體在加密技術中又被稱為密鑰。
本加密系統(tǒng)使用的代碼移植技術是指將待加密軟件的某些算法、程序段、重要的運算過程改造成單片機程序放在單片機中執(zhí)行。由于單片機的程序ROM是解密者不可讀的,這樣,這段代碼就被完全地保護起來了,解密者將無法接觸到這段代碼和數(shù)據(jù)。通過接口函數(shù),軟件狗可代替用戶軟件系統(tǒng)執(zhí)行一些簡單的運算功能,以實現(xiàn)代碼移植。這一技術實際上是改造了傳統(tǒng)的加密指導思想,它把原軟件系統(tǒng)中的一部分信息取出來,封裝到解密者不可復制的軟件狗中。
按傳統(tǒng)加密思想加密后的軟件系統(tǒng)中,軟件部分實際上仍然包含有原軟件系統(tǒng)正常運行時所需要的所有信息(指令算法和數(shù)據(jù))。在經(jīng)過代碼移植技術加密的軟件系統(tǒng),系統(tǒng)的軟件部分已不完整,解密者即使歷盡千辛萬苦把軟件分析透徹了,軟件系統(tǒng)的正常運行還是離不開軟件狗的支持。
SmartLock軟件加密系統(tǒng)中使用的新穎技術主要有以下兩點,它們有力地保證了軟件狗的抗分析、反跟蹤性能。
(1)特殊的并口通信協(xié)議
脈沖形式的握手信號,可有效對抗各種跟蹤調試工具及軟件。由圖2軟件狗的數(shù)據(jù)接收時序可知,本通信協(xié)議中,微機向單片機傳送數(shù)據(jù)時是使用窄脈沖信號作為握手信號,這樣微機的CPU必須不間斷地查詢軟件狗的PR信號。而解密者在調試跟蹤本軟件時必然會因調試狀態(tài)下軟件運行時斷時續(xù)而收不到握手信號,使數(shù)據(jù)傳輸過程出錯。軟件將無法正常工作。同時,反跟蹤模塊也可由此輕易查知調試環(huán)境的存在而采取相應的對策。
通過脈寬調制信號從軟件狗向微機傳送數(shù)據(jù)是一種全新的微機打印口數(shù)據(jù)傳輸方法。由于它與通常的數(shù)字信號相差很大,所以這種形式的數(shù)據(jù)具有很強的反動態(tài)跟蹤能力。這樣既解決了標準并行口反向傳輸信道窄的問題,又可有效對抗各種調試工具軟件及端口信號分析儀。除非解密者完全了解它的工作機理,否則根本無法知道軟件狗在干什么。
(2)代碼移植技術
該技術將待加密軟件與加密系統(tǒng)緊密配合,將需要保護的軟件完全封裝在黑盒中。
實際使用時,SmartLock軟件狗系統(tǒng)還可以進行更靈活的設計以達到更強的加密效果。例如:將并行口的數(shù)據(jù)線與89C2051單片機的P1口全部對接,同時將8根數(shù)據(jù)線全部通過鍺二極管并接成單片機電源。通信過程中,將其中的5根作為數(shù)據(jù)傳輸線,3根作為電源傳輸線;而且每根數(shù)據(jù)端口線的作用可以進行動態(tài)再分配。這種方法可以讓端口分析儀幾乎失去作用,抗分析性極強。
SmartLock軟件狗可以輕易設計成一系列軟件加密狗,在實際應用中效果良好。
評論