下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、USB軟件狗的設計及反破解技術 Post By:2009-9-19 11:50:00 摘要:介紹了軟件狗技術的發(fā)展,提出了一種改進的低成本USB軟件狗的設計方案,分析了常見的加解密技術,并據(jù)此提出了一系列反破解措施。 關鍵詞:USB 軟件狗 加解密技術 反破解1 軟件狗技術近年來,軟件狗技術在保護軟件開發(fā)者利益、防止軟件盜版方面起了很大作用。軟件狗技術屬于硬加密技術,它具有加密強度大、可靠性高等特點,已廣泛應用于計算機軟件保護。軟件狗技術的發(fā)展經歷了多次更新?lián)Q代。第一代軟件狗通過短接并行口的某兩根線,或者再加上些電阻、電容、二極管等
2、實現(xiàn);第二代軟件狗采用邏輯門電路跨接在開行口上,并采取適當?shù)拇胧┍M量避免軟件狗和打印機之間的相互干擾;第三代軟件狗的核心芯片是EEPROM,主機通過并行口直接讀寫 EEPROM以實現(xiàn)對加密信息存取;第四代軟件狗以微控制器和EEPROM為核心器件,又稱微狗,它具有一定的智能,應用靈活性和抗破解能力都得到了很大提高。傳統(tǒng)的軟件狗通過在并行口上附加一定的電路實現(xiàn),而并行口本身的特點限制了傳統(tǒng)軟件狗技術的進步發(fā)展。由于并行口本身沒有電源線,所以傳統(tǒng)折并行口軟件狗都是通過各種“偷電”技術從數(shù)據(jù)線或控制線獲得軟件狗電路所需的電源,其電路必須選用規(guī)模不大的低拉耗元器件。在負載能力很低的并行口上,并行口軟件狗
3、難以保證正常工作。由于并行口是為連接單個設備設計的,在連接多個設備時很難避免沖突,傳統(tǒng)的并行口軟件狗必須細考慮與打印機之間的兼容問題。特別是對于一些非標準接口的并行口設備,就更難解決沖突問題。這些都使并行口軟件技術的展受到很大限制。USB是在1994年底由Compaq、IBM、Microsoft等多家公司聯(lián)合提出的一種連接外部設備的新型的通用串行接口技術,它具有真正的即插即用和熱插拔功能,理論上可支持多達127個不外設的同時連接。USB是一種先進的很有前途的接口標準,隨著USB接口器件的發(fā)展,使用USB接口的設備會越來越多。USB接口本身具有電源線,可為外設提供穩(wěn)定可靠的工作電源,從而對USB
4、軟件狗所用元器件的工作電壓、功耗等的要求大大降低,軟件狗的工作條件得到很大改善,更容易實現(xiàn)復雜、靈活的設計和電路的微型化。由于USB是為連接多個設備而設計的,有著嚴格的規(guī)范,從接口本身避免了設備間的沖突,只要遵循USB接口規(guī)范, USB軟件狗不但不會對別的USB設備產生影響,也不會受到別的USB設備的影響。與并行口相比,USB接口更適合于軟件狗技術。2 USB軟件狗的硬件在本設計中,所使用的微控制器是CY7C63100A/CY7C63101A。它是CYPRESS公司生產的8位精簡指令集(RISC)的OTP型微控制器。它集成有1.5Mbps的USB串行接口引擎(SIE)(即USB收發(fā)器),具有1
5、28字節(jié)的片內RAM、2/4K字節(jié)的程序存儲空間,片內還具有個自由運行的8位定時器、一個看門狗定時器和內部上電復位電路,它的指令集專門為開發(fā)USB應用進行了優(yōu)化。該控制器擁有兩個輸入輸出端口、16根通用 I/O線,且每根線均可作為中斷源。端口1的所有引腳都帶有可編程驅動器,可以直接驅動LED發(fā)光。該控制器的操作電壓為4.05.25V,它需要 6MHz的外部陶瓷共振器,片內操作時鐘為12MHz。CY7C63100A/CY7C63101A是低速USB外設的低成本解決方案,符合USB1.1 規(guī)范,支持1個設備址和2個端點(一個控制端點和一個數(shù)據(jù)端點)。本設計中所使用的存儲器是24C02,它是帶有硬件
6、寫保護功能的串行EEPROM,其接口兼容I2C總線規(guī)范,通過一對串行時鐘、數(shù)據(jù)線對片內存儲單元進行讀寫。24C02的片仙存儲器容量為2K位(或256字節(jié))。本文設計的USB軟件狗的硬件電路圖如圖1所示。其核心器件是微控制器(可根據(jù)需要選用CY7C63100A或CY7C63101A,其區(qū)別為程序存儲器的空間不同,分別為2K字節(jié)和4K字節(jié))和串行EEPROM(24C02),各元件的具體參數(shù)如圖1所示。微控制器的第15(D-)、16(D+)腳分別連接USB連接器的2(D-)、3(D+)腳,提供微控制器和主機之間信息交換的電信號通道,其中第15引腳(D-)所接的7.5k的上拉電阻是為了滿足USB規(guī)范的
7、要求。微控制器通過USB接口與主機進行信息交換。微控制器的第20腳(P1.1)經過10k的上位電阻連接24C02的第7腳(WP,寫保護),控制24C02的寫操作使能。當WP為高電平(Vcc)時,只能讀取24C02的內容而不能對其進行寫入;當WP為低電平(Vss)時,則可以進行讀、寫操作。設置寫保護功能,可以防止存儲器內容被意外改寫。微控制器的第19腳(P1.3)連接24C02 的第6腳(SCL,串行時鐘),為控制24C02的讀寫操作提供時鐘;微控制器的第18腳(P1.5)經過10k的上拉電阻接24C02的第5腳(SDA,串行數(shù)據(jù)、地址),作為讀寫24C02的數(shù)據(jù)、地址信號線。微控制器通過這三根
8、信號線完成對24C02的讀寫操作,對24C02的讀寫控制滿足I2C總線規(guī)范。3 USB軟件狗的軟件USB 軟件狗的軟件包括主機軟件微控制器中的軟件(固件)。主機軟件和固件相配合,協(xié)完成主機與USB軟件狗間的信息交換。其中,微控制器中的固件主要完成與 USB主機的通信(包括參與USB總線設備枚舉、USB軟件狗的自身標識等)、對24C02的讀寫操作、與主機程序相配合實現(xiàn)和主機程序間的數(shù)據(jù)交換等任務。微控制器程序的簡化軟件框圖如圖2所示。3.1 USB軟件狗插入主機后,主機發(fā)現(xiàn)USB軟件狗,在執(zhí)行USB復位操作后,主機使用默認地址(地址0)向USB軟件狗發(fā)出設備描述符請求,USB軟件狗向主機返回自已
9、的設備描述符作為響應;接收到要求的設備描述符后,主機為新發(fā)現(xiàn)的USB軟件狗指定一個新的USB地址;然后,主機使用新的USB地址重新向 USB軟件狗發(fā)送一個設備描述符請求,USB軟件狗向主機返回自己的設備描述符作為響應。主機向USB軟件狗發(fā)送配置描述符請求,USB軟件狗從程序存儲空間中取出相應的描述符并返回給主機。當主機接收到所有的描述符后,USB設備枚舉過程即告結束。至此,主機已完全了解USB軟件狗的資源要求、端點類型和性能等特性。3.2 USB軟件狗和主機間的數(shù)據(jù)交換由于CY7C63100A/CYC63101A只提供兩個USB端點:端點0和端點1。端點1只能發(fā)送數(shù)據(jù)而不能接收數(shù)據(jù),所以不適合
10、USB軟件狗的交互式數(shù)據(jù)交換的要求,故只有使用端點0與主機進行數(shù)據(jù)交換。USB 共支持四種類型的傳輸:等時傳輸、中斷傳輸、控制傳輸和批量傳輸。要求恒定的連續(xù)傳輸速率的實時應用程序一般都采用等時傳輸方式。等時傳輸要求及時地提供數(shù)據(jù),且對數(shù)據(jù)正確性要求不高而對時間極為敏感,所以在等時傳輸中,數(shù)據(jù)的有效性不能保證。在傳送數(shù)據(jù)發(fā)生錯誤時,USB并不處理這些錯誤,而是繼續(xù)傳送新的數(shù)據(jù)。中斷傳輸方式總線用于對設備的查詢,以確定設備是否有數(shù)據(jù)需要傳輸。因此中斷傳輸?shù)姆较蚩偸菑腢SB設備到主機,傳送的數(shù)據(jù)量很小。但這些數(shù)據(jù)需要及時處理,以達到實時效果??刂苽鬏斕峁┝艘环N方法來配置USB設備,并對它操作的某些方
11、面進行控制。每個設備都必須實現(xiàn)一個缺省的控制端點(端點 0),控制端點用來配置設備、控制設備狀態(tài)以及設備操作的其它方面,包括設備控制指令、設備狀態(tài)查詢及確認命令。批量傳輸適用于對數(shù)據(jù)的正確性要求很高、而對數(shù)據(jù)傳輸速率沒有特殊要求的設備。除缺省的針對端點0的控制傳輸外,對于其他三種傳輸方式,端點的傳輸方式一旦確定,則該端點在此配置下只能進行某一特定方向上的數(shù)據(jù)傳輸,而不可以在通信過程中改變傳輸方向,除非重新選擇配置,對于USB軟件狗應用,由于USB軟件狗與主機間要不斷地相互進行數(shù)據(jù)交換,且每次所需要交換的數(shù)據(jù)量不大,故選用控制傳輸方式??刂苽鬏斨辽儆蓛蓚€階段組成,也有可能是三個階段。建立階段控制
12、傳輸總線從建立階段開始,在本階段主機向目標設備傳送信息,定義對USB設備的請求類型(例如讀設備描述符)。數(shù)據(jù)階段這個階段僅僅是因要求數(shù)據(jù)傳輸?shù)恼埱蠖x的。例如,在數(shù)據(jù)階段,讀描述符的請求把描述符的內容發(fā)送給主機。狀態(tài)階段 這個階段用來報告所請求的操作的結果??刂苽鬏攺慕㈦A段開始,它包含8字節(jié)的信息包。這個8字節(jié)的信息包定義了在控制傳輸?shù)臄?shù)據(jù)階段所傳輸?shù)臄?shù)據(jù)數(shù)量。在數(shù)據(jù)階段,信息包的最大數(shù)據(jù)載荷限制為64字節(jié)。對于本設計,由于CY7C63100A/CY7C63101A的端點0只提供了8字節(jié)的FIFO緩沖區(qū),故最大信息包只能取8字節(jié)。如果有更多的數(shù)據(jù)需要傳輸,可以分多次完成??刂苽鬏攨⑴c錯誤檢測
13、和恢復機制,努力提供一種最大限度的恢復,以保證數(shù)據(jù)的完整性。USB設備枚舉過程結束后,并沒有立即開始工作,必須由主機根據(jù)在枚舉階段所獲得的信息對USB設備進行配置。配置完成后,USB設備才進入工作狀態(tài)。此后,主機就可以與USB設備進行數(shù)據(jù)交換了。主機與USB軟件狗間的數(shù)據(jù)交換過程由主機方起,每一次數(shù)據(jù)交換都由完整的控制傳輸完成。在控制傳輸?shù)慕㈦A段,主機向USB軟件狗發(fā)送8字節(jié)的信息包,通過用戶自定久的請求類型字段規(guī)定USB軟件狗對后續(xù)數(shù)據(jù)應進行的處理,或要求USB軟件狗向主機返回特定的信息。在數(shù)據(jù)階段,USB軟件狗接收指定數(shù)據(jù)或按要求向主機發(fā)送相應數(shù)據(jù)??刂苽鬏?shù)臓顟B(tài)階段指示本次數(shù)據(jù)傳輸?shù)慕Y
14、果狀態(tài),以確定本次交互是否正確完成。3.3 讀寫24C02為防止24C02的內容意外改變(例如,由于強干擾或不規(guī)范操作等),在不進行寫操作時,應使WP引腳保持為高電平,即P1.1保持為高電平。在進行寫操作時使WP變低,并一直保持到寫操作完成。寫操作完成后立即恢復WP為高電平。對24C02具體的讀寫操作符合I2C總線規(guī)范,很多相關書籍都有具體的實例程序,本文不再多述。為安全起見,存儲器24C02中的數(shù)據(jù)應采用加密后的形式存放。4 軟件狗反破解技術針對軟件狗的破解方法主要有兩種:硬件方法和軟件方法。軟件狗的硬件破解方法,主要是仿制軟件狗的硬件電路。這個方法對付早期的軟件狗比較有效。當微狗出現(xiàn)后,由
15、于很多微控制器本身都提供了程序代碼保護功能,這使得仿制軟件狗特別是獲取固件變得越來越困難,這種方法現(xiàn)在已經很少使用。還有一種硬件破解方法是使用邏輯分析儀或軟件攔截I/O,記錄下軟件狗與主機軟件間所傳送的數(shù)據(jù)并進行分析以找出規(guī)律。這對于一些簡單的軟件狗比較有效,而對于算法眾多、交互數(shù)據(jù)量很大的軟件狗,這種方法所帶來的繁雜性可想而知。 USB通信規(guī)程本身相當復雜,這也大大提高了對USB軟件狗進行數(shù)據(jù)攔截的破解方法的難度?,F(xiàn)在,更加常用的軟件狗破解方法主要集中在軟件方面,并有軟件模擬、跟蹤分析等方法。軟件模擬,就是先啟動I/O攔截軟件,然后在有軟件狗的情況下啟動受保護軟件,并對受保護軟件的第一個功能
16、都進行試運行;同時,后臺的I/O攔截軟件記錄下受保護軟件與軟件狗之間交互的數(shù)據(jù)供以后合作。記錄完成后,只需在啟動受保護軟件前先啟動模擬軟件,就可以使受保護軟件在沒有軟件狗的情況下也可以正常運行。在受保護軟件運行過程中,當它企圖與軟件狗進行通信時,后臺的模擬軟件攔拱到該通信請求,根據(jù)先前記錄下的數(shù)據(jù)對真實軟件狗進行仿真,使受保護軟件通信數(shù)據(jù)不變的情形,軟件模擬方法十分有效;但如果通信數(shù)據(jù)中含有隨機性的參數(shù)(例如,系統(tǒng)的當前時間),那么軟件狗和受保護軟件間所交互的數(shù)據(jù)就各不相同,在這種情況下,軟件模擬方法就顯得無能為力了。例如,主機軟件可以取系統(tǒng)當前時間送給軟件狗,軟件狗使用一定的規(guī)則對其進行變換
17、,并把結果送回主機軟件,機軟件用同樣的規(guī)則對上述時間值進行同樣的變換,檢查變換后的結果是否一致。這里需要有好的變換算法,使變換結果對參數(shù)的各個部分的改變很敏感且程度相似?;蛘?,軟件狗和受保護軟件間遵循一定的通信協(xié)議(當然是不公開的),所傳輸?shù)臄?shù)據(jù)中含有大量隨機的無用信息,而根據(jù)該通信協(xié)議,軟件狗和受保護軟件都可以從中提取出有效的信息。 在各種軟件狗的軟件破解方法中,以跟蹤分析方法的威力最為強大,具體的有靜態(tài)分析和動態(tài)跟蹤等方法。 靜態(tài)分析方法是用一些靜態(tài)反匯編、反編譯工具對受保護軟件進行逆向分析,以求找出訪問軟件狗的代碼并進行相應的修改。如果預先對受保護軟件
18、的程序代碼采用一定的變換(可以取軟件狗中的數(shù)據(jù)作為變換參數(shù)),在運行時再進行反變換動態(tài)生成將要執(zhí)行的代碼,就可以有效地對抗靜態(tài)分析方法。還可以使用可執(zhí)行文件壓縮工具對受保護軟件進行壓縮處理,或采用軟件加殼工具對其進行處理等,這些都可以有效地對付靜態(tài)分析法。另外,如果把主機軟件的內部函數(shù)調用與外殼加密相結合,則可進一步提高加密強度,即使軟件的外殼被破除,也仍然不能正常運行。動態(tài)跟蹤破解法不僅可以用于軟件狗破解,還可以用來獲取一些軟件的注冊序列號,取消軟件的試用期限制、試用次數(shù)限制和解鎖試用版軟件等。這種方法是使用一些調試分析工具軟件(如DEBUG、SOFTICE等),控制受保護軟件的整個運行過程,找出它與軟件狗間交互部分的代碼并進行修改,以使其跳過對軟件狗的檢測或使檢測結果無效。該破解方法的使用者往往都具有相當豐富的破解經驗,對各種加解密方法了如指掌,這種方法也需要破解者付出很大的精力。對付這種暴力破解方法,主要就是設備跟蹤陷阱、使用大量各不相同的加密算法并大量分散地設置對軟件狗的訪問、分離對軟件狗的檢測命令和對結果的判斷等,目的就是加大跟蹤分析的工作量、擾亂破解者的思路,大量消耗其體力和腦力,最終達到使其知難而退。動態(tài)跟蹤法的一種很有效的對策是限定主機軟件與軟件狗間交
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 18400.6-2025加工中心檢驗條件第6部分:速度和插補精度檢驗
- GB/T 46639.1-2025鑄造機械術語第1部分:基礎
- GB/T 46820-2025網(wǎng)絡安全技術網(wǎng)絡安全試驗平臺體系架構
- GB/Z 125-2025標準國外適用性評價指南
- 2026年廈門軟件職業(yè)技術學院單招職業(yè)技能測試題庫及答案詳解一套
- 2026年江蘇城鄉(xiāng)建設職業(yè)學院單招職業(yè)技能考試題庫含答案詳解
- 2026年鄭州醫(yī)藥健康職業(yè)學院單招職業(yè)技能考試題庫及完整答案詳解1套
- 2026年重慶經貿職業(yè)學院單招職業(yè)適應性考試題庫及完整答案詳解1套
- 2026年上海建橋學院單招職業(yè)適應性測試題庫及完整答案詳解1套
- 2026年上海第二工業(yè)大學單招職業(yè)適應性考試題庫及完整答案詳解1套
- 大窯校本教材合唱的魅力
- 2025字節(jié)跳動智能廣告發(fā)布服務合同(模板)
- 《建筑測繪》課件
- 《健康體檢報告解讀》課件
- 前臺電話禮儀培訓
- T-CET 402-2024 金屬結構曲面屋頂晶硅組件建筑光伏一體化技術規(guī)范
- 智慧健康養(yǎng)老管理基礎知識單選題100道及答案解析
- 車床設備大修計劃方案
- 《法律職業(yè)倫理(第三版)》課件全套 王進喜 第1-21章 法律職業(yè)-司法鑒定職業(yè)倫理
- 遼寧省地質勘探礦業(yè)集團有限責任公司招聘筆試題庫2024
- 《山區(qū)公路橋梁典型病害手冊(試行)》
評論
0/150
提交評論