《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 业界动态 > 基于PIC16C54单片机的智能软件狗设计

基于PIC16C54单片机的智能软件狗设计

2008-10-20
作者:胡 军 刘文江 胡怀中 李 嘉

  摘? 要: 介紹一種基于PIC16C54單片機及93C46串行EEPROM智能型軟件狗的硬件和軟件設計" title="軟件設計">軟件設計。本軟件狗利用微控制器的特點,利用簡化的DES算法進行加密,增加了軟件狗的破解難度。

  關鍵詞: 單片機? 軟件狗? 數據加密

?

  隨著各種計算機應用軟件" title="應用軟件">應用軟件、工具軟件的涌現,由此引起的計算機知識產權案件層出不窮,引出了計算機安全保密技術在計算機軟件版權保護" title="版權保護">版權保護中應用的新課題。實現計算機版權保護的技術方法很多,概括起來可以分為三大類:軟件法、硬件法、軟硬件結合法。軟硬件結合法結合了軟件法和硬件法的特點。從軟件設計上增加反跟蹤的難度,從硬件上增加硬件仿制和狀態分析難度。硬件部分主要完成狀態加密和檢查。軟件狗是一種插在PC打印口上的用于應用軟件版權保護的設備。商品化的軟件狗產品向用戶提供軟件狗硬件、應用軟件定制工具、應用軟件和軟件狗的接口程序庫。從硬件結構方面講,軟件狗的發展已經歷了五代。第一代簡單地將打印機的控制或數據線與狀態線通過電阻或二極管連接;第二代增加了一些門電路,將某些控制線或數據線經過簡單的邏輯運算后輸出到狀態口線上;第三代使用GAL或EPROM器件;第四代使用串行EEPROM器件;第五代在第四代的基礎上增加了微處理器,因此稱為智能型軟件狗[1]。本文介紹的軟件狗使用軟硬件結合法,屬于第五代軟件狗。

1 硬件原理

  由于軟件狗插在PC打印口上,因此軟件狗的硬件設計除了滿足其軟件保護功能外,還必須著力解決如下三個問題:由于PC的打印口沒有提供電源線,要使單片機和串行EEPROM芯片工作,就必須想辦法為它們提供電源,并且必須采用低功耗設計;不能影響PC對打印機的正常操作;硬件成本必須足夠低。

  PIC系列單片機是使用Harvard總線和RISC結構的單片機,具有功耗低、高速、開發容易、價位低、體積小等特點[3]。93C46B是采用CMOS工藝制成的64×16bit結構8引腳的串行可用電擦除可編程只讀存儲器,同樣具有功耗低、價位低、體積小等特點。這兩種器件能夠滿足對硬件設計的低功耗和低成本的要求。

  圖1為本軟件狗的電路原理圖。包括PIC16C54及93C46構成的單片機系統、復位電路和電源電路三部分。

?

?

  圖1中,R5、C3組成系統上電復位電路;D2、D3、C2組成系統電源電路;D1、R1、R2、C1組成PIC16C54的外部RC振蕩電路" title="振蕩電路">振蕩電路;PIC16C54通過其A口控制93C46串行EEPROM;T0CLKI引腳用于監測當前PC是否控制打印機;RB7引腳用于監測PC當前是否與本軟件狗聯系,并選擇單片機當前工作的時鐘頻率;RB4、RB5、RB6是軟件狗向PC方向發送數據的接口信號線;RB0~RB3、RB5是PC向軟件狗方向發送數據的接口信號線;R6是PIC單片機工作于外部RC振蕩電路方式時推薦的間接接地電阻,有利于系統抗干擾和振蕩電路的穩定性;R3、R4用于防止打印機和單片機之間信號發生沖突。

  PC打印口中數據線和控制線為輸出線,控制線的驅動能力較強。為了不影響打印機的工作,只能選擇一根不常用并且不會讓打印機誤動作的控制線(初始化線IP)為軟件狗提供電源。但單片機對串行EEPROM編程時系統需要的功率比較大,因此在軟件狗工作時又用了一根數據線(D7)提供更大的電源電流。本軟件狗工作于三種狀態:當IP和D7都為低電平時,軟件狗不工作;當IP為高電平時,軟件狗工作于低功耗狀態:當IP和D7都為高電平時,軟件狗工作于正常狀態,此時可以對軟件狗進行任何操作。由于IP信號只有在PC系統啟動時為高電平,一般情況下驅動程序和應用軟件很少對此信號線進行操作,平時此信號線一般保持低電平。因此軟件狗控制軟件可以將此信號線置為高電平使單片機可靠復位,并進行一定的初始化工作。此時,RC振蕩電路的R2為220kΩ,系統工作于<200kHz頻率時,軟件狗的單片機軟件在此狀態下不會對串行EEPROM編程,因此軟件狗的耗散功率達到最低。當D7信號也被置高時,此時,RC振蕩電路的R2|R1<4.7kΩ,系統工作于>4MHz頻率時,軟件狗進入正常工作狀態。

當PC對打印機進行操作時,軟件狗不應該往并口輸出任何信息。由于PC對打印機的操作總是以將并口的選通線置為高電平開始,因此可以通過對并口選通線的上升沿監測,判斷PC是否對打印機開始操作。另外,還通過監測IP信號和D7信號來判斷軟件狗是否可以開始工作。只有在并口選通信號為低電平,IP和D7都為高時,軟件狗才允許向并口信號線輸出。

2 軟件設計

  軟件狗的軟件設計有兩部分:軟件狗的單片機程序和PC程序。單片機程序包括對93C46的操作、與PC通訊接口、數據編碼、工作狀態控制等功能。PC程序包括本軟件狗開發用的測試工具程序、用戶定制軟件狗的工具程序、軟件狗隨用戶應用程序" title="應用程序">應用程序發行時的動態鏈接庫程序。測試工具程序用于測試軟件狗對串行EEPROM的讀寫操作、軟件狗與PC間的通訊測試;用戶定制軟件狗的工具程序用于對軟件狗設置密碼的初始化工作;動態鏈接庫程序為用戶的應用程序提供編程接口。單片機程序使用MTLAB集成環境的MTASM開發,PC軟件使用VC5.0開發。本文只介紹單片機軟件。

2.1 軟件狗與PC的通信

  軟件狗與PC之間的數據通信方法是自行設計的。PC向軟件狗送數據時使用并口的選擇輸入(SELECT IN,這里稱之為PCRDY)線、數據線的D3~D0。單片機在PCRDY信號的下降沿讀取數據,每一個字節分兩次發送,先發低四位,后發高四位。PC向軟件狗方向發送數據的時序如圖2所示。

?

?

  軟件狗向PC方向發送數據時使用并口的選擇輸入(SELECT IN,這里稱之為PCRDY)線、應答(ACK,這里稱之為DO)線、選擇(SLC,這里稱之為BUSY)線。軟件狗向PC發送數據時按先發低位后發高位的順序串行地將數據發給PC,一個字節分8次發完。軟件狗向PC方向發送數據的時序如圖3所示。

?

?

  PC與軟件狗之間的數據通訊遵循“命令—應答”規則,PC發命令,單片機處理完命令后發應答數據。雙方可以根據命令及其應答的意義解析數據幀的結構,以校驗通訊的正確性。命令與應答數據幀的第一個字節的高四位總是命令或應答代碼,低四位總是此命令或應答所帶參數的個數。各命令與應答數據幀的結構定義如表1所示。

?

?

2.2 加密算法

  考慮到軟件狗使用時不能對應用程序的執行速度產生較大影響,對DES加密算法分析后進行了簡化,用來對數據進行加密。DES加密算法的核心思想是使加密后的數據沒有顯著的變化規律,一個方面使不同被加密數據加密后,原始數據一位的變化會引起加密后數據多處無明顯規律變化,即變化擴散原則;另一方面使用密鑰,密鑰的作用是將被加密數據與之進行運算以改變原始數據[2]。綜合這兩個方面的原則,采取了將被加密數據“換位—與密鑰異或”8次的加密方法。這種方法實現比較簡單,而且將被加密數據與原來數據比較,不同的被加密數據間的加密結果比較,很難發現其中規律,加密效果不錯。

  整個系統的加密原理是PC利用系統時間產生一個隨機數,將此隨機數發送給軟件狗,軟件狗對此進行加密返回加密結果,PC自己也對此進行加密將自己的加密結果與軟件狗的加密結果進行比較。另外,每一個軟件狗都有一個序列號,連接時必須提供正確的序列號才能連接進行其它工作。同時序列號也用于區分不同的軟件狗,使得多個軟件狗可以插在同一個并口上正常工作。每個軟件狗可以設置16個不同的密鑰,用戶可以為應用程序的不同功能模塊設置不同的密鑰。

2.3 程序流程

  PIC16C54單片機的程序流程如圖4所示。設置OPTION:初始化單片機的工作模式;設置PORTB、清除RAM:位于單片機空閑循環體內,設置PORTB的輸出方向,軟件狗在空閑時對打印口無影響;接收命令:接收PC發出的數據,按照軟件狗與PC的通信規則進行解釋;處理命令:一個CASE結構的程序體,根據命令含義執行不同功能;返回命令處理結果:按照軟件狗與PC的通信規則向PC返回應答信息。

?

?

  筆者使用WKPE、DOG、DOGGIE等打狗軟件對本軟件狗進行了破解實驗,這幾種軟件無法破解本軟件狗。另外本軟件狗在若干種品牌機和兼容機上進行了測試,都可以正常工作并且對Windows打印作業無影響。實驗結果表明,本軟件狗有比較好的安全性、通用性和穩定性。

?

參考文獻

1 王連生. 軟件狗加密技術透視. 北京:清華大學出版社,1996

2 王化文,張德向,吳 亮.計算機安全保密原理與技術.北京:科學出版社,1993

3 武 鋒.PIC系列單片機的開發應用技術.北京:北京航空航天大學出版社,1998

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 99视频免费观看蜜桃视频| 久久精品亚洲一区| 日韩欧美在线播放视频| 成人国产精品av| 97国产精品视频| 91精品国产精品| 91精品视频播放| 国产狼人综合免费视频| 91久久国产精品| 亚洲精品欧美日韩专区| 欧美大香线蕉线伊人久久国产精品| 欧美成人精品在线| 国产成人精品在线播放| 久久精精品视频| 国产精品∨欧美精品v日韩精品| 欧美高清性xxxxhd| 精品一区二区三区自拍图片区| 日韩精品一区二区三区四| 日韩中文不卡| 欧美 日韩 国产在线观看| 久久中文字幕一区| 91国产丝袜在线放| 久久精品国产91精品亚洲| 欧美一区二区三区免费视 | 国产精品久久精品视| 天天人人精品| 亚洲综合在线做性V| 国产成人精品在线播放| 国产日韩欧美在线| 欧美精品成人在线| 国内精品久久久久久久果冻传媒| 一区二区三区四区久久| 欧美日韩国产成人在线观看| 日韩欧美亚洲区| 国产精品久久久久久久av大片| 日本一区视频在线观看免费| 亚洲二区自拍| 国产女人精品视频| 91精品91久久久久久| 久久日韩精品| 一本久久a久久精品vr综合|