亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于虛擬機(jī)Handler動(dòng)態(tài)加解密的軟件保護(hù)方法及實(shí)現(xiàn)

        2018-01-03 01:55:08
        關(guān)鍵詞:加解密斷點(diǎn)解密

        謝 鑫 馬 凌 陳 亮

        (湖南信息學(xué)院 湖南 長沙 410151)

        一種基于虛擬機(jī)Handler動(dòng)態(tài)加解密的軟件保護(hù)方法及實(shí)現(xiàn)

        謝 鑫 馬 凌 陳 亮

        (湖南信息學(xué)院 湖南 長沙 410151)

        考慮到Handler序列為逆向分析者的重點(diǎn)攻擊對(duì)象。針對(duì)Handler指令序列的內(nèi)存轉(zhuǎn)儲(chǔ)分析以及起始和終止點(diǎn)的斷點(diǎn)分析,提出一種基于虛擬機(jī)Handler動(dòng)態(tài)加解密的軟件保護(hù)方法,在基于虛擬機(jī)的軟件保護(hù)方法上,增加加密和解密代碼模塊,并將所有Handler進(jìn)行加密保存。當(dāng)程序執(zhí)行到某個(gè)Handler時(shí),先將加密過的Handler進(jìn)行解密并執(zhí)行,執(zhí)行完成后再次對(duì)其進(jìn)行加密,直到所有Handler序列執(zhí)行結(jié)束。實(shí)驗(yàn)和分析表明:該方法能夠有效防止攻擊者對(duì)于Handler的起始和終止位置進(jìn)行斷點(diǎn)調(diào)試分析和內(nèi)存轉(zhuǎn)儲(chǔ)分析。

        逆向分析 虛擬機(jī)保護(hù) 動(dòng)態(tài)加密和解密 內(nèi)存轉(zhuǎn)儲(chǔ) 斷點(diǎn)調(diào)試

        0 引 言

        隨著現(xiàn)代社會(huì)的快速發(fā)展,軟件技術(shù)也得以不斷更新,新開發(fā)出來的軟件產(chǎn)品應(yīng)用于人們?nèi)粘I畹母鱾€(gè)領(lǐng)域,同時(shí)產(chǎn)生了如反匯編、反編譯、動(dòng)態(tài)斷點(diǎn)調(diào)試和內(nèi)存轉(zhuǎn)儲(chǔ)分析等眾多程序理解方法[1]。這些方法不僅可以用于分析軟件的安全性和維護(hù)軟件功能,同時(shí)可以用來對(duì)軟件進(jìn)行逆向分析,分析軟件中的關(guān)鍵算法和核心數(shù)據(jù),并結(jié)合篡改、移植和重構(gòu)等方法構(gòu)造盜版軟件。最后通過拷貝、郵件、論壇和即時(shí)通信工具等方式進(jìn)行傳播,獲取非法經(jīng)濟(jì)利益。

        為了抵御針對(duì)軟件核心數(shù)據(jù)和關(guān)鍵代碼的逆向分析,防止軟件中的核心模塊被惡意利用,軟件加密[2-3]、軟件水印[4]、代碼混淆[5]和防篡改[6]技術(shù)等相繼被提出。而基于虛擬機(jī)的保護(hù)技術(shù)為軟件保護(hù)領(lǐng)域近些年來對(duì)抗軟件逆向分析和破解的新技術(shù),其為代碼混淆技術(shù)的延伸和增強(qiáng),也為軟件保護(hù)領(lǐng)域研究的熱點(diǎn)方向?,F(xiàn)有對(duì)于虛擬機(jī)保護(hù)的研究主要有:Shi等采用兩種方式比較了基于棧架構(gòu)和寄存器架構(gòu)虛擬機(jī)之間的異同,分析了兩類虛擬機(jī)的代碼量和運(yùn)行時(shí)間[7]。為了平衡性能開銷和保護(hù)強(qiáng)度,房鼎益等將扭曲變換的思想引入到虛擬機(jī)保護(hù)之中,通用模塊采用低強(qiáng)度保護(hù),核心模塊采用高強(qiáng)度保護(hù)[8]。王懷軍等利用寄存器輪轉(zhuǎn)思想從虛擬機(jī)上下文出發(fā)對(duì)虛擬機(jī)進(jìn)行強(qiáng)度提升,并在其虛擬機(jī)保護(hù)框架中引入反調(diào)試指令[9]。接著為了抵御累計(jì)經(jīng)驗(yàn)攻擊,其又引入路徑多樣性的方法對(duì)虛擬機(jī)進(jìn)行保護(hù)強(qiáng)度的升級(jí)[10-11]。楊明等分析了單虛擬機(jī)原理,提出多重虛擬機(jī)嵌套保護(hù)軟件的方法。這種保護(hù)使得攻擊者必須要完全分析清楚前一層虛擬機(jī),才能對(duì)下一層嵌套的虛擬機(jī)進(jìn)行分析,但這種方法給虛擬機(jī)引入了極大的時(shí)間開銷[12]。謝鑫等人從代碼并行化和虛擬機(jī)多樣化的角度提出了一種軟件保護(hù)方法。該方法使得攻擊者需要分析不同虛擬機(jī)的機(jī)制和并行代碼片斷才能分析得到受保護(hù)代碼的語義[13]。之后又從Handler序列多樣化的角度對(duì)虛擬機(jī)保護(hù)進(jìn)行了強(qiáng)度的改進(jìn)[14]。除了虛擬機(jī)保護(hù)的正向研究,部分學(xué)者還從對(duì)虛擬機(jī)的反向攻擊的角度開展研究,如Coogan等引入語義識(shí)別的思想,重點(diǎn)識(shí)別基于代碼混淆的虛擬指令[15],這些指令影響了程序的可觀察行為。Sharif等利用程序理解方法對(duì)被混淆的軟件進(jìn)行動(dòng)態(tài)分析,并在虛擬機(jī)保護(hù)軟件運(yùn)行時(shí)利用模擬器記錄了指令的執(zhí)行軌跡[16]。雷遠(yuǎn)曉先將虛擬機(jī)種的Handler處理函數(shù)運(yùn)用指令追蹤的方法動(dòng)態(tài)提取后,再采用程序分析方法對(duì)其進(jìn)行靜態(tài)理解,從而達(dá)到對(duì)Handler序列的還原[17]。

        對(duì)于虛擬機(jī)保護(hù)的攻擊往往需要對(duì)Handler進(jìn)行語義分析和還原處理,而該過程的第一步為Handler序列的定位分析,攻擊者通常采用內(nèi)存斷點(diǎn)調(diào)試和轉(zhuǎn)儲(chǔ)分析的形式對(duì)Handler的起始,終止位置以及指令序列進(jìn)行分析。針對(duì)對(duì)于虛擬機(jī)Handler序列的斷點(diǎn)調(diào)試和轉(zhuǎn)儲(chǔ)分析,在一般虛擬機(jī)保護(hù)框架上,提出了一種基于Handler序列的動(dòng)態(tài)加解密虛擬機(jī)(EDVM)保護(hù)方法以及具體實(shí)現(xiàn)過程。

        1 基于Handler動(dòng)態(tài)加解密虛擬機(jī)保護(hù)

        根據(jù)現(xiàn)有文獻(xiàn)對(duì)虛擬機(jī)保護(hù)原理的描述可知,Handler序列為不同虛擬機(jī)保護(hù)框架的核心部分,也是逆向攻擊者對(duì)于虛擬機(jī)進(jìn)行反向攻擊的重點(diǎn)對(duì)象。針對(duì)Handler序列的還原分析往往需要通過多次斷點(diǎn)分析確定單個(gè)Handler的起始和終止位置,并通過內(nèi)存轉(zhuǎn)儲(chǔ)的手段分析各個(gè)Handler序列的具體語義。為了增強(qiáng)虛擬機(jī)保護(hù)強(qiáng)度,抵御上述分析手段,對(duì)虛擬機(jī)中Handler執(zhí)行過程進(jìn)行改進(jìn),采用多種加解密算法對(duì)Handler序列的執(zhí)行進(jìn)行處理。

        1.1 基本思想

        虛擬機(jī)保護(hù)方法在Handler序列生成時(shí)候,首先運(yùn)用多種不同的加密算法對(duì)Handler序列的字節(jié)碼進(jìn)行加密,保存不同加密算法的使用順序。當(dāng)程序運(yùn)行到第一個(gè)Handler序列時(shí),依據(jù)加密算法使用順序選擇解密算法對(duì)Handler進(jìn)行解密,執(zhí)行完成該Handler序列時(shí),再對(duì)其進(jìn)行加密。然后對(duì)下一個(gè)Handler進(jìn)行同樣的解密和加密處理,反復(fù)該過程,直到所有Handler序列的執(zhí)行結(jié)束?;贖andler序列的動(dòng)態(tài)加解密原理如圖1所示。

        圖1 基于Handler序列的動(dòng)態(tài)加解密思想

        1.2 實(shí)現(xiàn)步驟

        基于虛擬機(jī)保護(hù)的一般框架和Handler動(dòng)態(tài)加解密思想,Handler序列的動(dòng)態(tài)加解密虛擬機(jī)保護(hù)具體實(shí)現(xiàn)步驟如下:

        1) 構(gòu)建N種加解密算法集合S={,,,…,}。

        2) 提取虛擬機(jī)指令對(duì)應(yīng)的Handler字節(jié)碼集合SH={BH1,BH2,BH3,…,BHM}。

        3) 在加密算法集合中隨機(jī)挑選加密算法函數(shù)對(duì)Handler字節(jié)碼進(jìn)行加密生成加密后的Handler字節(jié)碼集合ESH={Ei(BH1,key1),Ej(BH2,key2),Ek(BH3,key3),…,Ed(BHM,keyM)}和加密密鑰集合KSH={key1,key2,key3,…,keyM},將其保存到程序新節(jié)之中。

        4) 依據(jù)Handler加解密執(zhí)行順序,修改虛擬機(jī)保護(hù)中的分派函數(shù)和Handler序列結(jié)束時(shí)的轉(zhuǎn)移指令。

        5) 當(dāng)程序Handler執(zhí)行時(shí),首先運(yùn)用對(duì)應(yīng)的解密算法和密鑰對(duì)加密Handler進(jìn)行解密處理,如Di(Ei(BH1,key1),key1)。然后執(zhí)行原始Handler序列BH1,執(zhí)行完成后再將其加密回去Ei(BH1,key1)。處理下一個(gè)加密Handler,直到Handler處理結(jié)束。

        依據(jù)該實(shí)現(xiàn)步驟,原始程序和EDVM保護(hù)后的PE程序內(nèi)存布局如圖2所示。原始PE程序?yàn)闃?biāo)準(zhǔn)的Windows可執(zhí)行程序內(nèi)存布局組織結(jié)構(gòu),VM保護(hù)后的PE程序修改了待保護(hù)的匯編指令流,增加了跳轉(zhuǎn)表、虛擬指令系統(tǒng)、ByteCode等數(shù)據(jù)。而EDVM保護(hù)在VM保護(hù)的框架上添加了多種加密和解密函數(shù)模塊,并且增加了密鑰和Handler序列長度數(shù)據(jù)信息,以便于實(shí)現(xiàn)動(dòng)態(tài)Handler序列的加密和解密。

        圖2 原始PE和EDVM保護(hù)后PE內(nèi)存布局

        為了實(shí)現(xiàn)Handler序列的動(dòng)態(tài)加解密,需要對(duì)虛擬機(jī)Handler調(diào)度器進(jìn)行重新設(shè)計(jì),依據(jù)Handler的加密順序以及相應(yīng)的加密函數(shù),EDVM的Handler調(diào)度器原理如圖3所示。首先受保護(hù)程序基于初始化代碼進(jìn)入EDVM調(diào)度器中的分派函數(shù),根據(jù)調(diào)度地址表和加密函數(shù)使用順序,選擇解密函數(shù)隊(duì)Handler進(jìn)行解密操作。執(zhí)行完解密后的Handler,跳轉(zhuǎn)到相應(yīng)加密函數(shù),再次對(duì)執(zhí)行完的Handler進(jìn)行加密,該過程執(zhí)行完成后返回到分派函數(shù)重新進(jìn)行調(diào)度執(zhí)行。循環(huán)該過程,一直到所有需要執(zhí)行的Handler序列全部執(zhí)行完畢后,退出虛擬機(jī)保護(hù)框架。

        圖3 EDVM調(diào)度器原理示意

        2 理論分析

        2.1 強(qiáng)度分析

        強(qiáng)度分析為基于EDVM虛擬機(jī)保護(hù)的程序抵御逆向攻擊者采用靜態(tài)和動(dòng)態(tài)程序逆向分析方法的能力。未經(jīng)過改進(jìn)的虛擬機(jī)所有Handler指令序列都以明文的形式保存在被保護(hù)程序中新增加的節(jié)里,攻擊者通過內(nèi)存斷點(diǎn)、轉(zhuǎn)儲(chǔ)和反匯編分析,能夠準(zhǔn)確地分析Handler指令序列的語義。而基于Handler加解密的虛擬機(jī)保護(hù)方法,使得所有Handler指令序列只有在將要執(zhí)行的時(shí)候才以明文的形式加載在內(nèi)存中。通過內(nèi)存轉(zhuǎn)儲(chǔ)分析,每次只能獲取單個(gè)解密后的Handler指令序列,其他Handler指令序列都以加密數(shù)據(jù)形式保存在內(nèi)存中。此種方式可有效抵御程序執(zhí)行時(shí)的Handler轉(zhuǎn)儲(chǔ)分析。

        對(duì)于未經(jīng)過改進(jìn)的虛擬機(jī)的Handler序列分析,可以通過在Handler的起始和終止位置進(jìn)行斷點(diǎn)設(shè)置,多次執(zhí)行、追蹤和分析Handler指令序列的運(yùn)行軌跡。若基于EDVM保護(hù),在Handler指令序列解密后對(duì)其起始和終止位置進(jìn)行斷點(diǎn)設(shè)置。再次加載程序時(shí),由于Handler指令序列的加密保存,無法在加密情況下對(duì)Handler指令序列的起始和終止位置進(jìn)行斷點(diǎn)設(shè)置,需要Handler完全解密后才能對(duì)相關(guān)指令進(jìn)行斷點(diǎn)設(shè)置。該方式在一定程度上防止了斷點(diǎn)調(diào)試分析。

        采用多種加密函數(shù)對(duì)不同的Handler進(jìn)行處理,若要靜態(tài)分析所有的Handler指令序列,則需要獲取相關(guān)密鑰,并對(duì)不同的加解密函數(shù)進(jìn)行逆向分析。相比未經(jīng)過改進(jìn)的虛擬機(jī)保護(hù),大大提升了分析難度。

        2.2 開銷分析

        開銷分析主要包括原始受保護(hù)程序應(yīng)用Handler動(dòng)態(tài)加解密虛擬保護(hù)后的時(shí)間和空間開銷?;贓DVM保護(hù)和原虛擬機(jī)的程序,其所增加的時(shí)間開銷為對(duì)所有執(zhí)行Handler序列的加密和解密的時(shí)間開銷。若原始代碼經(jīng)過虛擬機(jī)保護(hù)后執(zhí)行Handler1,Handler2,…,Handlern,而基于Handler動(dòng)態(tài)加解密的虛擬機(jī)保護(hù)則對(duì)其中的Handler1,Handler2,…,Handleri采用E1和D1進(jìn)行加解密,Handleri+1,…,Handlerj,采用E2和D2進(jìn)行加解密,Handlerj+1,…,Handlern采用E3和D3進(jìn)行加解密。若T為加解密時(shí)間,則時(shí)間增加了:T(E1(Handler1))+T(D1(Handler1))+…+T(E1(Handleri))+T(D1(Handleri))+T(E2(Handleri+1))+T(D2(Handleri+1))+…+T(E2(Handlerj))+T(D3(Handlerj))+T(E3(Handlerj+1))+T(D3(Handleri+1))+…+T(E3(Handlern))+T(D3(Handlern))。

        基于Handler動(dòng)態(tài)加密和解密的空間開銷主要包含在以下幾個(gè)部分,如圖 2所示。增加了多種加密和解密函數(shù)模塊,用于加解密的密鑰和Handler指令序列大小數(shù)據(jù)。設(shè)單個(gè)加密密鑰占k大小程序空間,單個(gè)Handler指令序列大小數(shù)據(jù)占d大小程序空間。S表示加解密函數(shù)模塊所占程序空間,則空間增長S(E1)+S(D1)+…+S(E3)+S(D3)+n×(k+d)。

        3 實(shí)驗(yàn)驗(yàn)證

        本文的試驗(yàn)環(huán)境的基本配置如下:采用的處理器為Intel(R) Core(TM) 2 CPU 1.86 GHz,程序運(yùn)行的系統(tǒng)為XP Professional 5.1.2600 SP3,運(yùn)行的環(huán)境為VS 2008。在公開其源代碼的虛擬機(jī)上[18],實(shí)現(xiàn)了一個(gè)基于EDVM保護(hù)原型驗(yàn)證系統(tǒng),對(duì)插入、希爾、快速、和冒泡四款排序程序進(jìn)行了相關(guān)實(shí)驗(yàn)和分析。

        3.1 內(nèi)存代碼對(duì)比分析

        使用開源輕量級(jí)虛擬機(jī)VM和基于Handler動(dòng)態(tài)加解密虛擬機(jī)EDVM分別對(duì)四款基準(zhǔn)程序進(jìn)行保護(hù),其中EDVM的加解密函數(shù)模塊采用簡單的xor加解密方式進(jìn)行實(shí)現(xiàn),生成相應(yīng)保護(hù)后的PE程序。采用二進(jìn)制動(dòng)態(tài)調(diào)試工具OllyDbg對(duì)其進(jìn)行反匯編分析,對(duì)采用VM和EDVM保護(hù)后的希爾排序程序進(jìn)行分別分析。兩者的分派函數(shù)如圖4所示,VM的分派函數(shù)直接根據(jù)跳轉(zhuǎn)地址表跳轉(zhuǎn)到Handler中執(zhí)行,而EDVM的分派函數(shù)則需要首先根據(jù)密鑰,解密數(shù)據(jù)大小和解密函數(shù)地址跳轉(zhuǎn)到解密函數(shù)模塊,基于解密代碼解密需要執(zhí)行的Handler序列。然后再根據(jù)Handler地址表跳轉(zhuǎn)到解密后的Handler進(jìn)行執(zhí)行,執(zhí)行完成后跳轉(zhuǎn)到加密函數(shù)進(jìn)行執(zhí)行,如圖5所示,最終返回到分派函數(shù)。提取VM和EDVM中的VBegin虛擬指令進(jìn)行對(duì)比分析,如圖6(左)所示,其為實(shí)現(xiàn)VBegin虛擬指令的x86匯編指令序列,圖6(右)為經(jīng)過加密后的VBegin虛擬指令,在沒有進(jìn)行解密時(shí)無法直接對(duì)VBegin虛擬指令的語義進(jìn)行分析。

        圖4 基于VM(左)和EDVM(右)保護(hù)的PE程序分派函數(shù)

        圖5 基于EDVM保護(hù)的加密(左)和解密(右)函數(shù)模塊

        圖6 基于VM(左)和EDVM(右)保護(hù)的VBegin指令Handler函數(shù)序列

        3.2 時(shí)間和空間開銷對(duì)比和分析

        使用開源輕量級(jí)虛擬機(jī)VM、虛擬機(jī)CV、VMP和基于Handler動(dòng)態(tài)加解密虛擬機(jī)EDVM分別對(duì)四款基準(zhǔn)程序進(jìn)行保護(hù)。其中CV類型參數(shù)為TIGER32 (White) VM,VMP的編譯參數(shù)設(shè)置為虛擬,EDVM的加解密函數(shù)包含TEA、RC4、BlowFish和Xor四種加解密算法。在EDVM中隨機(jī)運(yùn)用四種加解密算法對(duì)虛擬機(jī)中的除分派函數(shù)和堆棧平衡檢查函數(shù)的所有Handler序列進(jìn)行加密,并在程序執(zhí)行的過程中動(dòng)態(tài)加解密。

        設(shè)有4組每組500個(gè)隨機(jī)數(shù)的基準(zhǔn)測試數(shù)據(jù),運(yùn)用基準(zhǔn)測試程序?qū)ζ溥M(jìn)行排序,虛擬機(jī)保護(hù)前后程序大小為表1所示??梢园l(fā)現(xiàn)由于四種加解密函數(shù)模塊、加解密密鑰和Handler長度數(shù)據(jù)的寫入保護(hù)程序,基于EDVM保護(hù)的程序相比基于VM保護(hù)的程序空間增長了40 KB左右,而商業(yè)級(jí)虛擬機(jī)CV和VMP保護(hù)由于其中的Handler數(shù)目比VM和EDVM數(shù)量要多,保護(hù)后程序的空間開銷大大增長。

        表1 虛擬機(jī)保護(hù)前后程序大小 KB

        執(zhí)行原始程序和應(yīng)用不同虛擬機(jī)保護(hù)后的程序,測量其執(zhí)行時(shí)間可以發(fā)現(xiàn)由于EDVM引入了多樣化Handler的動(dòng)態(tài)加解密技術(shù),在執(zhí)行每一條虛擬機(jī)指令時(shí)都要進(jìn)行Handler的解密、執(zhí)行和加密。該種方式能夠防止程序在執(zhí)行過程中對(duì)于Handler完整指令數(shù)據(jù)的轉(zhuǎn)儲(chǔ)分析,但卻較大地增加了程序的運(yùn)行時(shí)間,尤其是對(duì)包含多次循環(huán)執(zhí)行的排序程序。具體時(shí)間開銷如表2所示,采用Handler動(dòng)態(tài)加解密的虛擬機(jī)保護(hù)的程序,運(yùn)行時(shí)間將大幅度增加,因此需要考慮保護(hù)強(qiáng)度和性能開銷平衡的問題。一般來說,采用EDVM只對(duì)少量核心代碼進(jìn)行保護(hù),否則將產(chǎn)生較大的時(shí)間開銷。

        表2 虛擬機(jī)保護(hù)前后運(yùn)行時(shí)間 ms

        3.3 不同虛擬機(jī)保護(hù)程序的信息比較和分析

        分析不同虛擬機(jī)保護(hù)后的程序,其中Handler數(shù)目、序列狀態(tài)和新增數(shù)據(jù)如表3所示??芍虡I(yè)級(jí)虛擬機(jī)軟件CV和VMP中虛擬指令對(duì)應(yīng)的Handler數(shù)目較多,而對(duì)于輕量級(jí)虛擬機(jī)VM和基于VM改進(jìn)的動(dòng)態(tài)加解密EDVM中的Handler數(shù)目較少。CV、VMP和VM虛擬機(jī)保護(hù)中的Handler為非加密明文指令序列,在程序執(zhí)行過程中直接進(jìn)行執(zhí)行。動(dòng)態(tài)加解密EDVM虛擬機(jī)保護(hù)中的Handler為加密密文數(shù)據(jù),在程序執(zhí)行過程中通過解密后才能執(zhí)行。由于CV、VMP和VM基于虛擬機(jī)保護(hù)一般性實(shí)現(xiàn)框架,保護(hù)中程序新增的數(shù)據(jù)為跳轉(zhuǎn)表、虛擬指令系統(tǒng)和字節(jié)碼序列。而由于EDVM需要實(shí)現(xiàn)Handler序列的動(dòng)態(tài)加解密,則向程序增加了多種加解密函數(shù)模塊、加解密密鑰數(shù)據(jù)和用于Handler加解密的長度信息。

        表3 不同虛擬機(jī)保護(hù)后程序的信息比較

        4 結(jié) 語

        本文針對(duì)Handler的內(nèi)存斷點(diǎn)分析和轉(zhuǎn)儲(chǔ)分析,對(duì)輕量級(jí)虛擬VM進(jìn)行改進(jìn),提出一種基于虛擬機(jī)Handler動(dòng)態(tài)加解密的軟件保護(hù)方法和具體實(shí)現(xiàn),提升了Handler序列對(duì)于靜態(tài)反匯編、內(nèi)存斷點(diǎn)和內(nèi)存轉(zhuǎn)儲(chǔ)的分析難度,提升了利用虛擬機(jī)框架對(duì)軟件進(jìn)行保護(hù)的安全強(qiáng)度。然而不足的是對(duì)Handler進(jìn)行動(dòng)態(tài)加解密需在程序中添加加解密函數(shù)、密鑰、Handler長度等信息,給程序引入了一定的空間開銷,而且由于Handler的動(dòng)態(tài)加解密執(zhí)行,使得程序的時(shí)間開銷有較大的增長,該方法需要進(jìn)一步的優(yōu)化和完善。

        [1] 薛芳芳,房鼎益,王懷軍,等.基于攻擊目的的軟件攻擊分類方法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(2):283-287.

        [2] Kleber S,Unterstein F,Matousek M,et al.Secure Execution Architecture based on PUF-driven Instruction Level Code Encryption[J].IACR Cryptology ePrint Archive,2015,651:1-26.

        [3] 高琦,劉克勝,常超,等.基于自修改字節(jié)碼的Android軟件保護(hù)技術(shù)研究[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(4):230-234.

        [4] 王葉茂,車生兵.軟件水印及其研究現(xiàn)狀概述[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(4):6-10.

        [5] 宣以廣,周華.基于字符熵的JavaScript代碼混淆自動(dòng)檢測方法[J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(1):309-312.

        [6] 馬巧梅,胡沙沙,陳夠喜.基于完整性驗(yàn)證的軟件防篡改方案[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(8):312-314,318.

        [7] Shi Y H,Kevin C,Anton E,et al.Virtual machine showdown:stack versus registers[J].ACM Transactions on Architecture and Code Optimization,2008,4(4):1-36.

        [8] Fang D,Gao L,Tang Z,et al.A Software Protection Framework Based on Thin Virtual Machine Using Distorted Encryption[C]//International Conference on Network Computing and Information Security.IEEE,2011:266-271.

        [9] Wang H J,Fang D Y,Li G H.NISLVMP:improved virtual machine-based software protection[C]//Proceedings of Ninth International Conference on Computational Intelligence and Security,2013:479-483.

        [10] Wang H,Fang D,Li G,et al.TDVMP:Improved Virtual Machine-Based Software Protection with Time Diversity[C]//ACM Sigplan on Program Protection and Reverse Engineering Workshop.ACM,2014:1-9.

        [11] 王懷軍,房鼎益,董浩,等.白盒環(huán)境中防動(dòng)態(tài)攻擊的軟件保護(hù)方法研究[J].電子學(xué)報(bào),2014,42(3):529-537.

        [12] 楊明,黃劉生.一種采用嵌套虛擬機(jī)的軟件保護(hù)方案[J].小型微型計(jì)算機(jī)系統(tǒng),2011,32(2):237-241.

        [13] 謝鑫,劉粉林,蘆斌,等.一種基于代碼并行化和虛擬機(jī)多樣化的軟件保護(hù)方法[J].小型微型計(jì)算機(jī)系統(tǒng),2015,36(11):2588-2593.

        [14] 謝鑫,劉粉林,蘆斌,等.Handler混淆增強(qiáng)的虛擬機(jī)保護(hù)方法[J].計(jì)算機(jī)工程與應(yīng)用,2016,52(15):146-152.

        [15] Kevin C,Gen L,Saumya D.Deobfuscation of virtualization-obfuscated software a semantics-based approach[C]//Proceedings of the 18th ACM conference on Computer and Communications Security,2011:275-284.

        [16] Sharif M,Lanzi A,Giffin J,et al.Automatic reverse engineering of malware emulators[C]//Proceedings of 30th IEEE Symposium on Security and Privacy,2009:94-109.

        [17] 雷遠(yuǎn)曉.針對(duì)虛擬機(jī)軟件保護(hù)的攻擊方法研究[D].西北大學(xué),2013.

        [18] 段鋼.加密與解密[M].3版.電子工業(yè)出版社,2008:471-490.

        ASOFTWAREPROTECTIONMETHODBASEDONDYNAMICENCRYPTIONANDDECRYPTIONOFVIRTUALMACHINEHANDLERSANDITSIMPLEMENTATION

        Xie Xin Ma Ling Cheng Liang

        (HunanInstituteofInformationTechnology,Changsha410151,Hunan,China)

        Virtual instruction handlers are the core targets for reverse analyzers to be attacked. Aiming at memory dump and breakpoint analysis for handler sequences, a software protection method based dynamic encryption and decryption of virtual machine handlers is proposed. On the basis of framework of virtual machine protection, code modules of encryption and decryption are embedded into the framework, and all encrypted handlers are restored. When a Handler is executed, the encrypted Handler is decrypted and executed. After execution, it is encrypted again until all Handler sequences are finished. Experiments and analysis showed that the method effectively prevented attackers from memory dumping and breakpoint debugging.

        Reverse analysis Virtual machine protection Dynamic encryption and decryption Memory dump Breakpoint debug

        2017-02-07。謝鑫,講師,主研領(lǐng)域:軟件安全,軟件保護(hù)。馬凌,副教授。陳亮,高工。

        TP3

        A

        10.3969/j.issn.1000-386x.2017.12.060

        猜你喜歡
        加解密斷點(diǎn)解密
        解密“熱脹冷縮”
        解密“一包三改”
        炫詞解密
        一類無限可能問題的解法
        PDF中隱私數(shù)據(jù)的保護(hù)方法
        主導(dǎo)電回路發(fā)生斷點(diǎn)故障判斷方法探討
        電子取證中常見數(shù)據(jù)加解密理論與方法研究
        基于FPGA的LFSR異步加解密系統(tǒng)
        網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)募咏饷芟到y(tǒng)研究
        軟件工程(2014年11期)2014-11-15 20:02:46
        解密“大調(diào)解”
        色翁荡熄又大又硬又粗又动态图| 亚洲男人在线无码视频| 特黄做受又粗又长又大又硬| 猫咪免费人成网站在线观看| 欧美日韩激情在线一区二区| 中文字幕亚洲中文第一| 日韩综合无码一区二区 | 国产亚洲91精品色在线| 国产熟女内射oooo| 99久久夜色精品国产网站| 无遮挡粉嫩小泬| 日韩高清不卡一区二区三区| 久久精品夜色国产亚洲av| 91在线精品老司机免费播放| 一区二区在线视频大片| 中文字日产幕码三区的做法步| 国产香蕉国产精品偷在线| 日韩欧美区| 国产伦精品一区二区三区在线| 好大好爽我要高潮在线观看| 永久免费av无码入口国语片| 四虎影视久久久免费| 免费看草逼操爽视频网站| 成人精品一区二区三区电影| 久久久久久久女国产乱让韩| 亚洲日韩AV无码美腿丝袜 | 我和丰满老女人性销魂| 亚洲熟妇自偷自拍另类| 精品深夜av无码一区二区| 中文字幕精品久久天堂一区| 国产亚洲av一线观看| 超碰人人超碰人人| 亚洲精品自产拍在线观看| 国产男女猛烈无遮挡免费视频网址| 在线播放亚洲丝袜美腿| 日本熟妇人妻xxxx| 欧美人与动人物姣配xxxx| 国产在线高清无码不卡| 亚洲av一区二区三区蜜桃| 亚洲国色天香卡2卡3卡4| 国产精品久久久久久久久免费观看|