當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]摘要:介紹一種基于PIC16C54單片機(jī)93C46串行EEPROM智能型軟件狗的硬件和軟件設(shè)計(jì)。本軟件狗利用微控制器的特點(diǎn),利用簡(jiǎn)化的DES算法進(jìn)行加密,增加了軟件狗的破解難度。 關(guān)鍵詞:?jiǎn)纹瑱C(jī) 軟件狗 數(shù)據(jù)加密 隨著各種計(jì)

摘要:介紹一種基于PIC16C54單片機(jī)93C46串行EEPROM智能型軟件狗的硬件和軟件設(shè)計(jì)。本軟件狗利用微控制器的特點(diǎn),利用簡(jiǎn)化的DES算法進(jìn)行加密,增加了軟件狗的破解難度。 關(guān)鍵詞:?jiǎn)纹瑱C(jī) 軟件狗 數(shù)據(jù)加密 隨著各種計(jì)算機(jī)應(yīng)用軟件、工具軟件的涌現(xiàn),由此引起的計(jì)算機(jī)知識(shí)產(chǎn)權(quán)案件層出不窮,引出了計(jì)算機(jī)安全保密技術(shù)在計(jì)算機(jī)軟件版權(quán)保護(hù)中應(yīng)用的新課題。實(shí)現(xiàn)計(jì)算機(jī)版權(quán)保護(hù)的技術(shù)方法很多,概括起來(lái)可以分為三大類:軟件法、硬件法、軟硬件結(jié)合法。軟硬件結(jié)合法結(jié)合了軟件法和硬件法的特點(diǎn)。從軟件設(shè)計(jì)上增加反跟蹤的難度,從硬件上增加仿制和狀態(tài)分析難度。硬件部分主要完成狀態(tài)加密和檢查。軟件狗是一種插在PC打印口上的用于應(yīng)用軟件版權(quán)保護(hù)的設(shè)備。商品化的軟件狗產(chǎn)品向用戶提供軟件狗硬件、應(yīng)用程序定制工具、應(yīng)用軟件和軟件狗的接口程序庫(kù)。從硬件結(jié)構(gòu)方面講,軟件狗的發(fā)展已經(jīng)歷了五代。第一代簡(jiǎn)單地將打印機(jī)的控制或數(shù)據(jù)線與狀態(tài)線通過(guò)電阻或二極管連接;第二代增加了一些門(mén)電路,將某些控制線或數(shù)據(jù)線經(jīng)過(guò)簡(jiǎn)單的邏輯運(yùn)算后輸出到狀態(tài)口線上;第三代使用GAL或 EPROM器件;第四代使用串行EEPROM器件;第五代在第四代的基礎(chǔ)上增加了微處理器,因此稱為智能型軟件狗。本文介紹的軟件狗使用軟硬件結(jié)合法,屬于第五代軟件狗。 圖1 電路原理圖 1 硬件原理 由于軟件狗插在PC打印口上,因此軟件狗的硬件設(shè)計(jì)除了滿足其軟件保護(hù)功能外,還必須著力解決如下三個(gè)問(wèn)題:由于PC的打印口沒(méi)有提供電源線,要使單片機(jī)和串行EEPROM芯片工作,就必須想辦法為它們提供電源,并且必須采用低功耗設(shè)計(jì);不能影響PC對(duì)打印機(jī)的正常操作;硬件成本必須足夠低。 PIC系列單片機(jī)是使用Harvard總線和RISC結(jié)構(gòu)的單片機(jī),具有功耗低、高速、開(kāi)發(fā)容易、價(jià)位低、體積小等特點(diǎn)。93C46B是采用CMOS工藝制造的64%26;#215;16bit結(jié)構(gòu)8引腳的串行可用電擦除可編程只讀存儲(chǔ)器,同樣具有功耗低、價(jià)位低、體積小等特點(diǎn)。這兩種器件能夠滿足對(duì)硬件設(shè)計(jì)的低功耗和低成本的要求。 圖1為本軟件狗的電源原理圖。包括PIC16C54及93C46構(gòu)成的單片機(jī)系統(tǒng)、復(fù)位電路電源電路三部分。


圖1中,R5、C3組成系統(tǒng)上電復(fù)位電路;D2、D3、C2組成系統(tǒng)電源電路;D1、R1、R2、C1組成PIC16C54的外部RC振蕩電路;PIC16C54通過(guò)其A口控制93C46串行EEPROM;T0CLKI引腳用于監(jiān)測(cè)當(dāng)前PC是否控制打印機(jī);RB7引腳用于監(jiān)測(cè)PC當(dāng)前是否與本軟件狗聯(lián)系,并選擇單片機(jī)當(dāng)前工作的時(shí)鐘頻率;RB4、RB5、RB6是軟件狗向PC方向發(fā)送數(shù)據(jù)的接口信號(hào)線;RB0~RB3、RB5是PC向軟件狗方向發(fā)送數(shù)據(jù)的接口信號(hào)線;R6是PIC單片機(jī)工作于外部RC振蕩電路方式時(shí)推薦的間接接地電阻,有利于系統(tǒng)抗干擾和振蕩電路的穩(wěn)定性;R3、R4用于防止打印機(jī)和單片機(jī)之間信號(hào)發(fā)生沖突。 PC打印口中數(shù)據(jù)線和控制線為輸出線,控制線的驅(qū)動(dòng)能力較強(qiáng)。為了不影響打印機(jī)的工作,只能選擇一根不常用并且不會(huì)讓打印機(jī)誤動(dòng)作的控制線(初始化線 IP)為軟件狗提供電源。但單片機(jī)對(duì)串行EEPROM編程時(shí)系統(tǒng)需要的功率比較大,因此在軟件狗工作時(shí)又用了一根數(shù)據(jù)線(D7)提供更大的電源電流。本軟件狗工作于三種狀態(tài):當(dāng)IP和D7都為低電平時(shí),軟件狗不工作;當(dāng)IP為高電平時(shí),軟件狗工作于低功耗狀態(tài):當(dāng)IP和D7都為高電平時(shí),軟件狗工作于正常狀態(tài),此時(shí)可以對(duì)軟件狗進(jìn)行任何操作。由于IP信號(hào)只有在PC系統(tǒng)啟動(dòng)時(shí)為高電平,一般情況下驅(qū)動(dòng)程序和應(yīng)用軟件很少對(duì)此信號(hào)線進(jìn)行操作,平時(shí)此信號(hào)線一般保持低電平。因此軟件狗控制軟件可以將此信號(hào)線置為高電平使單片機(jī)可靠復(fù)位,并進(jìn)行一定的初始化工作。此時(shí),RC振蕩電路的R2為220kΩ,系統(tǒng)工作于<200kHz頻率時(shí),軟件狗的單片機(jī)軟件在此狀態(tài)下不會(huì)對(duì)串行EEPROM編程,因此軟件狗的耗散功率達(dá)到最低。當(dāng)D7信號(hào)也被置高時(shí),此時(shí),RC振蕩電路的R2|R1<4.7kΩ,系統(tǒng)工作于>4MHz頻率時(shí),軟件狗進(jìn)入正常工作狀態(tài)。 當(dāng)PC對(duì)打印機(jī)進(jìn)行操作時(shí),軟件狗不應(yīng)該往并口輸出任何信息。由于PC對(duì)打印機(jī)的操作總是以將并口的選通線置為高電平開(kāi)始,因此可以通過(guò)對(duì)并口選通線的上升沿監(jiān)測(cè),判斷PC是否對(duì)打印機(jī)開(kāi)始操作。另外,還通過(guò)監(jiān)測(cè)IP信號(hào)和D7信號(hào)來(lái)判斷軟件狗是否可以開(kāi)始工作。只有在并口選通信號(hào)為低電平,IP和D7都為高時(shí),軟件狗才允許向并口信號(hào)線輸出。 圖3 軟件狗向PC發(fā)送數(shù)據(jù)的時(shí)序圖 2 軟件設(shè)計(jì) 軟件狗的軟件設(shè)計(jì)有兩部分:軟件狗的單片機(jī)程序和PC程序。


單片機(jī)程序包括對(duì)93C46的操作、與PC通訊接口、數(shù)據(jù)編碼、工作狀態(tài)控制等功能。PC程序包括本軟件狗開(kāi)發(fā)用的測(cè)試工具程序、用戶定制軟件狗的工具程序、軟件狗隨用戶程序發(fā)行時(shí)的動(dòng)態(tài)鏈接庫(kù)程序。測(cè)試工具程序用于測(cè)試軟件狗對(duì)串行EEPROM的讀寫(xiě)操作、軟件狗與PC間的通訊測(cè)試;用戶定制軟件狗的工具程序用于對(duì)軟件狗設(shè)置密碼的初始化工作;動(dòng)態(tài)鏈接庫(kù)程序?yàn)橛脩舻膽?yīng)用程序提供編程接口。單片機(jī)程序使用MTLAB集成環(huán)境的MTASM開(kāi)發(fā),PC軟件使用VC5.0開(kāi)發(fā)。本文只介紹單片機(jī)軟件。 2.1 軟件狗與PC的通訊 軟件狗與PC之間的數(shù)據(jù)通信方法是自行設(shè)計(jì)的。PC向軟件狗送數(shù)據(jù)時(shí)使用并口的選擇輸入(SELECTIN,這里稱之為PCRDY)線,數(shù)據(jù)線的 D3~D0。單片機(jī)在PCRDY信號(hào)的下降沿讀取數(shù)據(jù),每一個(gè)字節(jié)分兩次發(fā)送,先發(fā)低四位,后發(fā)高四位。PC向軟件狗方向發(fā)送數(shù)據(jù)的時(shí)序如圖2所示。 軟件狗向PC方向發(fā)送數(shù)據(jù)時(shí)使用并口的選擇輸入(SELECT IN,這里稱之為PCRDY)線、應(yīng)答(ACK,這里稱之為DO)線、選擇(SLC,這里稱之為BUSY)線。軟件狗向PC發(fā)送數(shù)據(jù)時(shí)按先發(fā)低位后發(fā)高位的順序串行地將數(shù)據(jù)發(fā)給PC,一個(gè)字節(jié)分8次發(fā)完。軟件狗向PC方向發(fā)送數(shù)據(jù)的時(shí)序如圖3所示。 PC與軟件狗之間的數(shù)據(jù)通訊遵循“命令一應(yīng)答”規(guī)則,PC發(fā)命令,單片機(jī)處理完命令后發(fā)應(yīng)答數(shù)據(jù)。雙方可以根據(jù)命令及其應(yīng)答的意義解析數(shù)據(jù)幀的結(jié)構(gòu),以校驗(yàn)通訊的正確性。命令與應(yīng)答數(shù)據(jù)幀的第一個(gè)字節(jié)的高四位總是命令或應(yīng)答代碼,低四位總是此命令或應(yīng)答所帶參數(shù)的個(gè)數(shù)。各命令與應(yīng)答數(shù)據(jù)幀的結(jié)構(gòu)定義如表1 所示。 表1 各命令與應(yīng)答數(shù)據(jù)幀的結(jié)構(gòu)定義 功 能代 碼參數(shù)個(gè)數(shù)參 數(shù) 連接命令 0 8 軟件狗的序列號(hào) 連接應(yīng)答 0 0 無(wú) 擦除命令 1 0 無(wú) 擦除應(yīng)答 1 0 無(wú) 讀ROM命令 2 1 ROM的起始地址 讀ROM應(yīng)答 2 8 返回讀出的數(shù)據(jù) 寫(xiě)ROM命令 3 1~16 第一個(gè)字節(jié)為ROM的起始地址,后面N-1個(gè)字節(jié)為寫(xiě)入的數(shù)據(jù) 寫(xiě)ROM應(yīng)答 3 0 無(wú) 校驗(yàn)編碼命令 4 9 第一個(gè)字節(jié)為校驗(yàn)功能號(hào),后面8個(gè)字節(jié)為待編碼的數(shù)據(jù) 校驗(yàn)編碼應(yīng)答 4 9 第一字節(jié)為校驗(yàn)功能號(hào),后面8個(gè)字節(jié)為編碼后的數(shù)據(jù) 2.2 加密算法 考慮到軟件狗使用時(shí)不能對(duì)應(yīng)用程序的執(zhí)行速度產(chǎn)生較大影響,對(duì)DES加密算法分析后進(jìn)行了簡(jiǎn)化,用來(lái)對(duì)數(shù)據(jù)進(jìn)行加密。DES加密算法的核心思想是使加密后的數(shù)據(jù)沒(méi)有顯著的變化規(guī)律,一個(gè)方面使不同被加密數(shù)據(jù)加密后,原始數(shù)據(jù)一位的變化會(huì)引起后密后數(shù)據(jù)多處無(wú)明顯規(guī)律變化,即變化擴(kuò)展原則;另一方面使用密鑰,密鑰的作用是將被加密數(shù)據(jù)與之進(jìn)行運(yùn)算以改變?cè)紨?shù)據(jù)。綜合這兩個(gè)方面的原則,采取了將被加密數(shù)據(jù)“換位一與密鑰異或”8次的加密方法。這種方法實(shí)現(xiàn)比較簡(jiǎn)單,且將被加密數(shù)據(jù)與原來(lái)數(shù)據(jù)比較,不同的被加密數(shù)據(jù)間的加密結(jié)果比較,很難發(fā)現(xiàn)其中規(guī)律,加密效果不錯(cuò)。 整個(gè)系統(tǒng)的加密原理是PC利用系統(tǒng)時(shí)間產(chǎn)生一個(gè)隨機(jī)數(shù),將此隨機(jī)數(shù)發(fā)送給軟件狗,軟件狗對(duì)此進(jìn)行加密返回加密結(jié)果,PC自己也對(duì)此進(jìn)行加密將自己的加密結(jié)果與軟件狗的加密結(jié)果進(jìn)行比較。另外,每一個(gè)軟件狗都有一個(gè)序列號(hào),連接時(shí)必須提供正確的序列號(hào)才能連接進(jìn)行其它工作。同時(shí)序列號(hào)也用于區(qū)分不同的軟件狗,使得多個(gè)軟件狗可以插在同一個(gè)并口上正常工作。每個(gè)軟件狗可以設(shè)置16個(gè)不同的密鑰,用戶可以為應(yīng)用程序的不同功能模塊設(shè)置不同的密鑰。 2.3 程序流程 PIC16C54單片機(jī)的程序流程如圖4所法。設(shè)置OPTION:初始化單片機(jī)的工作模式;設(shè)置PORTB、清除RAM:位于單片機(jī)空閑循環(huán)體內(nèi),設(shè)置 PORTB的輸出方向,軟件狗在空閑時(shí)對(duì)打印口無(wú)影響;接收命令:接收PC發(fā)出的數(shù)據(jù),按照軟件狗與PC的通信規(guī)則進(jìn)行解釋;處理命令:一個(gè)CASE結(jié)構(gòu)的程序體,根據(jù)命令含義執(zhí)行不同功能;返回命令處理結(jié)果;按照軟件狗與PC的通信規(guī)則向PC返回應(yīng)答信息。 筆者使用WKPE、DOG、DOGGIE等打狗軟件對(duì)本軟件狗進(jìn)行了破解實(shí)驗(yàn),這幾種軟件無(wú)法破解本軟件狗。另外本軟件狗在若干種品牌機(jī)和兼容機(jī)上進(jìn)行了測(cè)試,都可以正常工作并且對(duì)Windows打印作業(yè)無(wú)影響。實(shí)驗(yàn)結(jié)果表明,本軟件狗有比較好的安全性、通用性和穩(wěn)定性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉