SmartLock并口單片機軟件狗加密技術(shù)
SmartLock系統使用了狀態(tài)線(xiàn)作為單片機向微機發(fā)送“串行”數據時(shí)的數據線(xiàn)。同時(shí),通過(guò)使用獨特的脈寬調制數據傳送方式,實(shí)現了單端口線(xiàn)的數據傳輸。這是由于:
(1)微機并行口的用途是由微機向外設進(jìn)行單向的數據傳輸,同時(shí)沒(méi)有多余的備用端口線(xiàn);
(2)并口中只有狀態(tài)線(xiàn)才能向微機傳送信息,其中狀態(tài)線(xiàn)一般不用。
軟件狗向微機發(fā)送數據的時(shí)序比較特殊,如圖3所示。具體步驟是:
(1)微機中的加密程序將控制幀發(fā)送完畢后開(kāi)始等待軟件狗的返回數據。
(2)軟件狗計算出返回數據后,首先發(fā)送一個(gè)固定長(cháng)度的標準負脈沖,然后再依據數據值發(fā)送一個(gè)數據脈沖,兩個(gè)脈沖代表一個(gè)數據值;直到所有數據發(fā)送完畢為止。
(3)加密程序通過(guò)計算數據脈沖與標準脈沖的寬度比得到數據值。
以上說(shuō)明的是微機與軟件狗之間數據通信的底層協(xié)議。雙方通信時(shí)數據幀的具體格式則可以由用戶(hù)根據需要自行定義。
3 加密軟件系統
軟件部分目前只采用內含式加密法。分為以下五個(gè)模塊:底層I/O操作模塊、用戶(hù)接口模塊、反跟蹤模塊、異常處理模塊和全自動(dòng)操作模塊。它們之間的結構層次關(guān)系見(jiàn)圖4。
3.1 底層I/O模塊
底層I/O模塊是最底層的功能函數,也是整個(gè)加密軟件系統的核心。主要用于與軟件狗進(jìn)行數據通信,向軟件狗發(fā)送數據,接收軟件狗的返回值(包括對返回值的數字化轉換和求精)及向上層模塊報告通信過(guò)程中出現的錯誤。實(shí)際上是前面密鑰模塊在微機內運行的接口部分。另外,各種反跟蹤技術(shù)主要也融入到此模塊中。
3.2 用戶(hù)接口模塊
用戶(hù)接口模塊有多個(gè),分別與軟件狗的各個(gè)功能一一對應,用于對通信中數據格式的轉換及對通信過(guò)程的管理。它們將上層軟件傳來(lái)的指令翻譯為軟件狗能識別的格式后再傳給底層模塊,然后將底層模塊的返回值整理后上傳。
用戶(hù)接口函數可由待加密軟件直接調用。它們自行檢測并處理軟件被跟蹤調試時(shí)的情況,同時(shí)顯式或是隱式地向用戶(hù)軟件提供軟件狗是否合法的信息,用戶(hù)軟件可依據該信息來(lái)自行定義對軟件系統處于非法運行狀態(tài)時(shí)的處理措施(本軟件系統提供了與各種反擊方法對應的函數)。這種使用模式十分有利于加密模塊與軟件系統的融合,能大大提高軟件系統的抗解密性能。
3.3 全自動(dòng)操作模塊
若用戶(hù)要求軟件加密系統自動(dòng)完成對軟件狗的檢測及對檢測結果的處理,則可使用該函數。它自行使用隨機命令調用用戶(hù)接口模塊以檢測軟件狗的合法性,然后自動(dòng)對檢測結果進(jìn)行判斷并處理。當然,集成度高必然導致抗解密性能下降。
3.4 反跟蹤模塊
各類(lèi)反跟蹤措施(函數或程序段)用于檢測軟件系統目前是否處于被跟蹤的狀態(tài),或人為地制造一些障礙,阻止解密者對本加密軟件的分析。它們融合于底層I/O模塊、用戶(hù)接口函數及自動(dòng)操作模塊中,隱蔽地檢測軟件系統是否運行于調試環(huán)境下并自動(dòng)作出相應處理。
3.5 異常情況處理模塊
當加密軟件檢測到軟件系統運行在調試環(huán)境下或軟件狗非法時(shí),就調用這一模塊正?;蚍钦5刂兄钩绦虻倪\行。一般情況下由于程序已處于被調試的狀態(tài),中止程序運行的標準方法通常會(huì )被解密者覺(jué)察出來(lái)而達不到目的。因此,只有那些違反常規的操作代碼才能有效地中止程序的運行。
評論