




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第11章軟件保護(hù)技術(shù)11.1軟件保護(hù)技術(shù)概述11.2靜態(tài)分析技術(shù)11.3動(dòng)態(tài)分析技術(shù)11.4常用軟件保護(hù)技術(shù)11.5軟件加殼與脫殼11.6設(shè)計(jì)軟件的一般性建議
11.1軟件保護(hù)技術(shù)概述軟件保護(hù)技術(shù)是軟件開發(fā)者尋找各種有效方法和技術(shù)來維護(hù)軟件版權(quán),增加其盜版的難度,或延長(zhǎng)軟件破解的時(shí)間,盡可能防止軟件被非法使用。
從理論上說,幾乎沒有破解不了的軟件。所以對(duì)軟件的保護(hù)僅僅靠技術(shù)是不夠的,最終要靠國(guó)家法制的完善、人們的知識(shí)產(chǎn)權(quán)保護(hù)意識(shí)的提高。11.2靜態(tài)分析技術(shù)
靜態(tài)分析是從反匯編出來的程序清單上分析程序流程,從提示信息入手,了解軟件中各模塊的功能,各模塊之間的關(guān)系及編程思路。從而根據(jù)自己的需要完善、修改程序的功能。對(duì)于破解者來說,通過對(duì)程序的靜態(tài)分析,了解軟件保護(hù)的方法,也是軟件破解的一個(gè)必要的手段。
11.2.1文件類型分析對(duì)軟件進(jìn)行靜態(tài)分析時(shí)首先要了解和分析程序的類型,了解程序是用什么語言編寫的,或用什么編譯器編譯的,程序是否有加殼保護(hù)。常用的文件類型分析工具有Language2000、FileScanner、FileInfo、PEiD等。
下面請(qǐng)看用PeiD軟件對(duì)Winword.exe文件的分析結(jié)果。
11.2.2W32DasmW32Dasm針對(duì)現(xiàn)在流行的可執(zhí)行程序進(jìn)行反編譯,即把可執(zhí)行的文件反編譯成匯編語言,以便于我們分析程序的結(jié)構(gòu)和流程。
W32Dasm不需要安裝,只要直接執(zhí)行W32Dasm.exe文件。下面簡(jiǎn)單介紹W32Dasm功能和使用方法。
1.加載文件,請(qǐng)看教材和課堂演示。2.轉(zhuǎn)到程序入口點(diǎn),請(qǐng)看教材和課堂演示。3.轉(zhuǎn)到代碼開始,請(qǐng)看教材和課堂演示。4.轉(zhuǎn)到頁,請(qǐng)看教材和課堂演示。5.轉(zhuǎn)到代碼位置,請(qǐng)看教材和課堂演示。6.執(zhí)行文本跳轉(zhuǎn),請(qǐng)看教材和課堂演示。
7.執(zhí)行調(diào)用,請(qǐng)看教材和課堂演示。8.輸入函數(shù),請(qǐng)看教材和課堂演示。9.輸出函數(shù),請(qǐng)看教材和課堂演示。10.菜單參考,請(qǐng)看教材和課堂演示。11.對(duì)話框參考,請(qǐng)看教材和課堂演示。12.串式數(shù)據(jù)參考,請(qǐng)看教材和課堂演示。
13.復(fù)制匯編代碼文本,請(qǐng)看教材和課堂演示。14.裝載32位的匯編代碼動(dòng)態(tài)調(diào)試,請(qǐng)看教材和課堂演示。15.單步跟蹤程序,請(qǐng)看教材和課堂演示。16.設(shè)置激活斷點(diǎn),請(qǐng)看教材和課堂演示。17.保存反匯編文本文件,請(qǐng)看教材和課堂演示。
11.2.3IDAPro簡(jiǎn)介
IDA相對(duì)于W32Dasm來說功能更強(qiáng)大、操作比較復(fù)雜。使用IDA需要注冊(cè)費(fèi)用,而W32Dasm是免費(fèi)的。當(dāng)分析一個(gè)簡(jiǎn)單的程序時(shí),使用W32Dasm更為方便。
IDA能夠分析加殼的程序,并以多種文件形式保存等。目前IDAPro最高版本為IDAPro4.6,支持64位處理器,具有更強(qiáng)大的功能。
11.2.4可執(zhí)行文件代碼編輯工具
W32Dasm和IDA適合分析文件。若要對(duì)文件進(jìn)行編輯、修改,可以使用專門的十六進(jìn)制編輯工具。如Hiew,HexWorkshop,WinHex,U1traEdit等。
Hiew的界面簡(jiǎn)單、使用方便,它可以對(duì)應(yīng)用程序進(jìn)行反匯編,同時(shí)支持對(duì)可執(zhí)行文件的十六進(jìn)制代碼和匯編語言代碼修改。
Hiew的使用見教材和課堂演示。
11.2.5可執(zhí)行文件資源編輯工具
Windows應(yīng)用程序的各種操作界面稱為資源,包括加速鍵、位圖、光標(biāo)、對(duì)話框、圖標(biāo)、菜單、工具欄、版本信息等。資源也是一種數(shù)據(jù),它們一般被存儲(chǔ)在PE文件的.rsrc塊中,不能通過由程序源代碼定義的變量直接訪問,Windows提供的函數(shù)直接或間接地把它們加載到內(nèi)存中以備使用。
對(duì)于已打包后的exe,dll和ocx等文件可以通過資源修改工具ResourceHacker、eXeScope和ResScope等修改其資源,它們也是功能強(qiáng)大的漢化和調(diào)試輔助工具。一般資源修改工具具有如下功能:1.在已編譯和反編譯的格式下都可以查看Win32可執(zhí)行文件和相關(guān)文件的資源)。2.提取和保存資源到文件(*.res)格式,作為二進(jìn)制文件或作為反編譯資源腳本或圖像。
3.修改和替換可執(zhí)行文件的資源。4.添加新的資源到可執(zhí)行文件。5.刪除資源。資源黑客(ResourceHacker)軟件使用見教材和課堂演示。
11.3動(dòng)態(tài)分析技術(shù)用靜態(tài)分析法可以了解編寫程序的思路,但是有時(shí)并不可能真正地了解軟件編寫的整個(gè)細(xì)節(jié)和執(zhí)行過程,在對(duì)軟件靜態(tài)分析無效的情況下就可以對(duì)程序進(jìn)行動(dòng)態(tài)分析了。動(dòng)態(tài)分析就是通過調(diào)試程序、設(shè)置斷點(diǎn)、控制被調(diào)試程序的執(zhí)行過程來發(fā)現(xiàn)問題。
對(duì)軟件動(dòng)態(tài)跟蹤分析時(shí)可以分兩步進(jìn)行:1.對(duì)軟件進(jìn)行簡(jiǎn)要跟蹤主要根據(jù)程序的順序執(zhí)行結(jié)果分析該段程序的功能,找到我們關(guān)心的模塊或程序段。2.對(duì)關(guān)鍵部分進(jìn)行細(xì)跟蹤在獲取軟件中關(guān)鍵模塊后,這樣就可以針對(duì)性地對(duì)該模塊進(jìn)行具體而詳細(xì)地跟蹤分析。要把比較關(guān)鍵的中間結(jié)果或指令地址記錄下來,直到讀懂該程序?yàn)橹埂?dòng)態(tài)分析技術(shù)使用的調(diào)試器可分為用戶模式和內(nèi)核模式兩種類型。用戶模式調(diào)試器工作在Win32的保護(hù)機(jī)制Ring3級(jí)(用戶級(jí))上,如VisualC++等編譯器自帶的調(diào)試器就是用戶級(jí)的。內(nèi)核模式調(diào)試器是指能調(diào)試操作系統(tǒng)內(nèi)核的調(diào)試器,它們處于CPU和操作系統(tǒng)之間,工作在Win32的保護(hù)機(jī)制Ring0級(jí)(特權(quán)級(jí))上。
如著名的SoftICE調(diào)試器。常用動(dòng)態(tài)分析工具有SoftICE、OllyDbg等。11.3.1SoftICE調(diào)試器
SoftICE是NuMega公司開發(fā)的最著名的動(dòng)態(tài)調(diào)試工具,可以調(diào)試各種應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序,還可以通過網(wǎng)絡(luò)連接進(jìn)行遠(yuǎn)程調(diào)試。
NuMega公司將SoftICE捆綁進(jìn)驅(qū)動(dòng)開發(fā)軟件DriverStudio和SoftICDriverSuite中發(fā)行。
DriverStudio是一個(gè)設(shè)備驅(qū)動(dòng)程序和應(yīng)用軟件開發(fā)工具包,是一套用來加速微軟Windows設(shè)備驅(qū)動(dòng)程序的開發(fā)和調(diào)試的核心工具。下面以SoftICEDriverSuite2.7為例介紹SoftICE的安裝與配置。
1.SoftICE安裝
SoftICEDriverSuite2.7安裝時(shí)雙擊安裝文件setup.exe,按照安裝向?qū)Ы缑嫣崾揪涂梢酝瓿蒘oftICE安裝了。DriverSuite可自動(dòng)識(shí)別Windows不同版本。安裝過程中,安裝向?qū)?huì)提示選擇3種安裝類型。請(qǐng)看教材和課堂演示。
2.SoftICE啟動(dòng)模式
SoftICE啟動(dòng)模式分兩種:(1)Windows9x系統(tǒng)啟動(dòng)模式(2)WindowsNT/2000/XP系統(tǒng)啟動(dòng)模式
SoftICE在WindowsNT/2000/XP下有四種啟動(dòng)模式可供選擇:(a)Boot模式:SoftICE先于Windows加載,主要用于調(diào)試內(nèi)核驅(qū)動(dòng)程序;
(b)System模式:SoftICE后于Windows加載,主要用于調(diào)試一般的應(yīng)用軟件開發(fā);(c)Automatic模式:SoftICE先于Windows加載,但不能調(diào)試內(nèi)核驅(qū)動(dòng)程序;(d)Manual模式:進(jìn)入Windows系統(tǒng)后,需要手動(dòng)執(zhí)行快捷方式“StartSoftICE”或在命令行上運(yùn)行“netstartntice”來裝載SoftICE;
Disabled:就是禁止所有的SoftICE組件服務(wù)。一般情況下將啟動(dòng)模式設(shè)置為Manual模式,3.鼠標(biāo)與顯卡配置如果使用SoftICE時(shí)發(fā)現(xiàn)顯示或鼠標(biāo)不正常,可以直接用SoftICE修改顯卡和鼠標(biāo)配置。4.SoftICE環(huán)境配置(1)常規(guī)選項(xiàng)(General)General選項(xiàng)是設(shè)置SoftICE初始化命令和一些變量參數(shù)的,請(qǐng)看教材和課堂演示。(2)符號(hào)選項(xiàng)(Symbols)預(yù)裝符號(hào)和代碼,這對(duì)調(diào)試設(shè)備驅(qū)動(dòng)程序很有用。請(qǐng)看教材和課堂演示。(3)導(dǎo)出選項(xiàng)(Exports)
也可通過符號(hào)預(yù)裝加載更多的出口函數(shù)列表,請(qǐng)看教材和課堂演示。(4)功能鍵設(shè)定(KeyboardMappings)
可以以設(shè)置SoftICE的功能鍵,也可自定義功能鍵命令,請(qǐng)看教材和課堂演示。(5)宏定義(MacroDefinitions)用宏定義可以更方便地使用SoftICE,請(qǐng)看教材和課堂演示。(6)Troubleshooting),
該選項(xiàng)卡允許用戶對(duì)鍵盤、鼠標(biāo)和內(nèi)存頁等進(jìn)行高級(jí)設(shè)置。(7)高級(jí)設(shè)置(Advanced)
該選項(xiàng)允許用戶自定義調(diào)試窗口中的鼠標(biāo)右鍵菜單,請(qǐng)看教材和課堂演示。(8)Winice.dat配置
SoftICE初始化設(shè)置保存于文件Winice.dat文件中。5.SoftICE使用安裝SoftICE成功后,按“Ctrl+D”鍵可以激活并打開一個(gè)調(diào)試窗口,當(dāng)需要返回Windows系統(tǒng),關(guān)閉調(diào)試窗口時(shí),要再按“Ctrl+D”鍵
SoftICE調(diào)試窗口分為寄存器、浮點(diǎn)、數(shù)據(jù)、代碼、堆棧和命令窗口等幾部分。
(1)寄存器窗口,請(qǐng)看教材和課堂演示。(2)浮點(diǎn)窗口,請(qǐng)看教材和課堂演示。(3)數(shù)據(jù)窗口,請(qǐng)看教材和課堂演示。(4)代碼窗口,請(qǐng)看教材和課堂演示。(5)系統(tǒng)堆棧窗口,請(qǐng)看教材和課堂示。(6)命令窗口,請(qǐng)看教材和課堂演示。
SoftICE命令十分豐富,大約有150多個(gè),下面介紹十個(gè)最常用的命令,更多的命令請(qǐng)參考SoftICE的命令手冊(cè)。(1)A命令語法:A[address]address:指定內(nèi)存地址作用:寫入?yún)R編代碼。用法:如果不加地址值,可直接在當(dāng)前CS:EIP處匯編。請(qǐng)看教材和課堂演示。
(2)D命令語法:D[size][address[Llength]]size:B字節(jié),W字,D雙字,S短實(shí)型,L長(zhǎng)實(shí)型或T10b長(zhǎng)實(shí)型。
address:指定內(nèi)存地址
Llength:指定長(zhǎng)度作用:顯示某內(nèi)存區(qū)域的內(nèi)容。用法:D命令在所指定的內(nèi)存區(qū)域開始顯示指定長(zhǎng)度的內(nèi)存單元內(nèi)容。請(qǐng)看教材和課堂演示。
(3)G命令語法:G[=start-address][break-address]start-address:開始地址
break-address:中斷地址作用:執(zhí)行程序。用法:G命令屬于一次性斷點(diǎn),F(xiàn)7功能鍵有點(diǎn)類似G命令。請(qǐng)看教材和課堂演示。
(4)P命令語法:P[ret]
作用:單步執(zhí)行程序。用法:只執(zhí)行P時(shí),單步執(zhí)行程序。如果P后加RET參數(shù),將一直單步執(zhí)行到最近的一條返回語句RET/RETF處。
P命令可用快捷鍵F10代替,PRET命令可用快捷鍵F12代替。請(qǐng)看教材和課堂演示。(5)R命令語法:R寄存器名作用:顯示或更改寄存器的內(nèi)容。用法:它可更改所有寄存器的值。請(qǐng)看教材和課堂演示。(6)S命令語法:S[-cu][addressLlengthdata-list]address:搜索的起始地址。
Length:搜索的長(zhǎng)度(字節(jié)數(shù))。
data-list:可以是一系列字節(jié),也可以是字符串;字符串可用單引號(hào),也可以用雙引號(hào)括住。-c:使查找區(qū)分大小寫-u:查找Unicode編碼的字符串作用:在內(nèi)存中搜尋特定數(shù)據(jù)。用法:S命令將從指定的內(nèi)存地址開始查找指定內(nèi)容的數(shù)據(jù),一直到超過指定的長(zhǎng)度為止。請(qǐng)看教材和課堂演示。
(7)T命令語法:T[=start-address][count]start-address:?jiǎn)尾礁櫰鹗嫉刂?/p>
count:指定單步跟蹤多少次才停止作用:單步跟蹤用法:T命令是利用CPU的單步標(biāo)志來進(jìn)行單步跟蹤的。
T命令的快捷鍵是F8。
請(qǐng)看教材和課堂演示。
(8)U命令語法:U[address[length][symbol-name]address:段,偏移量或選擇符
length:反匯編的長(zhǎng)度(字節(jié)數(shù))
symbol-name:將從指定的函數(shù)開始反匯編作用:反匯編指令用法:U命令將從指定地址開始反匯編指定長(zhǎng)度的指令。請(qǐng)看教材和課堂演示。
(9)BPX命令語法:BPX[address]
作用:在可執(zhí)行語句上設(shè)置(或清除)斷點(diǎn)。用法:格式為“BPX地址”時(shí),程序一旦執(zhí)行到該地址處,SoftICE窗口就會(huì)彈出。當(dāng)光標(biāo)在代碼窗口中時(shí),直接鍵入BPX就會(huì)在光標(biāo)所在語句處設(shè)斷點(diǎn),再鍵入BPX就取消。請(qǐng)看教材和課堂演示。
(10)BMSG命令語法:BMSGwindow-handle[L][begin-msg[end-msg]][IFexpression][DO“command1;command2;...”]window-handle:消息發(fā)向的窗口句柄
begin-msg,end-msg:消息標(biāo)識(shí)字的范圍,如果沒有end-msg,那么只在begin-msg上設(shè)置斷點(diǎn),否則在區(qū)域內(nèi)所有消息都會(huì)被下斷點(diǎn)
IF-expression:表達(dá)式的值為真時(shí),SoftICE才彈出
DO“command1;command2;...”:當(dāng)?shù)竭_(dá)斷點(diǎn)時(shí),執(zhí)行一系列SoftICE命令。
L:表示不彈出SoftICE,而是在命令窗口中記錄消息作用:跟蹤Windows消息,在Windows的消息上設(shè)置斷點(diǎn)用法:如果沒有指定在哪個(gè)MSG上設(shè)置斷點(diǎn),那么所有發(fā)向該窗口的消息都會(huì)被攔截。請(qǐng)看教材和課堂演示。
11.3.2OllyDbg調(diào)試器
OllyDbg調(diào)試器是兼有動(dòng)態(tài)調(diào)試和靜態(tài)分析為一身的免費(fèi)軟件調(diào)試器,可以在Windows9X/NT/2000/XP當(dāng)前各種版本下運(yùn)行。
OllyDbg支持80x86、Pentium、MMX,、3DNow!、SSE指令集、SSE2指令集。
OllyDbg文件很小,不駐留內(nèi)存。運(yùn)行OllyDbg.exe就可以了。
下面簡(jiǎn)單介紹一下Ollydbg工作界面:1.代碼窗口2.信息窗口3.數(shù)據(jù)窗口4.寄存器窗口5.堆棧窗口請(qǐng)看教材和課堂演示。
11.4常用軟件保護(hù)技術(shù)11.4.1序列號(hào)保護(hù)機(jī)制軟件驗(yàn)證序列號(hào)的合法性過程就是驗(yàn)證用戶名和序列號(hào)之間的換算關(guān)系,即數(shù)學(xué)映射關(guān)系是否正確的過程。1.以用戶名生成序列號(hào)序列號(hào)=F(用戶名)2.通過注冊(cè)碼來驗(yàn)證用戶名的正確性序列號(hào)=F(用戶名)用戶名=F(序列號(hào))
3.通過對(duì)等函數(shù)檢查注冊(cè)碼
F1(用戶名)=F2(序列號(hào))4.同時(shí)采用用戶名和序列號(hào)作為自變量特征值=F(用戶名,序列號(hào))特征值=F(用戶名1,用戶名2,...序列號(hào)1,序列號(hào)2...)
11.4.2警告(NAG)窗口
Nag窗口是軟件設(shè)計(jì)者用來不斷提醒用戶購(gòu)買正式版本的窗口去除警告窗口最常用的方法是利用資源修改工具來修改程序的資源,將可執(zhí)行文件中的警告窗口的屬性改成透明、不可見,這樣就可以變相去除警告窗口了。若要完全去除警告窗口,只要找到創(chuàng)建此窗口的代碼,并跳過該代碼的執(zhí)行。
11.4.3時(shí)間限制時(shí)間限制程序有兩類,一類是對(duì)每次運(yùn)行程序的時(shí)間進(jìn)行限制,另一類是每次運(yùn)行時(shí)間不限,但是有時(shí)間段限制。如使程序運(yùn)行10分鐘或20分鐘后就停止執(zhí)行,必須重新啟動(dòng)該程序才能正常工作。要實(shí)現(xiàn)時(shí)間限制,應(yīng)用程序中必須有計(jì)時(shí)器來統(tǒng)計(jì)程序運(yùn)行的時(shí)間,在Windows下使用計(jì)時(shí)器有SetTimer()、TimeSetEvent()、GetTickCount()、TimeGetTime()。
11.4.4時(shí)間段限制這類保護(hù)的軟件一般都有時(shí)間段的限制,例如試用30天等。安裝軟件的時(shí)候,或在程序第一次運(yùn)行時(shí)獲得系統(tǒng)日期,并且將其記錄在系統(tǒng)中的某個(gè)地方。這個(gè)時(shí)間稱為軟件的安裝日期。程序在每次運(yùn)行的時(shí)候首先讀取當(dāng)前系統(tǒng)日期,并將其與記錄下來的安裝日期進(jìn)行比較,當(dāng)其差值超出允許的天數(shù)(比如30天)時(shí)就停止運(yùn)行。
為了增加解密難度,軟件最少要保存兩個(gè)時(shí)間值:1.一個(gè)就是上面所說的安裝時(shí)間。2.另外一個(gè)時(shí)間值就是軟件最近一次使用的日期。11.4.5注冊(cè)保護(hù)注冊(cè)文件(KeyFile)是一種利用文件來注冊(cè)軟件的保護(hù)方式。KeyFile內(nèi)容是一些加密過或未加密的數(shù)據(jù),其中可能有用戶名、注冊(cè)碼等信息。當(dāng)用戶向軟件作者付費(fèi)注冊(cè)之后,會(huì)收到注冊(cè)文件,用戶只要將該文件存入到指定的目錄中,就可以讓軟件成為正式版。為增加破解難度,可以在KeyFile中加入一些垃圾信息;對(duì)于注冊(cè)文件的合法性檢查可分散在軟件的不同模塊中進(jìn)行判斷;對(duì)注冊(cè)文件內(nèi)的數(shù)據(jù)處理也盡可能采用復(fù)雜的算法。
11.4.6功能限制
這類程序一般是Demo(演示)版:功能限制的程序一般分為兩種:這類程序一般是Demo(演示)版,功能限制的程序一般分為兩種:1.一種是試用版和正式版的軟件完全分開的兩個(gè)版本,正式版只有向軟件作者購(gòu)買。2.另一種是試用版和注冊(cè)版為同一個(gè)文件,一旦注冊(cè)之后就,用戶可以使用全部功能。
11.4.7光盤軟件保護(hù)
為了能有效地防止光盤盜版,從技術(shù)來說要解決三個(gè)問題:(1)要防止光盤之間的拷貝;(2)要防止破解和跟蹤加密光盤;(3)要防止光盤與硬盤的拷貝。目前防止光盤盜版技術(shù)有:1.特征碼技術(shù)特征碼技術(shù)是通過識(shí)別光盤上的特征碼,如SID(SourceIdent-ificationCode)來區(qū)分是正版光盤還是盜版光盤。
該特征碼是在光盤壓制生產(chǎn)時(shí)自然產(chǎn)生的,而不同的母盤壓制出的特征碼不一樣。光盤上的軟件運(yùn)行時(shí)必須先使用該特征碼,而這種特征碼在盜版者翻制光盤過程中是無法提取和復(fù)制的。
2.非正常導(dǎo)入?yún)^(qū)光盤的導(dǎo)入?yún)^(qū)TOC(TrackOnCD)是用來記錄有關(guān)于光盤類型等信息,是由光盤自動(dòng)產(chǎn)生的,并且光盤無法復(fù)制非正常的導(dǎo)入?yún)^(qū)。因此,在導(dǎo)入?yún)^(qū)內(nèi)添加重要數(shù)據(jù)以供讀盤使用,便能有效地防止光盤之間的非法復(fù)制。
3.非正常扇區(qū)對(duì)于一般的應(yīng)用軟件來說,在讀取光盤非正常扇區(qū)數(shù)據(jù)的時(shí)候,ECC糾錯(cuò)會(huì)出現(xiàn)錯(cuò)誤,無法讀出非正常扇區(qū)數(shù)據(jù)。但我們可以通過特定的方法在光盤上制造一個(gè)特殊的扇區(qū),并在光盤上編寫一個(gè)程序?qū)iT讀取該扇區(qū)的數(shù)據(jù)。如果在非正常扇區(qū)當(dāng)中添加有用的數(shù)據(jù),如應(yīng)用程序的一部分或者是加密、解密的密鑰。這樣對(duì)于盜版者來說,在使用一般軟件讀該扇區(qū)時(shí),會(huì)造成數(shù)據(jù)讀出錯(cuò)誤。同時(shí),如果把光盤上的數(shù)據(jù)讀到硬盤之后,由于密鑰等在正版光盤上,通過硬盤數(shù)據(jù)來制作盜版光盤時(shí),程序也是無法執(zhí)行的。
4.修改文檔結(jié)構(gòu)光盤的文檔結(jié)構(gòu)是遵循ISO-9660標(biāo)準(zhǔn)所制定的,在ISO9660格式中包括有一種稱為DirectoryRecord記錄組,記錄了文件的或文件夾的名稱、屬性、長(zhǎng)度、生產(chǎn)日期、時(shí)間等信息,若是直接修改DirectoryRecord記錄組表達(dá)的內(nèi)容,就能騙過Windows等操作系統(tǒng),制作出隱藏文件夾和超大文件等。
5.使用光盤保護(hù)軟件還可以使用一些商業(yè)光盤保護(hù)軟件,“光盤加密大師”能對(duì)光盤多種格式鏡像文件(ISO)系統(tǒng)進(jìn)行可視化修改,將光盤鏡像文件中的目錄和文件進(jìn)行特別隱藏,將普通文件變?yōu)槌笪募瑢⑵胀夸涀優(yōu)槲募夸浀取?/p>
(1)隱藏文件
ISO9660規(guī)定光盤鏡像文件的每一個(gè)目錄和文件都有一定的格式、規(guī)定和記錄,其中第26個(gè)字節(jié)記錄的就是文件夾標(biāo)記項(xiàng)。那么光盤文件隱藏的原理就是修改ISO文件的第26個(gè)字節(jié)的位置,
讓光盤產(chǎn)生文件確實(shí)存在,但又看不到文件和目錄的特殊效果。請(qǐng)看教材和課堂演示。(2)
超大文件超大文件是最對(duì)文件進(jìn)行一些特殊的處理,讓本來很小的文件的容量大于2GB(光盤容量只有700MB)。這種文件可以直接運(yùn)行,但無法直接復(fù)制,如果要強(qiáng)制復(fù)制就會(huì)提示錯(cuò)誤。
請(qǐng)看教材和課堂演示。
(3)目錄變成文件目錄當(dāng)目錄以文件的形式存在和顯示時(shí),是無法直接進(jìn)入和復(fù)制的。請(qǐng)看教材和課堂演示。(4)寫入光盤密碼光盤加密大師還可以設(shè)置光盤密碼,這樣只有輸入正確的密碼才能訪問光盤的內(nèi)容和指定的文件等。請(qǐng)看教材和課堂演示。
11.4.8軟件狗
軟件狗(dongles)又稱加密鎖等,是一個(gè)可安裝在計(jì)算機(jī)并口、串口或USB接口上的硬件小插件。同時(shí)有一套適用于各種語言的接口軟件和工具軟件。當(dāng)被軟件狗保護(hù)的應(yīng)用軟件運(yùn)行時(shí),程序向插在計(jì)算機(jī)上的軟件狗發(fā)出查詢命令,軟件狗迅速計(jì)算查詢并給出響應(yīng)。如果響應(yīng)正確,軟件將繼續(xù)運(yùn)行,否則程序?qū)⑼V构ぷ鳌?/p>
軟件狗技術(shù)屬于硬加密技術(shù),軟件狗中單片機(jī)里包含有專用于加密算法軟件,就不能再被讀出。這樣,就保證了軟件狗具有硬件不可被復(fù)制、加密強(qiáng)度大、可靠性高等特點(diǎn),軟件狗廣泛應(yīng)用于計(jì)算機(jī)商業(yè)軟件保護(hù)。從結(jié)構(gòu)上來說,使用軟件狗進(jìn)行加密的軟件分為三個(gè)部分:1.軟件狗的驅(qū)動(dòng)程序部分;2.負(fù)責(zé)與驅(qū)動(dòng)程序進(jìn)行通訊的具體語言模塊;3.客戶軟件部分。
為了提高軟件狗的安全性,現(xiàn)在軟件狗采用了一些防破譯技術(shù)。如:1.隨機(jī)噪聲技術(shù)是針對(duì)監(jiān)視通信口工具設(shè)計(jì)的。如果試圖截聽通信口與軟件狗的交互數(shù)據(jù)流,將會(huì)發(fā)現(xiàn)那里面夾雜了大量的無用隨機(jī)數(shù)據(jù),讓解密者難辨真假。而應(yīng)用軟件和狗之間卻可以按照通訊協(xié)議正常通話。2.時(shí)間閘技術(shù)是監(jiān)視程序的運(yùn)行時(shí)間。如果有人想把程序停下來進(jìn)行分析,軟件將被時(shí)間閘切斷運(yùn)行或者自毀應(yīng)用程序,使破解者負(fù)出沉重代價(jià)。
3.迷宮技術(shù)是在程序的入口和出口間插入了大量的跳轉(zhuǎn)來迷惑破解者,使他們很難分析出程序邏輯。4.將應(yīng)用程序的一部分寫到軟件狗中,如果不使用軟件狗,應(yīng)用程序是不完整的,也就無法執(zhí)行了。針對(duì)軟件狗不同的應(yīng)用場(chǎng)合和設(shè)計(jì)技術(shù),目前對(duì)軟件狗又有不同稱呼,如強(qiáng)勁狗、微狗、軟件狗和網(wǎng)絡(luò)狗等。
11.4.9軟盤保護(hù)技術(shù)軟盤保護(hù)技術(shù)的原理是用特殊的方法在軟盤上建立非正常的區(qū)間,并將一些重要的信息,如密鑰、加密程序存放在該區(qū)間內(nèi)。軟件在運(yùn)行時(shí)先檢驗(yàn)這些信息,當(dāng)檢驗(yàn)正確時(shí)軟件才能使用,這種軟盤就好像一把鑰匙,我們通常稱這種軟盤為“鑰匙盤”。制作“鑰匙盤”的原理如下:我們知道,軟磁盤有若干個(gè)同心圓,每個(gè)圓稱為一個(gè)磁道。
每個(gè)磁道分為若干個(gè)扇區(qū)。每個(gè)扇區(qū)有間隙(GAP)。對(duì)于標(biāo)準(zhǔn)的3.5英寸軟盤來說,有80個(gè)磁道,每磁道有18個(gè)扇區(qū),每扇區(qū)可以存放512字節(jié)的數(shù)據(jù),操作系統(tǒng)也只能讀寫標(biāo)準(zhǔn)格式化磁盤。如果采取一些特殊的手段破壞軟盤的標(biāo)準(zhǔn)結(jié)構(gòu)和讀寫方法,如改變扇區(qū)編號(hào)、扇區(qū)個(gè)數(shù)、扇區(qū)大小、磁道數(shù)、磁道接頭數(shù)、磁道間隙指紋等,在軟盤上制作出“非正?!钡膮^(qū)間。這樣,用正常的拷貝命令、讀寫命令、刪除命令是無法影響軟盤非正常區(qū)間上的數(shù)據(jù)。
11.4.10反跟蹤技術(shù)
反跟蹤技術(shù)是防止破解者通過直接“跟蹤”軟件的執(zhí)行過程,如動(dòng)態(tài)調(diào)試、靜態(tài)反匯編等,來獲取重要信息和加密方法。一個(gè)加密軟件的安全性好壞很大程度上取決于軟件的反跟蹤能力。下面介紹一些反跟蹤技術(shù)的基本方法:1.在應(yīng)用程序啟動(dòng)時(shí),先判斷內(nèi)存中是否有調(diào)試程序,若發(fā)現(xiàn)有調(diào)試程序存在,程序?qū)⒕芙^運(yùn)行等。
2.對(duì)重要的程序段應(yīng)是不可修改的。3.綜合多種軟件加密方法,交叉使用不同的加密技術(shù)。4.設(shè)置跟蹤障礙,提高破解難度。5.一旦發(fā)現(xiàn)跟蹤行為,可以采取自毀行為,這將大大增加破解者的成本。6.當(dāng)應(yīng)用程序執(zhí)行到重要程序段之前,可以采用封鎖鍵盤輸入,封鎖顯示器和打印機(jī)輸出。待重要程序段任務(wù)完成后再解除鍵盤、顯示器和打印機(jī)封鎖。
7.為防止破解者通過修改堆棧指針的值來達(dá)到跟蹤目的,可將堆棧指針設(shè)在特定的區(qū)域,使堆棧指針指向無意義的操作。8.加密程序最好以分段的密文形式裝入內(nèi)存,執(zhí)行完一段程序后,再解密和執(zhí)行下一段程序,同時(shí)在內(nèi)存中刪除上一段程序。
11.4.11網(wǎng)絡(luò)軟件保護(hù)網(wǎng)絡(luò)加密產(chǎn)品的原理和使用:首先要在網(wǎng)絡(luò)上啟動(dòng)一個(gè)網(wǎng)絡(luò)加密狗(或加密卡)的加密服務(wù)程序,將使得網(wǎng)絡(luò)上所有合法用戶可以訪問到網(wǎng)絡(luò)狗。當(dāng)用戶在客戶機(jī)端運(yùn)行加密后的軟件時(shí),客戶機(jī)會(huì)向網(wǎng)絡(luò)中尋找提供加密服務(wù)的網(wǎng)絡(luò)狗。當(dāng)網(wǎng)絡(luò)狗存在并且返回正確檢測(cè)信息后,用戶被認(rèn)為是合法的,網(wǎng)絡(luò)軟件就可以正常使用了。
網(wǎng)絡(luò)加密產(chǎn)品適應(yīng)能力可以表現(xiàn)為:1.支持多操作系統(tǒng)。2.支持多協(xié)議。3.支持復(fù)雜網(wǎng)絡(luò)。4.支持多進(jìn)程。11.4.12補(bǔ)丁技術(shù)補(bǔ)丁技術(shù)主要是針對(duì)已發(fā)布的軟件漏洞和軟件功能更新所采取的軟件更新技術(shù),也是一種軟件保護(hù)方式。補(bǔ)丁技術(shù)主要有文件補(bǔ)丁和內(nèi)存補(bǔ)丁兩種。
1.文件補(bǔ)丁文件補(bǔ)丁就是直接修改文件本身某些數(shù)據(jù)或代碼,主要針對(duì)沒有被加密、加殼和CRC校驗(yàn)的目標(biāo)程序。
2.內(nèi)存補(bǔ)丁內(nèi)存補(bǔ)丁主要針對(duì)被加密、加殼、CRC校驗(yàn)的程序,內(nèi)存補(bǔ)丁的總體思想就是在目標(biāo)程序程序解密、解壓、校驗(yàn)等情況發(fā)生以后,在目標(biāo)程序的地址空間中修改數(shù)據(jù)。
11.5軟件加殼與脫殼11.5.1“殼”的概念“加殼”,就是用專門的工具或方法,在應(yīng)用程序中加入一段如同保護(hù)層的代碼,使原程序代碼失去本來的面目,從而防止程序被非法修改和編譯。用戶在執(zhí)行被加殼的程序時(shí),實(shí)際上是先執(zhí)行“外殼”程序,而由這個(gè)“外殼”程序負(fù)責(zé)把原程序在內(nèi)存中解開,并把控制權(quán)交還給解開后原程序。
加殼軟件按照其加殼目的和作用,可分為兩類:一是保護(hù),二是壓縮。1.保護(hù)程序這是給程序加殼的主要目的,就是通過給程序加上一段如同保護(hù)層的代碼,使原程序文件代碼失去本來的面目。它的主要目的在于反跟蹤,保護(hù)代碼和數(shù)據(jù),保護(hù)程序數(shù)據(jù)的完整性,防止程序被調(diào)試、脫殼等。2.壓縮程序這項(xiàng)功能應(yīng)該是加殼程序的附加功能。
注意用WinZip、WinRAR等文件壓縮文件,一般是不可執(zhí)行的。而這里對(duì)exe壓縮程序是可執(zhí)行的。殼的一般加載過程是:1.獲取殼自己所需要的API地址2.加密原程序的各個(gè)區(qū)塊的數(shù)據(jù)3.重定位4.HOOK-API
5.跳轉(zhuǎn)到程序原入口點(diǎn)11.5.2軟件加殼工具介紹現(xiàn)在用于壓縮程序?yàn)橹饕康牡某R娂託ぼ浖蠥SPacK、UPX和PECompact等,用于保護(hù)程序?yàn)橹饕康牡某R娂託ぼ浖蠥sProtect、tElock和幻影等。下面簡(jiǎn)單介紹一些常用的加殼軟件。
1.ASPackASPack是一款Win32高效保護(hù)性的壓縮軟件,文件壓縮比率高達(dá)40%~70%。ASPack無內(nèi)置解壓縮,不能自解壓自己壓縮過的程序。
2.ASProtectASProtect具有壓縮、加密、反跟蹤代碼、反-反匯編代碼、CRC校驗(yàn)和花指令等保護(hù)措施。它使用Blowfish等高強(qiáng)度的加密算法,還用RSA1024作為注冊(cè)密鑰生成器。它還通過API鉤子與加殼的程序進(jìn)行通信。
3.幻影(DBPE)
幻影具體功能有:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度互聯(lián)網(wǎng)企業(yè)股權(quán)收購(gòu)與整合協(xié)議
- 二零二五年度農(nóng)業(yè)科技企業(yè)員工借調(diào)與種植技術(shù)合同
- 二零二五年度智能硬件委托擔(dān)保服務(wù)協(xié)議
- 2025年度高空作業(yè)安全協(xié)議承諾書與高空作業(yè)設(shè)備檢測(cè)維修合同
- 2025年度智慧城市保安員聘用合同范本
- 2025年度高校學(xué)生社會(huì)實(shí)踐基地實(shí)習(xí)服務(wù)合同
- 2025年普洱貨運(yùn)從業(yè)資格證考些什么內(nèi)容
- 2025年福建貨運(yùn)從業(yè)資格證考試試題
- 2025年沈陽貨運(yùn)從業(yè)資格證考試題答案大全及解析
- 2025年黃山貨運(yùn)從業(yè)資格考題
- 矛盾論實(shí)踐論導(dǎo)讀
- 危重癥護(hù)理小組成員及職責(zé)
- 冠心病患者運(yùn)動(dòng)恐懼的現(xiàn)狀及影響因素分析
- 全國(guó)2018年10月自考00043經(jīng)濟(jì)法概論(財(cái)經(jīng)類)試題及答案
- 2019年10月自學(xué)考試00040法學(xué)概論試題及答案
- 《又見平遙》課件
- 噴涂設(shè)備點(diǎn)檢表
- GB/T 2831-2009光學(xué)零件的面形偏差
- 廣東省佛山市《綜合基礎(chǔ)知識(shí)》事業(yè)單位國(guó)考真題
- 第9課《魚我所欲也》課件(30張PPT) 部編版語文九年級(jí)下冊(cè)
- 02 第2章 城市與城市化-城市管理學(xué)
評(píng)論
0/150
提交評(píng)論