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

基于增強型虛擬機的軟件保護技術*

2014-01-24 06:55:16吳偉民許文鋒林志毅阮奕邦
計算機工程與科學 2014年4期
關鍵詞:指令

吳偉民,許文鋒,林志毅,司 斯,阮奕邦

(廣東工業大學計算機學院,廣東 廣州 510006)

基于增強型虛擬機的軟件保護技術*

吳偉民,許文鋒,林志毅,司 斯,阮奕邦

(廣東工業大學計算機學院,廣東 廣州 510006)

針對目前日益嚴峻的軟件保護問題,對現有基于虛擬機的軟件保護技術進行分析與研究,對虛擬機保護技術進行了改進,設計了一種增強型虛擬機軟件保護技術。采用了虛擬花指令序列與虛擬指令模糊變換技術,并對虛擬機的虛擬指令系統做了改進,從而提高了虛擬機執行的復雜程度與迷惑程度,具有高強度的反逆向、防篡改、防破解的特點。實驗分析表明,增強型虛擬機保護技術明顯優于普通型虛擬機保護技術。

虛擬機;軟件保護;虛擬花指令;模糊變換

1 引言

計算機軟件是一種知識密集型的數字產品,軟件的研發非常復雜,研制及維護周期很長,需要耗費大量的人力物力資源,是軟件開發人員辛勤勞動的成果。但是,大量軟件破解行為使得商業軟件和共享軟件作者的利益受到嚴重侵害,他們的生存和發展將會受到嚴重影響。因此,軟件保護技術的研究與實現是目前軟件產業發展的重中之重。

為了保護軟件,人們提出了一系列的軟件保護技術,如序列號保護方式、授權文件保護、代碼混淆、加殼、軟件數字水印等[1],雖然這些技術取得了一定的成效,但是這些方式的保護強度都不是很高。近年來,軟件保護技術又出現了一個新的進步,那就是虛擬機技術,它通過對代碼的虛擬化來達到保護軟件的目的[2]。基于虛擬機的軟件保護技術,它虛擬出一套自己設計的指令系統,用于將一系列指令放在一個解釋引擎中執行。在該指令系統中,大部分常用的匯編指令都可以用虛擬機中的相應指令代替[3]。雖然虛擬機保護技術在反逆向、反破解方面優于其他保護技術,但是逆向工程師通過分析大量虛擬指令以及虛擬機執行過程,軟件代碼仍有被逆向還原的可能性[4]。為了增加代碼保護強度、降低被逆向還原的可能性,本文提出了基于增強型虛擬機軟件保護技術,這種新的軟件保護技術融合了虛擬花指令序列和虛擬指令模糊變換技術,從保護虛擬機本身代碼安全的角度出發,在最大程度上保護了軟件代碼。

2 虛擬機保護原理

在軟件領域經常用到有關虛擬機的概念,比如VMWare,它是指虛擬出一個CPU運行整個操作系統,包含軟件、硬件等各方面的虛擬化[3]。本文所指的虛擬機并不是像VMware那樣的虛擬機,而更像是一個進程級的高級語言虛擬機。它擁有自定義獨立的指令系統——虛擬指令系統,這種指令系統和Intel的x86指令系統并不在一個層次上。它還將我們所熟悉的x86匯編指令流轉換為ByteCode(字節碼),ByteCode是虛擬機解釋執行被保護代碼功能時所需的一串字節流。Java虛擬機、.Net或者其他腳本語言的虛擬機都是靠解析ByteCode來執行的,但它們之間的ByteCode并不通用,因為每一個虛擬機設計的ByteCode都是為自己使用的,并不兼容其他的虛擬機。利用虛擬機技術保護軟件,用戶可以選擇軟件中需保護代碼塊,把代碼塊反匯編成匯編指令流,然后用自定義的虛擬指令系統中的虛擬指令替換對應的匯編指令,在發布時,將整個虛擬機嵌入軟件本身一起發布。在運行被保護代碼時,由虛擬機解釋執行ByteCode。

3 虛擬機軟件保護流程

虛擬機保護對PE(Portable Execute)文件的處理流程如圖1所示。PE文件格式是WIN32環境自帶的跨平臺可執行文件格式,常見的EXE、DLL、OCX、SYS、COM 等文件均是PE文件[5]。

虛擬機保護系統首先從PE中提取需保護代碼塊,通常以函數為單位來提取,然后通過反匯編器反匯編成我們常見的x86匯編指令流,再把匯編指令流轉換成ByteCode存儲在PE文件中。轉換之后,PE文件中被保護代碼的正確運行需要虛擬機解釋執行ByteCode,因此,整個虛擬機其實是內嵌在PE文件中的,它包括跳轉表、虛擬指令調度器和虛擬指令系統。

Figure 1 Process of virtual machine software protection圖1 虛擬機軟件保護處理流程

3.1 提取需保護代碼塊

由于虛擬機是通過解釋執行ByteCode來完成原始代碼的功能,所以經過虛擬機保護后的PE文件會增大,被保護后的代碼塊運行效率會降低,因此,虛擬機保護只適用于保護PE文件中重要的代碼塊,而不是PE文件中的所有代碼。提取方式通常以函數為單位,根據函數的起始地址與結束地址確定需保護代碼塊。

3.2 反匯編器

反匯編器將上一步提取的代碼塊反匯編成匯編指令流,比如,8B442404對應的匯編指令為mov eax,dword ptr[esp+4]。我們具體借助現有成熟的反匯編器來實現這一功能,將匯編語言作為中間語言,這樣有利于快速高效地將x86機器碼轉換為ByteCode,從而可以把工作重點放在虛擬機保護核心技術的研究上。

3.3 虛擬機

虛擬機由虛擬指令系統、虛擬指令調度器和跳轉表組成,它負責解釋執行ByteCode,執行完被保護代碼塊功能后,退出虛擬機,并正確返回至被保護代碼塊下一處x86匯編指令。為了更清楚地認識虛擬機的組成與虛擬機在PE文件結構中是如何操作的,下面以圖的方式展示對一個函數(functionA)進行虛擬機保護的過程。functionA被虛擬機保護前后,PE文件內容對比如圖2所示。

虛擬機的各個組成部分和ByteCode在PE文件中的位置如圖2所示。圖2a中functionA為待保護匯編指令流,經過ByteCode轉換器轉換為ByteCode,并存儲在PE文件最末尾新增區塊中,在此例中,ByteCode存儲在圖2b的0040D400處。functionA函數被替換為圖2b中的push/jmp兩條指令。函數被虛擬機保護后,當需要執行函數時,由push/jmp兩條指令跳轉至虛擬機執行,由虛擬機解釋執行ByteCode完成函數功能。

Figure 2 PE context comparison of virtual before machine protection and after machine protection圖2 虛擬機保護前后PE文件內容對比

(1)虛擬指令調度器。

虛擬指令調度器通過讀取ByteCode來調度虛擬指令,相當于CPU的執行調度器。虛擬指令是一小段匯編程序,各種虛擬指令組成了虛擬指令系統。圖2b中VMDispatcher即是虛擬指令調度器,它其實也是一條虛擬指令。經虛擬機保護后,函數執行時,由push/jmp指令轉入虛擬機執行。調度器的調度過程如下:

①進入虛擬機后,首先執行VStartVM指令,它將所有寄存器的值壓入堆棧,然后為虛擬環境結構(VMContext)分配堆棧空間。VMContext是虛擬機執行時要用到的各種虛擬寄存器,即模擬一個CPU的上下文環境,它用一個結構體來虛擬化所有寄存器。

②執行VMDispatcher指令,它通過讀取ByteCode流,調度虛擬指令。調度的第一條指令是Vbegin指令,這條指令的ByteCode碼為“1B”,如圖2b所示。

③執行Vbegin指令,它把所有寄存器的值賦值給VMContext結構,然后跳轉至VMDispatcher。

④VMContext結構被初始化后,虛擬機開始真正執行被保護代碼的功能,每執行一條虛擬指令,都需要跳轉至VMDispatcher,由它調度下一條虛擬指令繼續執行

(2)虛擬指令系統。

虛擬指令的設計分為兩大類,第一類是堆棧虛擬指令,第二類是普通虛擬指令。由原始匯編指令轉換為虛擬指令,首先必須經過堆棧虛擬指令的處理,然后由普通虛擬指令從棧中取出參數進行功能操作。部分虛擬指令如圖3所示。

Figure 3 Some virtual instructions圖3 部分虛擬指令

圖3中1、2、3為堆棧虛擬指令,4為普通虛擬指令,其中,esi指向ByteCode,edi指向 VMContext。VPushImm32的功能是把一個32位立即數入棧。VPopReg32的功能是把當前棧中的值壓入VMContext中的虛擬寄存器。VPushReg32的功能是把VMContext中的虛擬寄存器的值壓入棧中。VAdd的功能是從當前棧中去源操作數與目的操作數進行相加,然后把結果壓入棧中。

這種方法實現虛擬指令系統的優點是:需要用到操作數的虛擬指令不必去管操作數從哪兒來,這些操作數交給堆棧虛擬指令處理。原始匯編指令轉換為虛擬指令序列如圖4所示,括號中的參數來自于ByteCode。

Figure 4 Original assemble instruction transformed into virtual instruction series圖4 原始匯編指令轉換為虛擬指令序列

(3)跳轉表。

跳轉表起著映射虛擬指令地址的作用,為了使虛擬機保護系統每次處理PE文件后,ByteCode碼對應的虛擬指令不一樣,增加被逆向還原的難度。虛擬指令存放在PE文件之前,通過隨機的方式為每一條虛擬指令編碼,然后通過公式“虛擬指令地址=[X*4+跳轉表地址]”計算出虛擬指令的地址,最后把虛擬指令的地址存放在跳轉表中,而這個編碼則寫入ByteCode中,作為映射虛擬指令的ByteCode碼。因此,虛擬機在執行的時候,可以逆向計算出虛擬指令的地址。通過這種方法處理,使得同一個PE文件,每次處理后的ByteCode都不一樣。

以圖2b中ByteCode碼“9D”為例,通過公式“虛擬指令地址=[X*4+跳轉表地址]”計算出“9D”對應的地址為“00406456”,所以“9D”對應的虛擬指令是VPushImm32。X表示ByteCode,跳轉表地址在此例中的值為“00406000”。

3.4 ByteCode轉換器

ByteCode轉換器相當于一個虛擬指令編譯器,它根據自定義的虛擬指令系統,把x86匯編指令流轉換為只能被此虛擬機才能識別執行的字節流。

以圖2a“mov eax,dword ptr[esp+4]”指令為例,它被轉換成了9D04000000 9D01000000…。下面介紹它的轉換方法。這條指令的源操作數為一內存數,內存數的真實結構是[imm+reg*scale+reg2],在轉換源操作數的過程中,需要計算這四個值,這四個值分別為:imm=00000004,scale=00000001,reg=00000024(VMContext中的偏移值),reg2=FFFFFFFF(值為負,表示忽略此寄存器),把這四個值寫入ByteCode中,有了這四個值,虛擬機執行時就可以取出[esp+4]表示的內存值,因此mov eax,dword ptr[esp+4]指令被轉換為如下虛擬指令序列:

生成的ByteCode如圖2b所示,“9D”映射了VpushImm32指令,“9D”后面緊跟著的“00000004”是第一條VpushImm32指令的參數。其他指令亦是如此:凡是虛擬指令要用到的參數,在此虛擬指令對應的ByteCode后面的數據即是參數。前4條指令是把源操作數的4個參數入棧,第5條指令壓入[esp+4]內存地址的值,第6條指令是壓入VMContext中的v_eax的偏移,第7條指令取內存數值,壓入當前真實堆棧,第8條指令把當前堆棧值出棧到VMContext中的v_eax。經過這一系列的虛擬指令的執行,實現了把esp+4對應的內存值,賦值給了VMContext中的v_eax。執行完mov eax,dword ptr[esp+4]指令后,繼續執行inc eax,虛擬機實際上是把VMContext中的v_eax進行加一操作。虛擬機解釋執行完所有ByteCode后,VMContext中的各種虛擬寄存器的值與未經虛擬機保護執行得到的寄存器的值是相同的。所以,在退出虛擬機時,把虛擬機執行得到的VMContext的值一一對應賦值給真實寄存器,這樣才能保證程序繼續執行。總的來說,被保護代碼段被ByteCode轉換器轉換成ByteCode,虛擬機在解釋執行ByteCode的過程中,需要執行一系列虛擬指令,才能完成一條原始匯編指令的功能,而一條虛擬指令又是由多條匯編指令組成。因此,把一條原始匯編指令轉換為N條匯編指令來執行,而且這N條匯編指令邏輯性強,缺一不可,通過這樣的高強度的復雜化,使得逆向還原難度大大增加。

4 增強型虛擬機軟件保護技術

增強型虛擬機軟件保護是針對普通型虛擬機保護的虛擬指令系統做的改進。普通型虛擬指令系統本身并沒有被保護,逆向工程師通過對每一條虛擬指令的功能分析,最終還是可以破解被虛擬機保護的代碼。而作者提出的增強型虛擬機軟件保護融入了兩種技術:一種是虛擬花指令序列,另一種是虛擬指令模糊變換。花指令也稱為偽指令、垃圾指令。花指令加密技術通過在程序代碼中插入無效指令或不影響原始代碼功能的無用指令來破壞反匯編的結果和增加代碼分析難度,以達到加密保護的目的[6]。虛擬花指令序列技術主要是在虛擬機執行的虛擬指令序列中加入冗余虛擬指令,用來增加逆向工程師對虛擬機的分析難度。虛擬指令模糊變換技術是對有效虛擬指令作代碼變換,用來破壞反匯編器的結果,達到保護代碼的目的。

4.1 虛擬花指令序列

虛擬花指令序列被執行后,它不影響原始虛擬指令序列的執行結果。因此,在設計虛擬花指令序列時,應注意虛擬花指令序列不能改變VMContext中虛擬寄存器的值。為了簡化代碼實現,所有的虛擬花指令都不帶操作數。部分虛擬花指令的實現如圖5所示。

第1、2條虛擬花指令的功能是對VMContext中的v_eax進行出入棧操作,其他虛擬寄存器的出入棧花指令類似于第1、2條指令,只是v_eax的值不一樣。第3條是加法花指令,實現方法與普通加法指令相同。

Figure 5 Some virtual junk instructions圖5 部分虛擬花指令

通過簡單的出入棧虛擬花指令、加減法虛擬花指令就可以組合成多種虛擬花指令序列,只要保證不破環VMContext和堆棧中的值。以下是其中一種虛擬花指令序列的實現:

第2、3、4、5條指令是把 VMContext中v_ebx與v_eax的和賦值給v_eax,而第1條指令保存了相加前v_eax的值,執行完加法后,第6條指令把相加前的值還原給v_eax,所以經過這一系列虛擬花指令的執行,并沒有改變虛擬機執行的結果,但是它起到了干擾逆向工程師的作用。以上序列其實是虛擬化了如下花指令:push eax;add eax,ebx;pop eax。

虛擬花指令序列比傳統花指令更具優勢,每一種虛擬花指令序列可以放在常規虛擬指令序列的任何位置。而傳統花指令采用較多的一種形式是無條件跳轉指令jmp加花指令,另一種形式是直接程序代碼中的jmp指令后添加花指令[7]。這兩種形式受代碼中jmp指令個數的限制,如果jmp指令數太少,則迷惑效果不明顯。

4.2 虛擬指令模糊變換

虛擬指令模糊變換是在有效虛擬指令里面加入花指令,又在花指令里面設計一個偽分支,偽分支中加入不可執行代碼,通過偽分支來迷惑反匯編器,打亂反匯編結果,達到保護虛擬指令的目的。反匯編器的工作原理大致有兩種:一種是線性掃描法[8],反匯編器從程序代碼的第一個可執行字節開始,依次逐個地將程序中的二進制代碼反匯編成相應的匯編指令;另一種方法是遞歸掃描法[9],反匯編器沿著程序的指令執行控制流來一步一步進行反匯編,將二進制代碼反匯編成相應的匯編指令。在遞歸掃描中,由于反匯編器不會去判斷分支代碼正確與否,它們只是將跳轉地址的代碼進行反匯編[9]。因此,如果在虛擬指令中加入一些偽分支,并使得這些偽分支永遠不可能執行到,然后在偽分支內添加不可執行代碼,那么反匯編器很有可能將這些不可執行代碼與其后代碼結合在一起,從而使得反匯編結果錯誤。虛擬指令模糊變換方法如圖6所示。

Figure 6 Virtual instruction transformation圖6 虛擬指令模糊變換

圖6中VinstructionA為一條虛擬指令,instruction為匯編指令。y的值為非0隨機值,因此這段花指令執行cmp指令后,永遠不可能跳轉到flag1處執行,只會跳轉到flag2處執行,flag2還原了eax的值,所以這一系列執行并沒有影響程序的功能。如果在flag1處添加不可執行的亂碼,反匯編器在分析這段代碼時,很有可能將亂碼與其后的代碼結合在一起,從而使得反匯編結果出錯。通過這種方法對虛擬指令進行模糊變換,使得反匯編器得不到正確的虛擬指令結果,逆向工程師很難分析虛擬機的代碼,因此在虛擬機軟件保護方案中,增加虛擬指令模糊變換技術,極大地提高了反逆向、防破解的強度。

5 實驗與分析

5.1 實驗環境

硬件環境:處理器Intel(R)Pentium(R)D CPU 2.8GHz、內存4.0GB。

軟件環境:操作系統32bit Windows 7,反匯編調試器OllyICE v1.10,普通型虛擬機軟件保護系統BProtect.exe,增強型虛擬機軟件保護系統BProtectPlus.exe,測試用例genfile.exe。

5.2 實驗步驟

(1)普通型虛擬機保護處理。

使用BProtect.exe對genfile.exe進行虛擬機保護處理,生成genfile_vmp.exe,使用 OllyICE對genfile_vmp.exe進行反匯編調試,找到VAdd虛擬指令的反匯編結果,如圖7所示。

(2)增強型虛擬機保護處理。

使用BProtectPlus.exe對genfile.exe進行虛擬機保護處理,生成genfile_vmpplus.exe,使用OllyICE對genfile_vmpplus.exe進行反匯編調試,找到VAdd虛擬指令的反匯編結果,如圖8所示,生成的ByteCode如圖9所示,跳轉表如圖10所示,虛擬花指令代碼如圖11所示。

Figure 7 VAdd’s disassemble result under normal virtual machine protection圖7 普通型虛擬機保護處理下VAdd的反匯編結果

Figure 8 VAdd’s disassemble result of improved virtual machine protection圖8 增強型虛擬機保護處理下VAdd的反匯編結果

Figure 9 ByteCode圖9 ByteCode

Figure 10 Jumping table圖10 跳轉表

5.3 實驗結果與分析

圖8中畫線部分代碼是增強型虛擬機保護對VAdd虛擬指令進行的模糊變換,粗線部分代碼是模糊變換中的不可執行亂碼。從圖8與圖7的對比中可看出,VAdd虛擬指令經過模糊變換后,je跳轉處的不可執行代碼確實與其后的兩條正常指令結合在一起,第一條被結合的指令是圖6中花指令中的最后一條pop eax,機器碼為58;第二條被結合的指令是VAdd虛擬指令中的mov ebx,dword ptr[esp],機器碼為8B1C24。因此,它達到了使反匯編器的反匯編結果出錯的目的。經驗證,模糊變換后的虛擬指令能正常運行,整個程序的運行也正常,并且使用OllyICE的花指令去除插件,也不能將虛擬指令中的花指令去掉。

Figure 11 Virtual junk code圖11 虛擬花指令代碼

而圖7中未經過任何改變的VAdd虛擬指令,只有五條匯編指令,很容易被逆向工程師得知此虛擬指令的功能。但是,增強型虛擬機軟件保護技術融合了虛擬指令模糊變換技術后,反匯編結果出錯,使得虛擬指令的破解難度明顯增強。

下面再來分析驗證虛擬花指令序列在虛擬機軟件保護中起的重要作用。在增強型虛擬機軟件保護方案中,增加了虛擬花指令序列,圖9中陰影部分為虛擬花指令序列的ByteCode,根據3.3節中虛擬指令地址公式計算得出虛擬花指令的地址。下面驗證虛擬機執行時,是否執行了新增加的虛擬花指令序列。計算虛擬花指令地址以圖9中陰影部分第一個字節“25”為例。本次實驗中,公式中的“跳轉表地址”為00406000。所以25*4+00406000=00406094,從圖10跳轉表中查找00406094處的值為00406636,再從圖11中可以看到,此處對應的虛擬花指令正是RPush_Veax。通過同樣的計算方法可以計算出圖9陰影部分剩下的五個字節分別對應的虛擬指令是:RPush_Vebx、RPush_Veax、RAdd、RPop_Veax、RPop_Veax。因此,新增加的六個ByteCode碼確實有執行,并且按照以上六條虛擬花指令的順序執行完,并沒有改變程序的任何結果,但是增加了虛擬機執行的虛擬指令數量,提高了虛擬機執行的復雜度,起到了迷惑逆向工程師的作用。經驗證,添加虛擬花指令序列的程序運行正常,而未添加虛擬花指令序列的普通型虛擬機保護強度明顯弱于增強型虛擬機保護。

經過以上實驗結果分析表明,融入了虛擬花指令序列和虛擬指令模糊變換的增強型虛擬機軟件保護強度優于普通型虛擬機軟件保護強度。

6 結束語

本文提出了新的增強型虛擬機保護技術,融入了虛擬花指令序列與虛擬指令模糊變換,前者通過一系列不影響程序功能的虛擬指令序列,干擾逆向工程師的分析效率;后者通過對虛擬指令構造不可到達的偽分支,使得反匯編器解析虛擬指令時,把偽分支的亂碼與其后的正常代碼結合在一起,從而造成反匯編結果錯誤。這樣從兩個方面增加了反逆向的難度,達到進一步保護軟件的目的。

實驗結果也表明了新方法的有效性,能夠在保持正確性的同時增加逆向分析的難度。下一步工作將研究多種變換策略,使得每條虛擬指令盡量使用不同的變換策略,從而進一步增加破解難度,達到最大化保護軟件的目的。

[1] Tang Zhan-yong,Wang Huai-jun,Fang Ding-yi,et al.Research on software protection RISC-based virtual machine technology[J].Microelectronics &Computer,2011,28(8):1-3.(in Chinese)

[2] Bughoho.Virtual machine technology subject argumentation[EB/OL]. [2007-07-07]. http://bbs.pediy.com/showthread.php?t=47633&tcatid=60.(in Chinese)

[3] Shu Bo-cheng,Li Yi-chao,Cao Yue,et al.Research on software protection based on virtual machine[J].Computer Engineering &Science,2008,30(A1):25-28.(in Chinese)

[4] Duan Gang.Encrypt and decrypt[M].Beijing:Publishing House of Electronics Industry,2008.(in Chinese)

[5] Li Lu,Liu Qiu-ju,Xu Ting-rong.On unpacking technology for PE files[J].Computer Applications and Software,2010,27(9):279-282.(in Chinese)

[6] Wang Hai-ping,Cao Lin,Sun Guo-zhi,et al.Study of stochastic junk code encryption algorithm [J].Journal of Computer Applications,2006,26(2):338-340.(in Chinese)

[7] Sun Guo-zi,Cai Qiang,Cheng Dan-wei,et al.Study on encryption algorithm of sub-function junk code[J].Computer Engineering and Applications,2009,45(3):130-132.(in Chinese)

[8] Kruegel C,Robertson W,Valeur F,et al.Static disassembly of obfuscated binaries[C]∥Proc of the 13th Conference on USENIX Security Symposium,2004:18.

[9] Schwarz B,Debray S,Andrews G.Disassemble of executable code revisited[C]∥Proc of the 9th Working Conference on Reverse Engineering,2002:45-54.

附中文參考文獻:

[1] 湯戰勇,王懷軍,房鼎益,等.基于精簡指令集的軟件保護虛擬機技術研究與實現[J].微電子學與計算機,2011,28(8):1-3.

[2] Bughoho.虛擬機技術專題討論[EB/OL].[2007-07-07].http://bbs.pediy.com/showthread.php?t=47633&tcatid=60.

[3] 舒柏程,李毅超,曹躍,等.基于虛擬機的軟件保護技術研究[J].計算機工程與科學,2008,30(A1):25-28.

[4] 段鋼.加密與解密[M].北京:電子工業出版社.2008.

[5] 李露,劉秋菊,徐汀榮.PE文件中脫殼技術的研究[J].計算機應用與軟件,2010,27(9):279-282.

[6] 王海平,曹林,孫國梓,等.隨機花指令加密算法研究[J].計算機應用,2006,26(2):338-340.

[7] 孫國梓,蔡強,陳丹偉.子程序花指令加密算法研究[J].計算機工程與應用,2009,45(3):130-132.

Software protection technique based on improved virtual machine

WU Wei-min,XU Wen-feng,LIN Zhi-yi,SI Si,RUAN Yi-bang
(Faculty of Computer,Guangdong University of Technology,Guangzhou 510006,China)

For the increasingly serious software protection problem,the software protection technique based on virtual machine is analyzed,studied and improved,and thus a new software protection technique based on improved virtual machine is proposed.The proposal uses virtual junk code sequence and virtual instruction transformation technique,improves the virtual instruction system of original virtual machine,and hence increases complexity and confusion for virtual machine execution and has the advantages of high anti-reversing,tamper-proof and anti cracking.Experimental analysis proves that the improved virtual machine protection technique outperforms other virtual machine protection techniques.

virtual machine;software protection;virtual junk code;fuzy transform

TP309

A

10.3969/j.issn.1007-130X.2014.04.015

2012-09-26;

2013-01-28

通訊地址:510006廣東省廣州市番禺區廣州大學城外環西路100號廣東工業大學計算機學院

Address:Faculty of Computer,Guangdong University of Technology,100Waihuan Rd West,Guangzhou Higher Education Mega

Center,Panyu District,Guangzhou 510006,Guangdong,P.R.China

1007-130X(2014)04-0655-07

吳偉民(1956-),男,廣東深圳人,教授,研究方向為數據結構和算法,可視計算,編譯和虛擬機技術,智能系統。E-mail:wuwm@gdut.edu.cn

WU Wei-min,born in 1956,professor,his research interests include data structure and algorithm,visual computing,compiler and virtual machine technology,and intelligent system.

許文鋒(1985-),男,湖南永興人,碩士,研究方向為軟件保護技術。E-mail:154529332@qq.com

XU Wen-feng,born in 1985,MS,his research interest includes software protection technology.

林志毅(1981-),男,福建連江人,博士,講師,研究方向為自然計算和模式識別。E-mail:16045411@qq.com

LIN Zhi-yi,born in 1981,PhD,lecturer,his research interests include natural computing,and pattern recognition.

司斯(1987-),男,甘肅天水人,碩士,研究方向為數據結構和算法。E-mail:Sisi563846762@163.com

SI Si,born in 1987,MS,his research interests include data structure,and algorithm.

阮奕邦(1991-),男,廣東陽江人,研究方向為軟件保護技術。E-mail:ruanyibang@qq.com

RUAN Yi-bang,born in 1991,his research interest includes software protection technology.

猜你喜歡
指令
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
巧用G10指令實現橢圓輪廓零件倒圓角
時代農機(2015年3期)2015-11-14 01:14:29
中斷與跳轉操作對指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設備等產品安全規定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動制冷劑行業發展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 欧美日韩福利| 99久久99视频| 一区二区三区国产精品视频| 精品国产Av电影无码久久久| 一级毛片在线直接观看| 国产一区成人| 在线无码av一区二区三区| 亚洲成人精品| 青青国产视频| 欧美精品在线看| 在线无码九区| 热99re99首页精品亚洲五月天| 女人爽到高潮免费视频大全| 欧美高清三区| 久久a级片| 国产精品女同一区三区五区| 国产成人免费手机在线观看视频 | 九九九精品成人免费视频7| 亚洲av日韩av制服丝袜| 成人在线天堂| 青青草原偷拍视频| 中文字幕永久在线观看| 一本大道视频精品人妻| 特级毛片免费视频| 精品无码国产自产野外拍在线| 国产欧美精品一区aⅴ影院| 国外欧美一区另类中文字幕| 亚洲精品无码高潮喷水A| 色天天综合| 毛片视频网| 欧美亚洲网| 九色视频线上播放| 乱人伦中文视频在线观看免费| 久久精品无码中文字幕| 亚洲欧美日韩成人高清在线一区| 亚洲无码A视频在线| 中文无码精品a∨在线观看| 亚洲人视频在线观看| 99一级毛片| 午夜啪啪福利| 久热中文字幕在线| 97人人做人人爽香蕉精品| 婷婷综合在线观看丁香| 91极品美女高潮叫床在线观看| 国产二级毛片| 一本色道久久88亚洲综合| 99九九成人免费视频精品| 在线观看网站国产| 四虎亚洲精品| 美女免费黄网站| 国产一级毛片在线| 无码电影在线观看| 亚洲 欧美 日韩综合一区| 中文字幕亚洲精品2页| 黄色网站在线观看无码| 亚亚洲乱码一二三四区| 成人欧美在线观看| 女人一级毛片| 久久久久国产精品嫩草影院| 国产人妖视频一区在线观看| 久久精品丝袜高跟鞋| 国产欧美高清| 国产精品成人AⅤ在线一二三四| 色噜噜在线观看| 国产网站在线看| 第九色区aⅴ天堂久久香| 黄色网站不卡无码| 丁香婷婷激情网| 五月综合色婷婷| 激情无码视频在线看| 久久久久久国产精品mv| 国产男女免费视频| 综合久久五月天| 成人免费一区二区三区| 国产自在线播放| 老司机精品一区在线视频| 国产乱人伦精品一区二区| 伊人激情久久综合中文字幕| 亚洲床戏一区| 在线国产欧美| 久久情精品国产品免费| 永久免费av网站可以直接看的|