新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > SmartLock并口單片機(jī)軟件狗加密技術(shù)

SmartLock并口單片機(jī)軟件狗加密技術(shù)

作者: 時(shí)間:2009-04-09 來(lái)源:網(wǎng)絡(luò) 收藏

系統(tǒng)使用了狀態(tài)線(xiàn)作為向微機(jī)發(fā)送“串行”數(shù)據(jù)時(shí)的數(shù)據(jù)線(xiàn)。同時(shí),通過(guò)使用獨(dú)特的脈寬調(diào)制數(shù)據(jù)傳送方式,實(shí)現(xiàn)了單端口線(xiàn)的數(shù)據(jù)傳輸。這是由于:

  (1)微機(jī)的用途是由微機(jī)向外設(shè)進(jìn)行單向的數(shù)據(jù)傳輸,同時(shí)沒(méi)有多余的備用端口線(xiàn);

  (2)中只有狀態(tài)線(xiàn)才能向微機(jī)傳送信息,其中狀態(tài)線(xiàn)一般不用。

  狗向微機(jī)發(fā)送數(shù)據(jù)的時(shí)序比較特殊,如圖3所示。具體步驟是:

  (1)微機(jī)中的程序?qū)⒖刂茙l(fā)送完畢后開(kāi)始等待狗的返回?cái)?shù)據(jù)。

  (2)狗計(jì)算出返回?cái)?shù)據(jù)后,首先發(fā)送一個(gè)固定長(zhǎng)度的標(biāo)準(zhǔn)負(fù)脈沖,然后再依據(jù)數(shù)據(jù)值發(fā)送一個(gè)數(shù)據(jù)脈沖,兩個(gè)脈沖代表一個(gè)數(shù)據(jù)值;直到所有數(shù)據(jù)發(fā)送完畢為止。

  (3)程序通過(guò)計(jì)算數(shù)據(jù)脈沖與標(biāo)準(zhǔn)脈沖的寬度比得到數(shù)據(jù)值。

  以上說(shuō)明的是微機(jī)與軟件狗之間數(shù)據(jù)通信的底層協(xié)議。雙方通信時(shí)數(shù)據(jù)幀的具體格式則可以由用戶(hù)根據(jù)需要自行定義。

3 軟件系統(tǒng)

  軟件部分目前只采用內(nèi)含式加密法。分為以下五個(gè)模塊:底層I/O操作模塊、用戶(hù)接口模塊、反跟蹤模塊、異常處理模塊和全自動(dòng)操作模塊。它們之間的結(jié)構(gòu)層次關(guān)系見(jiàn)圖4。

3.1 底層I/O模塊

  底層I/O模塊是最底層的功能函數(shù),也是整個(gè)加密軟件系統(tǒng)的核心。主要用于與軟件狗進(jìn)行數(shù)據(jù)通信,向軟件狗發(fā)送數(shù)據(jù),接收軟件狗的返回值(包括對(duì)返回值的數(shù)字化轉(zhuǎn)換和求精)及向上層模塊報(bào)告通信過(guò)程中出現(xiàn)的錯(cuò)誤。實(shí)際上是前面密鑰模塊在微機(jī)內(nèi)運(yùn)行的接口部分。另外,各種反跟蹤主要也融入到此模塊中。

3.2 用戶(hù)接口模塊

  用戶(hù)接口模塊有多個(gè),分別與軟件狗的各個(gè)功能一一對(duì)應(yīng),用于對(duì)通信中數(shù)據(jù)格式的轉(zhuǎn)換及對(duì)通信過(guò)程的管理。它們將上層軟件傳來(lái)的指令翻譯為軟件狗能識(shí)別的格式后再傳給底層模塊,然后將底層模塊的返回值整理后上傳。

  用戶(hù)接口函數(shù)可由待加密軟件直接調(diào)用。它們自行檢測(cè)并處理軟件被跟蹤調(diào)試時(shí)的情況,同時(shí)顯式或是隱式地向用戶(hù)軟件提供軟件狗是否合法的信息,用戶(hù)軟件可依據(jù)該信息來(lái)自行定義對(duì)軟件系統(tǒng)處于非法運(yùn)行狀態(tài)時(shí)的處理措施(本軟件系統(tǒng)提供了與各種反擊方法對(duì)應(yīng)的函數(shù))。這種使用模式十分有利于加密模塊與軟件系統(tǒng)的融合,能大大提高軟件系統(tǒng)的抗解密性能。

3.3 全自動(dòng)操作模塊

  若用戶(hù)要求系統(tǒng)自動(dòng)完成對(duì)軟件狗的檢測(cè)及對(duì)檢測(cè)結(jié)果的處理,則可使用該函數(shù)。它自行使用隨機(jī)命令調(diào)用用戶(hù)接口模塊以檢測(cè)軟件狗的合法性,然后自動(dòng)對(duì)檢測(cè)結(jié)果進(jìn)行判斷并處理。當(dāng)然,集成度高必然導(dǎo)致抗解密性能下降。

3.4 反跟蹤模塊

  各類(lèi)反跟蹤措施(函數(shù)或程序段)用于檢測(cè)軟件系統(tǒng)目前是否處于被跟蹤的狀態(tài),或人為地制造一些障礙,阻止解密者對(duì)本加密軟件的分析。它們?nèi)诤嫌诘讓覫/O模塊、用戶(hù)接口函數(shù)及自動(dòng)操作模塊中,隱蔽地檢測(cè)軟件系統(tǒng)是否運(yùn)行于調(diào)試環(huán)境下并自動(dòng)作出相應(yīng)處理。

3.5 異常情況處理模塊

  當(dāng)加密軟件檢測(cè)到軟件系統(tǒng)運(yùn)行在調(diào)試環(huán)境下或軟件狗非法時(shí),就調(diào)用這一模塊正?;蚍钦5刂兄钩绦虻倪\(yùn)行。一般情況下由于程序已處于被調(diào)試的狀態(tài),中止程序運(yùn)行的標(biāo)準(zhǔn)方法通常會(huì)被解密者覺(jué)察出來(lái)而達(dá)不到目的。因此,只有那些違反常規(guī)的操作代碼才能有效地中止程序的運(yùn)行。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉