999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于增強型調度器的虛擬機軟件保護方法

2018-11-30 01:46:46
計算機應用與軟件 2018年11期
關鍵詞:指令安全性程序

謝 鑫 向 飛

1(湖南信息學院 湖南 長沙 410151)2(信息工程大學 河南 鄭州 450000)

0 引 言

伴隨著人工智能、大數據、物聯網、區塊鏈等新興技術的迅速發展,大量基于這些新興技術的軟件得到開發和應用,人們在使用這些頁面美觀、交互良好和操作便捷的軟件之時,卻往往忽略了軟件的安全性。提升軟件安全性是在軟件生命周期之中進行,如對軟件架構進行安全設計,對代碼進行安全性分析,對軟件進行安全性測試以及對軟件進行保護等。而軟件保護一般是在編碼中或者開發完成后采用若干安全技術對軟件進行保護,防止攻擊者的逆向分析和惡意篡改。

現有主流的軟件保護技術有代碼混淆技術(Code Obfuscation)、軟件水印技術(Software Watermarking)、軟件防篡改技術(Software Tampering)和軟件胎記技術(Software Birthmarking)等。代碼混淆技術通過對源代碼或二進制代碼進行等價變形,使得代碼形態、結構和內容對于逆向分析變得難以理解,從而大大增加攻擊時間和經濟開銷,迫使逆向分析者放棄攻擊的一種軟件保護技術。技術發展之初,學者Collberg將代碼混淆技術分為布局混淆、數據混淆、控制混淆和預防混淆,隨著近些年對于該技術的研究深入,研究熱點主要集中在采用虛擬機框架對軟件安全性進行保護。

2002年國外軟件安全研究人員公開了虛擬機保護技術的設計框架,并從C/C++編碼角度給出了實現原理[1]。隨后國內的看雪、吾愛破解等論壇上對該技術的討論和交流日益增多,緊接著越來越多基于虛擬機保護技術的商業工具被開發出來,并應用于各種軟件的安全保護之中,如VMProtect、CodeVirtualizer和Themida等。除此之外,軟件安全人員不斷對虛擬機框架的安全性進行改進,主要成果有:Fang等[2]設計了一種多層級的虛擬機強度增強方法,該方法首先對軟件中需要保護的指令序列進行虛擬機化,生成一系列虛擬指令序列和虛擬指令解釋函數,然后再對Handler中的若干指令進行虛擬機化,再次生成新的Handler,反復迭代該過程生成最終用于保護關鍵代碼的虛擬機保護框架。楊明等[3]在單重虛擬機保護框架基礎上引入嵌套思想,基于多個不同強度的虛擬機保護框架嵌套保護軟件關鍵代碼,若逆向攻擊者沒有完全分析清楚前一重虛擬機保護機制時,則無法開展對下一重虛擬機保護機制的分析。房鼎益等[4]為提升虛擬機框架安全性,首先在虛擬機保護中引入了基于扭曲變形的加密模塊,然后加入了基于時間多樣性思想[5]的保護技術,構造了多條等價執行路徑,可以使軟件在每次執行時路徑發生隨機改變,方法能有效抵御累積攻擊。之后又對Handler模塊進行數據流混淆,對謂詞進行隱藏,用雙進程對虛擬機框架進行保護,增強了框架抵御語義逆向攻擊的性能[6]。王懷軍等[7]為改進框架的保護強度,首先引入寄存器輪轉指令和防調試指令,然后基于路徑多樣化構造語義等價的變形Handler模塊,從而提升Handler模塊的整體強度[8-9]。張麗娜等[10]通過對字節碼進行加解密實現虛擬機強度改進。吳偉民等[11]在虛擬指令中嵌入虛擬花指令,并運用模糊變換技術提升虛擬指令系統的復雜程度。湯戰勇等[12]通過對虛擬機的指令集進行隨機化,使得受保護軟件的代碼呈現多樣化的形態。謝鑫等首先提出了將軟件中核心代碼進行并行化,然后基于多種虛擬機對不同的并行代碼片段進行保護[13],逆向攻擊者只有分析清楚并行算法和不同虛擬機機理才能獲取受保護代碼的語義。之后又對Handler模塊進行多樣化,變長切分和隨機亂序,用跳轉表對指令片段進行重組[14]。另外,還在虛擬機框架上引入了多種不同加解密算法,實現了基于Handler模塊的動態加解密保護方法[15]。

針對虛擬機保護的一般攻擊方法為:首先對虛擬機代碼入口進行定位[16],分析出虛擬機Dispatcher模塊的起始和終止位置,其次根據Dispatcher模塊的調度算法逐條讀取虛擬指令,分析每條虛擬指令對應Handler模塊的功能,最后對所有執行的虛擬指令序列進行優化,還原程序功能[17]?,F有對于虛擬機保護的研究主要集中在虛擬指令和Handler模塊的改進上,對Dispatcher模塊的增強保護研究較少,如Kuang等[18]提出了一種多Dispatcher虛擬機保護框架,赫朝輝[19]提出了一種混合式多層次Dispatcher結構,抗攻擊性得到了一定提升,但強度依然不高。針對Dispatcher模塊隱蔽性低和抵御靜、動態逆向攻擊強度不高的問題,提出一種基于增強型調度器的虛擬機軟件保護方法。

1 虛擬機保護基本原理

基于虛擬機的軟件保護方法主要采用虛擬化技術對軟件中關鍵算法所對應的指令序列進行虛擬化,然后通過嵌入軟件中的解釋器模塊對這些虛擬機指令進行解釋執行,從而完成軟件的正常運行。虛擬機框架核心為虛擬指令集和解釋器模塊,虛擬指令集需要能對本地x86匯編指令集進行完整表示,一條x86匯編指令一般對應一條或多條虛擬指令。解釋器模塊主要包括:用于保存臨時寄存器環境中寄存器值的虛擬機上下文結構(VMcontext),用于對虛擬指令進行解釋執行的Handlers模塊,用于對Handlers進行循環調用的Dispatcher模塊,用于表示虛擬指令序列的驅動數據(VMdata)以及環境初始化(VMinit)和退出模塊(VMexit)等。

若要運用虛擬機技術對程序進行保護,首先需定位程序需保護的核心算法,抽取目標指令序列,然后構建完備的虛擬指令集,對目標指令序列進行虛擬化,生成虛擬指令序列,再將虛擬指令序列轉化為字節碼形式的驅動數據,寫到原始程序空間之中,最后將VMcontext,Handlers和Dispatcher等模塊嵌入到需要保護的PE程序之中,生成保護后程序,基本原理如圖1所示。

圖1 基于虛擬機保護的基本原理

基于虛擬機保護后的軟件執行過程主要分為如下步驟:

1) 軟件開始執行,當代碼執行到保護代碼時,則轉向受保護軟件中嵌入的解釋器模塊執行。

2) 運用解釋器模塊中的初始化代碼對現場環境進行保存,如:將真實寄存器值保存到Vmcontext中,對某些寄存器賦初值等。

3) 執行Dispatcher模塊,從VMdata之中讀取字節數據,對字節碼數據進行解碼,得到虛擬指令對應的Handler索引值。

4) 通過索引值計算Handler函數在軟件中的地址,并轉向Handler函數代碼進行執行。

5) 執行完Handler指令序列后轉向步驟3,循環執行步驟3-步驟5,直到完成所有VMdata數據的解釋執行。

6) 還原虛擬機框架現場,跳出解釋器,執行程序后面未保護的代碼序列。

2 Dispatcher模塊安全性的增強方法

逆向攻擊者若要理解基于虛擬機保護的程序功能,則需分析清楚解釋器及相關模塊的工作機理和每一條虛擬指令的功能?,F有一些方法對虛擬指令和Handler強度進行了改進,使對于這些模塊的逆向分析變得困難,Dispatcher模塊成為了整個虛擬機保護框架中的短板,容易受到“動態跟蹤,靜態分析”的攻擊。針對Dispatcher模塊安全性不高的問題,提出一種對Dispatcher模塊安全性增強的方法,基本思想為:首先采用多樣化技術生成多種語義等價但形態各異的Dispatcher模塊指令序列,再按照語義將其切分成若干指令序列片段,隨機選擇指令序列片段進行加密和控制流迭代混淆處理,然后采用隨機函數將不同的指令片段進行連接,最后將新生成的指令序列以及加解密分散嵌入到受保護程序之中,Dispatcher模塊安全性增強框架如圖2所示,具體步驟如下:

1) 將Dispatcher代碼分成三部分:Dispatcher入口代碼序列I,Dispatcher核心代碼序列C和Dispatcher出口代碼序列O。

2) 將Dispatcher核心代碼序列C隨機劃分成長度各異的指令片段,記做C=(C1,C2,…,Cn)。

3) 采用等價指令替換和花指令插入等方法[14]對C中的所有指令片段進行多樣化,生成m種與C語義等價但形式不同的指令序列,記作S={S1,S2,…,Sm},其中Si=(A1i,A2i,…,Ani),且A1i和C1、A2i和C2、A3i和C3、…、Ani和Cn語義等價。

圖2 Dispatcher模塊安全性增強框架

4) 在多樣化代碼片段中隨機挑選若干指令序列,如A11、A2m、A22、A33、An1、Anm等,基于插入不透明謂詞的方法[20]對其進行k次控制流迭代混淆,具體原理如圖3所示。

圖3 基于不透明謂詞的k次迭代控制流混淆示意

5) 基于步驟4所生成的指令序列集合,再次隨機挑選指令序列片段,如A1m、A23、A32、An2、A11、A22等,運用多種不同的密碼算法對其進行加密處理。

6) 用隨機函數對每一層指令序列片段進行連接,如集合{A(i)1,A(i)2,…,A(i)m}中的每一個指令序列片段可隨機選擇執行其下一層指令序列集合{A(i+1)1,A(i+1)2,…,A(i+1)m}中任意一個片段,最后生成網狀結構的代碼路徑。

7) 將新生成的Dispatcher代碼和所有Handler函數代碼進行連接,并將新生成的Dispatcher模塊和用于程序動態執行的隨機、加密和解密函數分散嵌入到程序空間之中,如圖4所示。

圖4 Dispatcher模塊和加解密函數分散嵌入程序空間

3 理論分析

3.1 強度分析

強度分析為基于增強型Dispatcher的虛擬機抵御靜動態逆向分析攻擊的能力。原始虛擬機Dispatcher模塊代碼通常以未加密狀態存放在程序新增的區塊之中,攻擊者可以通過內存斷點方式找到模塊入口,并通過內存轉儲和反匯編等方法理解代碼執行流程和調度方式。而安全性增強的Dispatcher模塊代碼采用了多樣化技術,基于不透明謂詞對控制流進行了迭代混淆,而且對部分指令片段進行動態加解密處理。

若設原始虛擬機Dispatcher模塊執行路徑為1,通過指令多樣化技術可以生成m種語義等價且形式不同的指令序列,將所有語義等價的指令序列分為n層,并采用隨機函數對不同層指令序列進行連接,形成網狀結構。若攻擊者采用指令動態追蹤方法對Dispatcher模塊指令序列進行記錄,理論上共可得到mn種不同的程序執行路徑,大大增加了攻擊者動態跟蹤分析的難度。

安全性增強的Dispatcher模塊在生成多樣化指令序列時,基于不透明謂詞對若干指令片段進行控制流迭代混淆。若每進行一次控制流迭代混淆,控制流邊數目增加一倍,當迭代k次時,單個指令序列的控制流邊數目變成2k個,若隨機挑選i個指令序列進行混淆,則控制流邊數目將增長為i×2k個,極大增加了通過構建代碼控制流圖進行靜態逆向分析的難度。

另外,方法還對Dispatcher模塊中部分指令片段進行了加密處理,只有在程序動態運行時才解密運行。在程序未執行時,這些指令片段為加密狀態保存在程序中,直接采用靜態逆向分析方法對其解析將出現亂碼指令,同樣增加了受保護程序的分析難度。

3.2 開銷分析

開銷分析為混淆前后程序時間和空間對比分析?;谠鰪娦虳ispatcher模塊的虛擬機保護框架相比原始虛擬機保護框架增加了多層隨機函數,控制流迭代混淆中的不透明謂詞以及指令序列片段加解密三部分時間開銷。

3.2.1 時間開銷分析

1) 若將多樣化Dispatcher模塊劃分成n個指令片段,每一次隨機函數運行的平均時間為q,則時間開銷增長q×(n-1);

2) 若在Dispatcher模塊單次執行序列的n個指令片段中隨機選擇e1個指令片段進行k次控制流迭代,每次迭代插入的不透明謂詞運行平均時間為d,則時間開銷增長k×d×e1;

3) 若在Dispatcher模塊單次執行序列的n個指令片段中隨機選擇了e2個指令序列進行加密,每個指令片段解密平均時間為u,則時間開銷增長e2×u。由此可得,三部分總的時間開銷增長理論值為q×(n-1)+k×d×e1+e2×u。

若原始程序運行在某個計算環境下的時間開銷為X1。改進后的虛擬機保護框架中未引入加密方法時,則運用該框架對原始程序進行保護后的時間開銷為X2,該值一般為X1的1.5~10倍左右[5,12]。基于上述分析,若在現有虛擬機保護框架上再單獨對Dispatcher模塊進行安全性增強,則時間開銷將進一步增長,其增長的時間理論值為Z1=q×(n-1)+k×d×e1+e2×u。若Z值相比X2沒有大大增長,由于現有軟件和硬件計算能力不斷發展,本文增強方案將不會給受保護程序的正常運行造成影響。但如果Z1值相比X2得到大幅度增長,權衡時間開銷和安全性來說,Dispatcher模塊增強方案是一種性價比不高的選擇。因此,在對Dispatcher模塊進行安全性增強時,在保證方法具有一定強度的同時,要盡可能選擇運行速度快的隨機函數、加解密函數和不透明謂詞,控制指令片段e1、e2和迭代次數,以此降低整個調度器增強方案對于虛擬機原始保護框架時間開銷增長的影響。

3.2.2 空間開銷分析

空間開銷的增長主要包括隨機函數代碼空間,基于控制流迭代的不透明謂詞和冗余代碼空間,以及加解密函數代碼空間。設隨機函數有f1個,平均代碼空間為r1;進行了k次控制流迭代,插入f2個不透明謂詞,f3段冗余代碼,平均代碼空間為r2和r3;引入的f4個加解密函數平均代碼空間為r4,總空間開銷增長理論值為f1×r1+f2×r2+f3×r3+f4×r4。

若原始程序所占存儲空間為Y1。運用改進后的虛擬機保護框架對原始程序進行保護后所占存儲空間Y2一般為Y1的1.5~2倍左右[5,12]?;谏鲜龇治?,若在現有虛擬機保護框架上再單獨對Dispatcher模塊進行安全性增強,則空間開銷還將增長,其增長的理論值為Z2=f1×r1+f2×r2+f3×r3+f4×r4。若Z2值相比Y2沒有大大增長,由于現有內存和硬盤等存儲能力的提升,則本文增強方案將不會給受保護程序的存儲開銷帶來影響。但如果Z2值相比Y2大幅度增長,權衡空間開銷和安全性來說,Dispatcher模塊增強方案仍需進一步優化。因此,在對Dispatcher模塊進行安全性增強時,在保證方法具有一定強度的同時,要盡可能選擇占用存儲空間小的隨機函數、加解密函數和不透明謂詞,并且要對冗余代碼數目,迭代次數進行控制,以此降低空間開銷增長的影響。

3.3 反混淆分析

針對基于增強型Dispatcher模塊的虛擬機保護框架的反混淆攻擊,一般首先對增強型Dispatcher模塊進行代碼定位,然后采用反混淆技術對Dispatcher模塊代碼進行處理。

原始虛擬機保護框架由于Dispatcher模塊集中存儲在受保護程序中的特定空間,逆向攻擊者基于斷點跟蹤較為容易對其進行定位,并進行分析和理解。而在改進的虛擬機保護框架中將單一Dispatcher模塊轉化成多種語義等價且形式不同的Dispatcher模塊,并將代碼分散嵌入在整個程序空間的內部,這種方式增加了Dispatcher模塊的隱蔽性。而對于攻擊者而已,若要成功理解Dispatcher模塊,首先需對分散在整個程序空間的代碼進行定位,然后進行代碼語義整合,最后對多種不同形式的Dispatcher進行語義分析,極大增加了分析難度。

若要準確定位出多樣化后的Dispatcher代碼,則需采用反混淆技術對代碼進行處理。現有反混淆方法主要基于優化技術,典型方法有:等價指令整合、常量傳播和折疊、循環壓縮、流程優化等[21]。這些技術能在一定程度上能對指令進行約簡,對冗余流程進行去除,對代碼結構進行優化。但在安全增強型Dispatcher模塊中,不僅對代碼進行了多樣化處理,還挑選了一些代碼片段進行控制流膨脹,并采用加解密技術對部分指令片段進行了處理。若要對其進行反混淆,先要對加密指令片段進行解密,然后對控制流膨脹后的代碼進行定位、分析和約簡,最后對多樣化Dispatcher指令序列進行語義歸一化處理,而代碼解密,膨脹控制流結構約簡和代碼語義歸一都將大大增加攻擊者分析代價。

4 實驗驗證和分析

驗證實驗基本環境如下:

1) Intel(R) Core(TM) i3 CPU M380 2.53 Hz雙核處理器。

2) Windows 7 SP1 32位旗艦版操作系統,內存容量2 GB。

3) 運用Visual Studio2008對開源虛擬機框架(原始VM)[22]進行編譯,并基于該框架進行Dispatcher模塊安全性增強。

4) 基于C語言和標準插入排序(InsertionSort)、希爾排序(ShellSort)、快速排序(QuickSort)和冒泡排序(BubbleSort)算法實現了四款測試程序,以及4組(每組500個)隨機測試數據。

5) 在操作系統目錄C:WindowsSystem32下,挑選網絡功能控制臺應用程序ping.exe, route.exe和圖形化應用程序notepad.exe, regedt32.exe和mspaint.exe作為典型應用場景下的實際應用測試程序。

4.1 測試程序時間和空間開銷

生成四款排序測試程序,并在不同參數條件下,運用Dispatcher模塊安全性增強虛擬機框架對測試程序進行保護,運用生成的基準測試程序和受保護程序對測試數據進行排序,對比保護前后測試程序的時間和空間開銷。

4.1.1 Dispatcher指令序列多樣化

基于原始VM虛擬機框架,運用等價指令替換和花指令隨機嵌入等方法對Dispatcher指令序列進行多樣化,添加Dispatcher入口代碼,Dispatcher其他代碼不進行增強變換,將多樣化后語義等價Dispatcher數目記為M。當M=1為原始VM,不同M下測試程序時間和空間開銷如表1和表2所示。由表1和表2可知,原始VM框架對測試程序進行保護后,會給程序引入一定的時間和空間開銷。由于多樣化后不同路徑的Dispatcher指令序列規?;疽恢?,當Dispatcher路徑數目增多時,保護后程序空間開銷將會線性增長,而無論有多少種Dispatcher路徑,受保護程序每次執行時,都只選Dispatcher模塊中一條路徑執行,因此當M的值為1~5之間時,受保護程序的時間開銷基本穩定。

表1 不同Dispatcher數目下測試程序時間開銷

表2 不同Dispatcher數目下測試程序空間開銷

4.1.2 Dispatcher指令序列分片

基于Dispatcher參數M=4時的虛擬機保護框架,對指令序列進行分片,在每一層分片指令序列末尾采用隨機函數對分片代碼進行連接,而Dispatcher其他部分不進行安全性增強變換。將單個Dispatcher模塊執行序列的分片數目記為N,在不同分片數目下測試程序的時間和空間開銷,實驗數據如表3和表4所示。由表可知,向多樣化Dispatcher模塊中插入路徑隨機選擇函數時,將給受保護程序引入一定的時間和空間開銷。增長的時間開銷主要為連接不同指令片段間隨機選擇函數的執行時間,由于Dispatcher模塊在選擇調度執行Handler時,會被程序反復調度,因此Dispatcher模塊中指令分片數目越多,受保護程序所執行的時間開銷就越大。而增長的空間開銷是由于不同指令分片間所插入的隨機選擇函數占用空間決定的。當參數M=4、N=2時,表示在Dispatcher模塊中插入4個隨機選擇函數,當M=4、N=3時,插入4×2=8個隨機選擇函數,以此類推。

表3 不同分片數目下測試程序時間開銷

表4 不同分片數目下測試程序空間開銷

4.1.3 Dispatcher指令片段控制流迭代

基于Dispatcher參數M=4、N=4時的虛擬機保護框架,隨機選擇6個指令片段進行控制流迭代混淆,根據3.2中的理論分析,實驗設計和選擇運行速度快,所占存儲空間小,安全性高的基于二維超混沌映射方程組的不透明謂詞來對控制流進行迭代混淆[20],Dispatcher模塊中其他部分不進行安全性增強變換。記單個指令片段迭代次數為K,K=0時為虛擬機保護框架未進行控制流混淆的初始狀態,不同迭代次數下的測試程序時間和空間開銷如表5和表6所示。隨著迭代次數的增加,基于不透明謂詞的迭代控制流混淆方法將使得受保護程序的控制流循環復雜度[23]不斷增加,提升了虛擬機整體語義混淆能力。

表5 不同迭代次數下測試程序時間開銷

表6 不同迭代次數下測試程序空間開銷

4.1.4 Dispatcher指令片段加密

基于Dispatcher參數M=4、N=4和基于6個指令片段K=4時的虛擬機保護框架,隨機選擇Dispatcher模塊中的4個指令碎片進行加密,記為D=4,根據軟件保護有效性評估指標[23]和3.2中的理論分析,從算法簡單、實現便捷、加解密速度快、占用存儲空間小以及具有一定安全性的角度出發,實驗在虛擬機保護框架中嵌入了TEA、RC4和Xor三種不同形式的加解密函數模塊,記為X=3,運用該參數下的虛擬機框架(MNKDX_VM)對測試程序進行保護,并對比測試程序在商業虛擬CV和VMP保護下的時間和空間開銷。

一般虛擬機保護框架中,當Handler函數要執行時都要通過Dispatcher模塊對其進行調度執行。由于MNKDX_VM的Dispatcher模塊中引入了多種加密函數對指令片段進行加密處理,當Dispatcher模塊需執行時,首先要對該模塊中部分加密指令片段進行解密,然后再解密指令片段運行結束后,再次進行加密。該種方式將使程序運行時間大度增加,尤其在反復需要對Dispatcher模塊進行調度的排序程序之中,具體實驗數據如表7和表8。由此可得,在運用本文提出的Dispatcher安全性增強方法時,需要權衡保護強度和性能開銷,合理調整M、N、K、D和X五個參數,通常只對軟件中關鍵算法或模塊進行保護。

表7 不同虛擬機下測試程序時間開銷

表8 不同虛擬機下測試程序空間開銷

4.2 不同虛擬機下信息比較

對比不同虛擬機框架下受保護程序,相關信息如表9所示。商業級虛擬機框架CV和VMP中Handler數目比原始VM和MNKDX_VM要多,由于MNKDX_VM是基于原始VM框架的Dispatcher模塊強度升級,因此兩者Handler數目和指令序列狀態一致,MNKDX_VM中Dispatcher模塊中的指令狀態根據D數目部分或全部為密文。MNKDX_VM相比原始VM、CV和VMP在Dispatcher模塊強度上進行了改進,增加的加解密、隨機選擇和不透明謂詞等函數大幅度增加了逆向攻擊者的分析難度。

表9 不同虛擬機下測試程序信息比較

4.3 應用程序保護

為了測試本文方法在實際場景下針對典型應用程序的真實效果,在Win7操作系統下選取實驗材料5)中五款程序,分別采用CV、VMP和MNKDX_VM對其進行保護,相關實驗測試結果如表10和表11所示。由數據可得,未受到保護時的原始程序都可以正常運行,而且啟動時間都小于0.5秒,當采用VMP虛擬機保護軟件對其進行保護時,notepad和regedt32兩款圖形化程序依然可以正常運行,啟動時間小于1秒,而其他三款程序都不能正常啟動。當采用CV虛擬機保護軟件對應用程序進行保護時,本文分別選擇了其中速度最快的虛擬機引擎tiger32_red和復雜程度最高的虛擬機引擎eagle32_black;當采用CV對實際應用程序進行保護時,除了regedt32依舊能夠在較大的時間開銷(tiger32_red為3秒左右,eagle32_black為8秒左右)下正常運行,其他應用程序都不能夠正常啟動。而在設定M=4、N=4、K=4、D=4和X=3,采用本文虛擬機框架對這些應用程序進行保護時,五款程序都能夠正常運行,而且增長的時間開銷控制在一個較為合理的范圍。另外從實際場景下的應用程序所占系統空間來看,本文方法保護后的程序所占系統空間相比CV和VMP有較大幅度的降低。

表10 不同虛擬機下應用程序運行狀態

續表10

表11 不同虛擬機下應用程序空間開銷

5 結 語

本文針對現有虛擬機保護框架中Dispatcher模塊抗逆向攻擊安全性不高的問題,提出一種Dispatcher模塊安全性的增強方法,提升了虛擬機保護框架中Dispatcher模塊代碼對靜態反匯編、內存斷點和優化等逆向分析難度,提升了虛擬機保護框架的整體安全性。該方法同樣適用于現有其他虛擬機Dispatcher模塊的強度升級。但在強度提升的同時,將給受保護程序引入一些額外的函數及運行控制信息,會帶來一定的時間和空間開銷。在實際使用本文方法時,需要合理對不同參數進行設置,以平衡保護強度和性能開銷。下一步將對控制流迭代混淆和加解密方案進行優化,并在大量具有不同結構的程序基礎上,對本文相關參數的最優選擇問題進行深入研究。

猜你喜歡
指令安全性程序
聽我指令:大催眠術
兩款輸液泵的輸血安全性評估
新染料可提高電動汽車安全性
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
ApplePay橫空出世 安全性遭受質疑 拿什么保護你,我的蘋果支付?
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 国产凹凸一区在线观看视频| 国产精品久久久久无码网站| 亚洲码在线中文在线观看| 国产91蝌蚪窝| 久夜色精品国产噜噜| 亚洲精品天堂自在久久77| 国产91全国探花系列在线播放 | 精品自拍视频在线观看| 91精品伊人久久大香线蕉| 亚洲天堂网在线观看视频| 久久久久88色偷偷| 97人人模人人爽人人喊小说| 国产激情无码一区二区免费| 久久久久久尹人网香蕉| 亚洲欧美成aⅴ人在线观看| 国产性生交xxxxx免费| 欧美精品伊人久久| 亚洲天堂区| 久久精品亚洲热综合一区二区| 好吊色妇女免费视频免费| 在线亚洲小视频| 国产白丝av| 免费看a级毛片| 国产精品视屏| 亚洲香蕉久久| 色欲国产一区二区日韩欧美| 日本一区高清| 55夜色66夜色国产精品视频| 国产高潮流白浆视频| 久久免费成人| 欧美一区二区三区不卡免费| 国产精品流白浆在线观看| 欧美一区二区三区不卡免费| 久久久久久午夜精品| 国外欧美一区另类中文字幕| 永久毛片在线播| 中文字幕乱码二三区免费| 91精品网站| 国产精品无码翘臀在线看纯欲| 真人免费一级毛片一区二区| 国产成人8x视频一区二区| 国产精品人莉莉成在线播放| 91久草视频| 婷婷六月综合网| 亚洲中字无码AV电影在线观看| 日本AⅤ精品一区二区三区日| 高清无码一本到东京热| 在线观看精品自拍视频| 狠狠五月天中文字幕| 国产精品区视频中文字幕 | 日韩精品免费一线在线观看| 国产成人无码AV在线播放动漫| 一级全免费视频播放| 在线亚洲小视频| av在线5g无码天天| 久久国产亚洲偷自| 亚洲一级毛片在线观| 国产制服丝袜91在线| 免费av一区二区三区在线| 午夜在线不卡| 2020极品精品国产 | 欧美国产日韩在线| 久久无码av三级| 青青草原国产免费av观看| 女人18一级毛片免费观看| 国产精品午夜福利麻豆| 国产高清不卡视频| 欧美黄网站免费观看| 国产乱子伦精品视频| 成人字幕网视频在线观看| 免费人成在线观看成人片| 国产福利免费在线观看| 亚洲欧洲日韩国产综合在线二区| 亚洲午夜天堂| 成人精品午夜福利在线播放| 亚洲日韩精品伊甸| 全免费a级毛片免费看不卡| 国产91透明丝袜美腿在线| 三级毛片在线播放| 在线亚洲精品福利网址导航| 欧美激情第一区| 亚洲精品国产精品乱码不卞|