




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