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