• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于代碼碎片化的軟件保護技術

    2020-12-18 00:27:58郭京城舒輝熊小兵康緋
    網(wǎng)絡與信息安全學報 2020年6期
    關鍵詞:調(diào)用內(nèi)存代碼

    郭京城,舒輝,熊小兵,康緋

    基于代碼碎片化的軟件保護技術

    郭京城,舒輝,熊小兵,康緋

    (信息工程大學,河南 鄭州 450001)

    針對當前軟件保護技術存在的不足,提出一種代碼碎片化技術,該技術是一種以函數(shù)為單元,對函數(shù)進行代碼shell化、內(nèi)存布局隨機化、執(zhí)行動態(tài)鏈接化的新型軟件保護技術,代碼shell化實現(xiàn)代碼碎片的位置無關變形,內(nèi)存布局隨機化實現(xiàn)代碼碎片的隨機內(nèi)存加載,動態(tài)鏈接化實現(xiàn)對代碼碎片的動態(tài)執(zhí)行,通過上述3個環(huán)節(jié)實現(xiàn)對程序的碎片化處理。實驗表明,代碼碎片化技術不僅能實現(xiàn)程序執(zhí)行過程中函數(shù)碎片內(nèi)存位置的隨機化,還能實現(xiàn)函數(shù)碎片的動態(tài)鏈接執(zhí)行,增加程序靜態(tài)逆向分析和動態(tài)逆向調(diào)試的難度,提高程序的抗逆向分析能力。

    代碼碎片化;軟件保護;分離;動態(tài)鏈接

    1 引言

    軟件保護問題一直是計算機安全領域的重要研究課題,雖然當前的軟件保護手段能夠在一定程度上增加軟件被惡意修改和逆向分析的難度,但攻擊方可以實現(xiàn)對程序的結(jié)構特征進行靜態(tài)分析[1-2],也可以反復地對代碼進行逐步運行、調(diào)試、反匯編、反編譯,能夠獲取軟件在內(nèi)存中的數(shù)據(jù)、執(zhí)行期間的中間值,通過連續(xù)獲取系統(tǒng)的內(nèi)存鏡像,進行前后鏡像之間的對比分析,可以獲取程序的具體行為[3]的動態(tài)分析,因此,如何有效地實現(xiàn)對應用程序的防破解、防盜版是一個亟待解決的問題。當前有很多軟件保護技術,代碼加殼[4]是通過對原程序的壓縮加密實現(xiàn)對可執(zhí)行文件的保護手段,代碼虛擬化[5]是將本地指令轉(zhuǎn)換成自定義的虛擬指令,并通過虛擬解釋器解釋執(zhí)行虛擬指令,實現(xiàn)原始程序的功能,代碼混淆[6-9]分為外形混淆、控制混淆、數(shù)據(jù)混淆和預防混淆[10-12]。在源代碼基礎上實現(xiàn)若干種控制混淆轉(zhuǎn)換與數(shù)據(jù)混淆轉(zhuǎn)換,通過適當插入垃圾代碼和不透明謂詞實現(xiàn)的改進型控制流混淆算法[13],通過增加冗余基本塊的數(shù)量和隨機下標生成實現(xiàn)改進型的二進制程序控制流扁平化[14],是常見的代碼混淆手段。內(nèi)存布局隨機化通過不斷改變進程內(nèi)存布局,實現(xiàn)進程攻擊面的隨機性變換,從而消除了攻擊者的不對稱優(yōu)勢,增加了攻擊者的攻擊難度[15-16]。這些軟件保護技術能夠?qū)崿F(xiàn)對代碼的保護,很大程度上增加逆向攻擊者對程序靜態(tài)分析的難度,但不能實現(xiàn)抗動態(tài)調(diào)試,當逆向攻擊者通過動態(tài)調(diào)試工具對保護后的代碼進行動態(tài)調(diào)試時,代碼的執(zhí)行邏輯依然會被暴露,進而可以通過內(nèi)存dump方法獲取完整的程序代碼。針對當前軟件保護技術在動態(tài)分析中存在的不足,提出一種基于代碼碎片化的新型軟件保護技術,該技術通過在中間語言(中間語言是一種采用靜態(tài)單賦值形式的中間表達)層面對功能函數(shù)代碼碎片進行分離,實現(xiàn)對代碼碎片的動態(tài)鏈接執(zhí)行。該技術將功能函數(shù)的直接調(diào)用轉(zhuǎn)換成間接調(diào)用,能夠避免被完整地控制流分析,進而增加靜態(tài)分析的難度;各個函數(shù)模塊能夠加載到內(nèi)存中的任意位置,有效防止程序被dump分析,增加程序動態(tài)分析的難度。

    2 基本思路

    代碼碎片化技術基于LLVM編譯平臺,LLVM是一系列分模塊、可重用的編譯工具鏈,它提供了一種代碼編寫良好的中間表示(IR),可以作為多種語言的后端,還可以提供與編程語言無關的優(yōu)化和針對多種CPU的代碼生成功能。LLVM中間表示是一種采用靜態(tài)單賦值形式(SSA,static single assignment)的中間表達(intermediate representation),包含一套匯編語言類似的指令集和一個類型系統(tǒng),該指令集是類似于RISC(reduced instruction set computer)的三地址指令集。以可移植的執(zhí)行體(PE,portable executable)程序碎片化處理過程為例,說明代碼碎片化技術的原理,如圖1所示。首先,對源代碼進行shell化變形,在中間語言層面對源代碼進行相應的修改,將代碼中的所有全局變量和應用程序編程接口(API,application programming interface)函數(shù)等全局數(shù)據(jù)提取出來保存在全局數(shù)據(jù)區(qū)。然后,在中間語言層面將所有功能函數(shù)以數(shù)組的形式保存起來,并將功能函數(shù)的調(diào)用由直接調(diào)用改為間接調(diào)用的形式,添加Loader函數(shù),負責對功能函數(shù)進行調(diào)用,同時構建功能函數(shù)的動態(tài)地址表,依據(jù)構建的函數(shù)數(shù)組將所有函數(shù)代碼碎片分離到獨立的中間語言文件中。最后,將主函數(shù)、Loader函數(shù)、全局數(shù)據(jù)區(qū)數(shù)據(jù)和分離的功能函數(shù)碎片作為一個整體進行編譯,生成類PE文件。

    3 碎片化技術模型建立

    代碼碎片化技術有3個階段:函數(shù)代碼shell化、函數(shù)內(nèi)存布局隨機化、函數(shù)執(zhí)行動態(tài)鏈接化。本文通過符號化形式建立碎片化的技術模型。

    圖1 碎片化處理過程

    Figure 1 The process of fragmentation

    表1 函數(shù)fi中各元素定義

    定義4 函數(shù)代碼shell化各映射關系定義如表2所示。

    表2 代碼shell化各映射關系定義

    定義7 函數(shù)執(zhí)行動態(tài)鏈接化各映射關系定義如表3所示。

    表3 動態(tài)鏈接化各映射關系定義

    代碼碎片化模型可以形式化地表示為

    代碼碎片化由3個階段組成:函數(shù)代碼shell化,函數(shù)內(nèi)存布局隨機化以及函數(shù)執(zhí)行動態(tài)鏈接化。每個階段都對程序進行相應的修改,具體算法如算法1所示。首先,對中間語言IRoriginal提取API函數(shù)和全局變量;然后,對API函數(shù)調(diào)用方式和全局變量訪問方式進行修改,接著,修改函數(shù)調(diào)用方式,并將函數(shù)碎片進行分離,同時生成動態(tài)地址表;最后,通過Loader函數(shù)實現(xiàn)對分離的函數(shù)碎片進行調(diào)用。

    算法1 代碼碎片化算法

    輸入 原始中間語言文件IRoriginal

    輸出 碎片化處理后的中間語言文件IRfragment

    begin

    2) ArrayFuncInfoList, ArrayTableList;

    3) procedure Shell(module)

    4) GetGVData(module)/*全局數(shù)據(jù)聚合*/

    5) RetriveGVDataCall()/*修改全局數(shù)據(jù)調(diào)用方式*/

    6) end procedure

    7) procedure GetGVData(module)

    9) GV_INFO*oGV = new GV_INFO(GV);

    11) API_INFO*oImportFn = new API_INFO(ImportFn);

    13) end foreach

    16) end procedure

    17) procedure RetriveGVDataCall()

    19) foreach GV_User in gv_info's Users

    20) /*得到該變量在全局數(shù)據(jù)區(qū)中的位置*/;

    21) var GV_Addr = CreateGetElementPtr(GlobalStruct, index)

    22) /*替換原全局變量的使用 */

    23) GV_User.ReplaceUseWith(GV, GV_Addr);

    24) end foreach

    25) end foreach

    27) foreach API_User in api_info's Users

    28) /*得到該變量在全局數(shù)據(jù)區(qū)中的位置*/;

    29) var API_Addr = CreateGetElementPtr(GlobalStruct, index);

    30) /*讀取該地址存儲的數(shù)據(jù)*/

    31) var API_Addr_Value = CreateLoadMemory(API_Addr);

    32) /*替換原API的使用 */

    33) API_User.ReplaceUseWith (API, API_ Addr_Value);

    34) end foreach

    35) end foreach

    36) end procedure

    37) procedure Seperate(module)

    39) GenerateDynAddrTable()/*初步生成動態(tài)地址表*/

    40) foreach CustomerFn in FuncInfoList

    41) SeperateFragment(CustomerFn)/*分離功能函數(shù)碎片*/

    42) end foreach

    43) end procedure

    44) procedure ModifyCallFunc(module)

    45) CollectFunc(module, FuncInfoList) /*收集每個功能函數(shù)保存在結(jié)構體中*/

    46) foreach CustomerFn in FuncInfoList

    47) foreach UserInst in CustomerFn's Users

    48) CreateCallOrInvoke(NewUserInst, Params)/*創(chuàng)建新的指令*/

    49) UserInst.RemovefromFunction()/*刪除原指令*/

    50) end foreach

    51) end foreach

    52) end procedure

    53) procedure GenerateDynAddrTable()

    54) foreach CustomerFn in FuncInfoList

    55) GenerateTable(TableList) /*初步生成動態(tài)地址表*/

    56) end foreach

    57) end procedure

    58) procedure DynamicLink()

    59) addLoader()/*添加Loader函數(shù)*/

    60) foreach CustomerFn in FuncInfoList

    61) Loader(CustomerFn) /*動態(tài)調(diào)用功能函數(shù)*/

    62) end foreach

    63) end procedure

    end

    4 碎片化技術流程設計

    圖2 碎片化技術基本流程

    Figure 2 The basic process of fragmentation technology

    4.1 代碼shell化變形

    代碼shell化變形需要解決兩個關鍵問題。

    1) 生成的碎片代碼必須具有位置無關性,即碎片代碼可以在任意內(nèi)存空間中運行,碎片代碼對內(nèi)存地址的引用及跳轉(zhuǎn)操作只依賴碎片代碼的基址。

    2) 碎片代碼需要自行解決對外部函數(shù)的引用,即碎片代碼需要自行索引系統(tǒng)函數(shù)的地址。

    圖3 shell化變形過程

    Figure 3 The process of Shell deformation

    通過對IR文件的分析和變形,分別完成了全局數(shù)據(jù)區(qū)和結(jié)構體的構建、函數(shù)重定位的處理和位置無關變形。在這個過程中,生成的全局數(shù)據(jù)以內(nèi)聯(lián)匯編宏代碼的方式保存在生成的頭文件中,同時引導文件內(nèi)包括負責全局數(shù)據(jù)初始化和函數(shù)地址重定位的功能函數(shù)。因此,頭文件和引導文件需要同變形后的IR文件合并編譯鏈接。經(jīng)過函數(shù)簽名修改后的IR文件,默認的入口函數(shù)符號已經(jīng)發(fā)生變化,不再被鏈接器識別。因此,在合并編譯之前,需要新建IR文件的入口函數(shù),該函數(shù)負責調(diào)用全局數(shù)據(jù)初始化函數(shù)和原入口函數(shù)。

    4.2 函數(shù)碎片分離

    圖4 代碼碎片分離過程

    Figure 4 The process of code fragmentation

    算法2 功能函數(shù)分離算法

    begin

    1) foreach Fn in FuncList

    2) SeparaeProcess(Fn)

    3) end foreach

    4) procedure SeparateProcess(Func)

    5) if FuncCallNum>1 /*處理調(diào)用函數(shù)數(shù)量大于1的情況*/

    6) separate(Func)/*分離函數(shù)*/

    7) end if

    8) if FuncCallNum == 1 /*處理調(diào)用函數(shù)數(shù)量等于1的情況*/

    9) ParentNode = search(Func)/*回溯父節(jié)點*/

    10) if ParentNode is main

    11) separate(Func)

    12) end if

    13) if ParentNodeCallNum> 1/*處理父節(jié)點調(diào)用函數(shù)數(shù)量大于1的情況*/

    14) separate(ParentNode& &Func)/*分離父節(jié)點與其子節(jié)點*/

    15) end if

    16) if ParentNodeCallNum == 1

    17) SeparateProcess(ParentNode) /*遞歸處理*/

    18) end if

    19) end if

    20) end procedure

    end

    4.3 碎片代碼執(zhí)行時動態(tài)鏈接

    圖5 功能函數(shù)調(diào)用流程

    Figure 5 The process of function call

    5 原型系統(tǒng)

    根據(jù)代碼碎片化技術設計流程,設計實現(xiàn)了代碼碎片化原型系統(tǒng),如圖6所示,該系統(tǒng)主要由3個模塊組成:代碼shell化變形模塊、代碼碎片分離模塊和代碼碎片動態(tài)鏈接模塊。

    圖6 代碼碎片化原型系統(tǒng)

    Figure 6 Code fragmentation prototype system

    代碼shell化模塊實現(xiàn)對程序源碼中的全局數(shù)據(jù)進行提取,保存到統(tǒng)一的全局數(shù)據(jù)區(qū)中,并實現(xiàn)對全局數(shù)據(jù)引用方式修改,在全局數(shù)據(jù)區(qū)中通過“地址+索引”的方式實現(xiàn)對全局數(shù)據(jù)的引用。

    代碼碎片分離模塊實現(xiàn)對功能函數(shù)代碼碎片的分離,是原型系統(tǒng)的關鍵。首先,在中間語言層面通過LLVM接口獲取所有功能函數(shù),并修改對功能函數(shù)的調(diào)用方式,由直接調(diào)用修改為間接調(diào)用;然后,根據(jù)功能函數(shù)列表構建動態(tài)地址表;最后,通過LLVM編譯平臺將功能函數(shù)實體分離為代碼碎片,寫入獨立的中間語言文件中。

    代碼碎片動態(tài)鏈接模塊完成代碼碎片的動態(tài)鏈接,這需要在主函數(shù)之外自動添加一個Loader加載函數(shù),負責對分離后的代碼碎片進行動態(tài)調(diào)用,同時實現(xiàn)對動態(tài)地址表的動態(tài)填充。

    6 實驗

    代碼碎片化技術實現(xiàn)了對PE文件的結(jié)構布局的改變,通過該技術產(chǎn)生的類PE文件在代碼段中存在主函數(shù)和加載函數(shù)兩部分,其他功能函數(shù)以碎片的形式保存,通過間接調(diào)用的形式調(diào)用。因此,代碼碎片化技術能夠有效增加逆向攻擊者逆向分析的難度。目前學術界和工業(yè)界尚未提出一套合理有效的方法來評測代碼碎片化技術的強度,因此這里從程序執(zhí)行的角度來說明該技術對軟件的保護效果。

    本文選取實驗環(huán)境為Windows7操作系統(tǒng),Intel I7 2.6 GHz CPU,4 GB內(nèi)存;Windows8操作系統(tǒng),Intel I7 2.6 GHz CPU,4 GB內(nèi)存;Windows10操作系統(tǒng),Intel I7 2.6 GHz CPU,4 GB內(nèi)存。選用的測試集由rsa、rc4、MD5、aes、des、sm4、sha256、gzip、huffman、Huffcomprs這10個程序組成,測試集的基本信息如表4所示,分別記錄代碼行數(shù)、函數(shù)數(shù)量和程序功能。

    表4 測試集基本信息

    對程序進行碎片化保護后需要對每個程序的可用性進行測試,分別在Windows7、Windows8、Windows10操作系統(tǒng)下進行測試,代碼碎片化保護之后所有程序功能均正常。

    針對原型系統(tǒng),采用3個指標對原型系統(tǒng)進行衡量,分別是導入函數(shù)變化、函數(shù)在內(nèi)存中的布局與間接調(diào)用在程序中函數(shù)調(diào)用的比例。

    函數(shù)導入表是記錄程序所用到的其他模塊的導出符號的地址、名稱和序號。在程序執(zhí)行時導入函數(shù)是與位置有關的,代碼碎片化技術需要實現(xiàn)程序的位置無關化,消除導入函數(shù)的位置有關性。通過比較碎片化前后導入函數(shù)數(shù)量的變化能夠體現(xiàn)代碼碎片化的位置無關化,如表5所示。

    表5 導入函數(shù)數(shù)量變化

    對于函數(shù)在內(nèi)存中的布局,以gzip程序為例,記錄程序執(zhí)行30次zip函數(shù)在內(nèi)存中的加載位置,如圖7所示,zip函數(shù)在程序每次執(zhí)行時在內(nèi)存中的加載位置都不同,體現(xiàn)函數(shù)內(nèi)存布局的隨機化。

    圖7 gzip程序中zip函數(shù)的內(nèi)存布局

    Figure 7 The memory layout of the zip function in the gzip program

    表6 程序中間接調(diào)用比例

    函數(shù)碎片是在執(zhí)行時通過動態(tài)鏈接的形式進行調(diào)用的,調(diào)用方式由直接調(diào)用修改為間接調(diào)用,因此,對程序進行代碼碎片化后,程序中間接調(diào)用的比例會有所增加,如圖8所示。

    圖8 程序中間接調(diào)用比例變化

    Figure 8 Changes in the proportion of indirect calls

    表7 碎片化前后時間開銷變化

    7 結(jié)束語

    代碼碎片化技術對代碼的保護是通過將功能函數(shù)分離并獨立編譯成能夠在內(nèi)存中任意位置執(zhí)行的碎片,通過動態(tài)加載函數(shù)碎片實現(xiàn)對功能函數(shù)的動態(tài)執(zhí)行。攻擊者通過靜態(tài)分析碎片化保護后的程序時,只能實現(xiàn)對主函數(shù)和加載函數(shù)的分析,無法分析以碎片存在的功能函數(shù)。當攻擊者通過動態(tài)調(diào)試工具對程序進行動態(tài)調(diào)試時,只能跟蹤調(diào)試主函數(shù)和加載函數(shù)的控制流,無法對碎片中的控制流進行跟蹤,大大增加了程序逆向分析的難度。通過實驗分析,碎片化技術能夠?qū)崿F(xiàn)函數(shù)碎片的內(nèi)存布局隨機化,碎片化保護后的程序間接調(diào)用比例有所增加,通過將函數(shù)的直接調(diào)用修改為間接調(diào)用,能夠?qū)崿F(xiàn)對函數(shù)碎片執(zhí)行的動態(tài)鏈接。同時,代碼碎片化技術有很多不完善的地方??刂屏魍暾苑治鲈诔绦蚰嫦蚍治鲋芯哂兄匾饔茫磥韺⑨槍δ:瘮?shù)與函數(shù)之間的控制流,增加程序的控制流完整性分析的難度作進一步研究。

    函數(shù)單個調(diào)用鏈的函數(shù)組采取以非內(nèi)聯(lián)的形式進行處理,將每個函數(shù)單獨碎片化,將函數(shù)組中的函數(shù)內(nèi)聯(lián)化為一個函數(shù)是減少程序時間開銷的有效手段,是將這些函數(shù)單獨處理的進階措施。程序因間接調(diào)用的增加而造成的攻擊面增加問題,將從兩個方面進行研究:一方面,采取隨機轉(zhuǎn)換策略,隨機選取部分函數(shù)進行碎片化,避免間接調(diào)用增加過多;另一方面,引入垃圾函數(shù)調(diào)用,平衡因碎片化而造成的間接調(diào)用比例失衡。軟件升級也是需要考慮的問題,對于以下載二進制補丁和匯編補丁的方式進行更新的軟件,需要作進一步研究。

    [1] 許團, 屈蕾蕾, 石文昌. 基于結(jié)構特征的二進制代碼安全缺陷分析模型[J]. 網(wǎng)絡與信息安全學報, 2017, 3(9): 31-39.

    XU T, QU L L, SHI W C. Analysis model of binary code security flaws based on structure characteristics[J]. Chinese Journal of Network and Information Security, 2017, 3(9): 31-39.

    [2] 孫博文, 黃炎裔, 溫俏琨, 等. 基于靜態(tài)多特征融合的惡意軟件分類方法[J]. 網(wǎng)絡與信息安全學報, 2017, 3(11): 68-76.

    SUN B W, HUANG Y Y, WEN Q K, et al. Malware classification method based on static multiple-feature fusion[J]. Chinese Journal of Network and Information Security, 2017, 3(11): 68-76.

    [3] 李偉明, 鄒德清, 孫國忠. 針對惡意代碼的連續(xù)內(nèi)存鏡像分析方法[J]. 網(wǎng)絡與信息安全學報, 2017, 3(2): 20-30.

    LI W M, ZOU D Q, SUN G Z. Successive memory image analysis method for malicious codes[J]. Chinese Journal of Network and Information Security, 2017, 3(2): 20-30.

    [4] 王健. 基于完整性驗證和殼的軟件保護技術研究[D]. 太原: 中北大學, 2018.

    WANG J. Research on software protection technology based on in-tegrity verification and shell[D]. Taiyuan: North China University, 2018.

    [5] 杜春來, 孔丹丹, 王景中, 等.一種基于指令虛擬化的代碼保護模型[J]. 信息網(wǎng)絡安全, 2017(2): 22-28.

    DU C L, KONG D D, WANG J Z, et al. A code protection model based on instruction virtualization[J]. Netinfo Security, 2017(2): 22-28.

    [6] BALACHANDRAN V, EMMANUEL S, KEONG N. Obfuscation by code fragmentation to evade reverse engineering[C]//2014 IEEE International Conference on Systems, Man, and Cybernetics (SMC. 2014.

    [7] BALACHANDRAN V, KEONG N W, EMMANUEL S. Function level control flow obfuscation for software security[C]//Eighth International Conference on Complex, Intelligence and Software Intensive Systems. 2014: 133-140.

    [8] LASZLO T, KISS A. Obfuscating C++ programs via control flow flattening[R]. 2009.

    [9] JUNOD P, RINALDINI J, WEHRLI J, et al. Obfusca-tor- LLVM?software protection for the masses[C]//2015 IEEE/ACM 1st International Workshop on Software Protection. 2015: 3-9.

    [10] DAVIDSON J, HILL J, KNIGHT J. Protection of software-based survivability mechanisms[C]//2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN). 2001: 193-193.

    [11] WANG C, HILL J, KNIGHT J. Software tamper resistance: obstructing static analysis of programs[J]. 2000.

    [12] WANG C.A security architecture for survivability mechanisms[D]. Virginia: University of Virginia,School of Engineering and Applied Science, 2000.

    [13] 蔣華, 劉勇, 王鑫. 基于控制流的代碼混淆技術研究[J]. 計算機應用研究, 2013, 30(3): 897-899.

    JIANG H, LIU Y, WANG X. Code confusion technology research based on control flow[J]. Application Research of Computers, 2013, 30(3): 897-899.

    [14] 王旭. 基于目標代碼的控制流混淆技術研究[D]. 北京: 北京郵電大學, 2013.

    WANG X. Research on control flow obfuscation technology based on object code[D]. Beijing: Beijing University of Posts and Telecommunications, 2013.

    [15] 王豐峰, 張濤, 徐偉光, 等. 進程控制流劫持攻擊與防御技術綜述[J]. 網(wǎng)絡與信息安全學報, 2019, 5(6): 10-20.

    WANG F F, ZHANG T, XU W G, et al. Overview of control-flow hijacking attack and defense techniques for process[J]. Chinese Journal of network and information security, 2019, 5(6): 10-20.

    [16] 喬向東, 郭戎瀟, 趙勇. 代碼復用對抗技術研究進展[J]. 網(wǎng)絡與信息安全學報, 2018, 4(3): 1-12.

    QIAO X D, GUO R X, ZHAO Y. Research progress in code reuse attacking and defending[J]. Chinese Journal of Network and Information Security, 2018, 4(3): 1-12.

    Software protection technology based on code fragmentation

    GUO Jingcheng, SHU Hui, XIONG Xiaobing, KANG Fei

    Information Engineering University, Zhengzhou 450001, China

    Aiming at the shortcomings of the current software protection technology, a code fragmentation technology was proposed. This technology is a new software protection technology that takes functions as units, shells functions, randomizes memory layout, and performs dynamic linking. The code shellization realizes the position-independent morphing of code fragments, the memory layout randomizes the random memory loading of the code fragments, the dynamic linking realizes the dynamic execution of the code fragments, and the program fragmentation processing is achieved through the above three links. The experiments show that the code fragmentation technology can not only realize the randomization of the memory location of function fragments during program execution, but also the dynamic link execution of function fragments, increasing the difficulty of static reverse analysis and dynamic reverse debugging of the program, and improving the anti-reverse analysis ability of the program.

    code fragmentation, software protection, separation, dynamic linking

    The National Key R&D Program of China (2016YFB08011601)

    TP309.5

    A

    10.11959/j.issn.2096?109x.2020063

    郭京城(1994? ),男,山東濟南人,信息工程大學碩士生,主要研究方向為網(wǎng)絡安全與軟件保護。

    舒輝(1974? ),男,江蘇鹽城人,博士,信息工程大學教授、博士生導師,主要研究方向為網(wǎng)絡安全、嵌入式系統(tǒng)分析與信息安全。

    熊小兵(1985? ),男,江西豐城人,博士,信息工程大學副教授,主要研究方向為網(wǎng)絡安全。

    康緋(1972? ),女,河南周口人,碩士,信息工程大學教授,主要研究方向為網(wǎng)絡信息安全。

    論文引用格式:郭京城, 舒輝, 熊小兵, 等. 基于代碼碎片化的軟件保護技術[J]. 網(wǎng)絡與信息安全學報, 2020, 6(6): 57-68.

    GUO J C, SHU H, XIONG X B, et al. Software protection technology based on code fragmentation[J]. Chinese Journal of Network and Information Security, 2020, 6(6): 57-68.

    2019?12?05;

    2020?02?21

    舒輝,shuhui@126.com

    國家重點研發(fā)計劃(2016YFB08011601)

    猜你喜歡
    調(diào)用內(nèi)存代碼
    核電項目物項調(diào)用管理的應用研究
    “春夏秋冬”的內(nèi)存
    當代陜西(2019年13期)2019-08-20 03:54:22
    LabWindows/CVI下基于ActiveX技術的Excel調(diào)用
    測控技術(2018年5期)2018-12-09 09:04:46
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    基于系統(tǒng)調(diào)用的惡意軟件檢測技術研究
    基于內(nèi)存的地理信息訪問技術
    利用RFC技術實現(xiàn)SAP系統(tǒng)接口通信
    99在线人妻在线中文字幕| 欧美另类亚洲清纯唯美| 一边摸一边抽搐一进一出视频| 亚洲av成人不卡在线观看播放网| 久久香蕉国产精品| 亚洲人成电影免费在线| 国产aⅴ精品一区二区三区波| 一本综合久久免费| 亚洲中文字幕一区二区三区有码在线看 | 男女床上黄色一级片免费看| 国产精品久久视频播放| 中文字幕最新亚洲高清| 女同久久另类99精品国产91| 一a级毛片在线观看| 精品国产乱码久久久久久男人| 日本一区二区免费在线视频| 男男h啪啪无遮挡| 老汉色∧v一级毛片| 国产欧美日韩一区二区三| av视频在线观看入口| 97超级碰碰碰精品色视频在线观看| 日日摸夜夜添夜夜添小说| 亚洲精品在线美女| 亚洲精品久久成人aⅴ小说| 亚洲七黄色美女视频| 99久久精品国产亚洲精品| 成人精品一区二区免费| 此物有八面人人有两片| 大陆偷拍与自拍| 女警被强在线播放| 精品国产国语对白av| 亚洲 国产 在线| 变态另类丝袜制服| 人人妻人人澡人人看| 99精品在免费线老司机午夜| 久久人人97超碰香蕉20202| 亚洲精品美女久久久久99蜜臀| 99riav亚洲国产免费| 欧洲精品卡2卡3卡4卡5卡区| 欧美精品亚洲一区二区| 国产免费av片在线观看野外av| 久久亚洲真实| 欧美中文综合在线视频| 国产亚洲av高清不卡| 国产蜜桃级精品一区二区三区| 大型av网站在线播放| 精品日产1卡2卡| 免费在线观看视频国产中文字幕亚洲| 国产一区在线观看成人免费| 中国美女看黄片| 欧美中文综合在线视频| 久久精品91蜜桃| 欧美午夜高清在线| 一区在线观看完整版| 亚洲欧美日韩高清在线视频| 自线自在国产av| 亚洲av日韩精品久久久久久密| 午夜精品久久久久久毛片777| 高潮久久久久久久久久久不卡| 久久精品91蜜桃| 亚洲男人天堂网一区| 男人的好看免费观看在线视频 | 少妇的丰满在线观看| 午夜福利影视在线免费观看| 男女午夜视频在线观看| 老鸭窝网址在线观看| 亚洲男人的天堂狠狠| 老司机在亚洲福利影院| 男女床上黄色一级片免费看| 精品一区二区三区四区五区乱码| 亚洲自偷自拍图片 自拍| 国产成人系列免费观看| 午夜福利在线观看吧| 久久久久精品国产欧美久久久| 在线观看66精品国产| 国产av一区二区精品久久| 一级,二级,三级黄色视频| 正在播放国产对白刺激| 老熟妇仑乱视频hdxx| 国产亚洲欧美在线一区二区| 两人在一起打扑克的视频| 国产成+人综合+亚洲专区| 97人妻精品一区二区三区麻豆 | 国产av又大| 一级毛片女人18水好多| 神马国产精品三级电影在线观看 | 黄色视频不卡| www国产在线视频色| 亚洲一区中文字幕在线| 久久天堂一区二区三区四区| 久99久视频精品免费| 久久国产亚洲av麻豆专区| ponron亚洲| 国产精品爽爽va在线观看网站 | av天堂久久9| 精品国产超薄肉色丝袜足j| 美女高潮喷水抽搐中文字幕| 国产精品秋霞免费鲁丝片| 国产亚洲精品综合一区在线观看 | 伊人久久大香线蕉亚洲五| 久久久久久大精品| 精品午夜福利视频在线观看一区| 国产亚洲av高清不卡| 日本精品一区二区三区蜜桃| 久99久视频精品免费| 精品国产国语对白av| 国产成人系列免费观看| 欧美成狂野欧美在线观看| 国产激情欧美一区二区| 伊人久久大香线蕉亚洲五| 俄罗斯特黄特色一大片| 人妻久久中文字幕网| 变态另类成人亚洲欧美熟女 | 搡老熟女国产l中国老女人| 色在线成人网| 日韩大码丰满熟妇| 男男h啪啪无遮挡| 黑人欧美特级aaaaaa片| 国产精品影院久久| 久久亚洲真实| 黄色毛片三级朝国网站| 色在线成人网| 亚洲成av人片免费观看| 国产免费男女视频| 一a级毛片在线观看| 18禁裸乳无遮挡免费网站照片 | 女人爽到高潮嗷嗷叫在线视频| 亚洲欧美日韩无卡精品| 亚洲人成电影观看| 免费观看精品视频网站| 精品人妻1区二区| 亚洲aⅴ乱码一区二区在线播放 | xxx96com| 色在线成人网| 欧美成狂野欧美在线观看| 真人做人爱边吃奶动态| 男人舔女人下体高潮全视频| 国产熟女午夜一区二区三区| 欧美日本视频| 在线观看免费视频网站a站| 高清毛片免费观看视频网站| 热re99久久国产66热| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲国产欧美一区二区综合| 99精品在免费线老司机午夜| 午夜a级毛片| 黄片大片在线免费观看| 精品久久久精品久久久| 免费少妇av软件| 久久精品国产亚洲av高清一级| 三级毛片av免费| 99国产精品99久久久久| 国产欧美日韩一区二区三区在线| 人成视频在线观看免费观看| 国内精品久久久久精免费| 97碰自拍视频| 中国美女看黄片| 中文字幕av电影在线播放| 国产一级毛片七仙女欲春2 | 波多野结衣一区麻豆| 色综合婷婷激情| 国产不卡一卡二| 男人的好看免费观看在线视频 | 一级毛片女人18水好多| 日本欧美视频一区| 中文字幕人妻熟女乱码| 国产精品1区2区在线观看.| 深夜精品福利| 成人三级做爰电影| 欧美一区二区精品小视频在线| 日本免费a在线| 高清在线国产一区| 日韩免费av在线播放| 香蕉丝袜av| 最新在线观看一区二区三区| 咕卡用的链子| 亚洲第一青青草原| 亚洲精华国产精华精| 亚洲男人的天堂狠狠| 悠悠久久av| 午夜亚洲福利在线播放| 亚洲精品av麻豆狂野| 亚洲国产精品999在线| 亚洲精品久久国产高清桃花| 欧美乱色亚洲激情| 久久香蕉国产精品| 亚洲天堂国产精品一区在线| 国产精品久久久av美女十八| 国产麻豆成人av免费视频| 亚洲av五月六月丁香网| 成在线人永久免费视频| 久久午夜综合久久蜜桃| av中文乱码字幕在线| av网站免费在线观看视频| 亚洲色图综合在线观看| 午夜福利一区二区在线看| 欧美日韩福利视频一区二区| 变态另类成人亚洲欧美熟女 | 9热在线视频观看99| 亚洲熟妇熟女久久| 欧美大码av| av天堂在线播放| 久久天躁狠狠躁夜夜2o2o| 真人做人爱边吃奶动态| 日韩欧美三级三区| 亚洲国产中文字幕在线视频| 最好的美女福利视频网| 久久香蕉激情| 久久香蕉精品热| 日韩视频一区二区在线观看| 精品国产乱子伦一区二区三区| 午夜影院日韩av| 欧美乱妇无乱码| 国产免费男女视频| 久久久国产精品麻豆| 欧美中文综合在线视频| 大型黄色视频在线免费观看| 午夜精品在线福利| 久热爱精品视频在线9| 天天添夜夜摸| 天堂影院成人在线观看| 亚洲伊人色综图| 亚洲精品久久国产高清桃花| 国产精品国产高清国产av| 在线天堂中文资源库| 免费久久久久久久精品成人欧美视频| 免费看a级黄色片| 桃红色精品国产亚洲av| 777久久人妻少妇嫩草av网站| 亚洲精品粉嫩美女一区| 久久人人爽av亚洲精品天堂| 亚洲国产精品999在线| 一区在线观看完整版| 亚洲一区中文字幕在线| 久久久久久国产a免费观看| 亚洲avbb在线观看| 亚洲美女黄片视频| 一区在线观看完整版| 美女国产高潮福利片在线看| 99精品欧美一区二区三区四区| 精品久久蜜臀av无| 大型黄色视频在线免费观看| 精品欧美国产一区二区三| 亚洲va日本ⅴa欧美va伊人久久| 国产一区二区三区综合在线观看| 欧美大码av| 美女大奶头视频| 别揉我奶头~嗯~啊~动态视频| www日本在线高清视频| 国产亚洲欧美在线一区二区| 高潮久久久久久久久久久不卡| 日韩精品免费视频一区二区三区| 中文字幕色久视频| 老熟妇仑乱视频hdxx| 久久精品91无色码中文字幕| 日韩国内少妇激情av| 老汉色av国产亚洲站长工具| 成人18禁高潮啪啪吃奶动态图| 美女免费视频网站| 十分钟在线观看高清视频www| 亚洲成人久久性| 亚洲国产欧美一区二区综合| 又黄又爽又免费观看的视频| 黄频高清免费视频| 免费一级毛片在线播放高清视频 | 一级毛片高清免费大全| 免费高清视频大片| 人人澡人人妻人| 欧美黑人精品巨大| 欧美日韩亚洲国产一区二区在线观看| 村上凉子中文字幕在线| aaaaa片日本免费| 亚洲av成人av| www.熟女人妻精品国产| 亚洲国产毛片av蜜桃av| aaaaa片日本免费| 悠悠久久av| 又大又爽又粗| 亚洲欧美精品综合一区二区三区| 亚洲aⅴ乱码一区二区在线播放 | 黑人操中国人逼视频| 亚洲精品美女久久久久99蜜臀| 久久草成人影院| 老熟妇仑乱视频hdxx| 日韩高清综合在线| 亚洲五月色婷婷综合| 国产高清有码在线观看视频 | 国内精品久久久久久久电影| 久久人人97超碰香蕉20202| 久久九九热精品免费| 亚洲午夜精品一区,二区,三区| 亚洲无线在线观看| 黄片播放在线免费| 人人妻人人爽人人添夜夜欢视频| 欧美中文综合在线视频| 在线观看免费视频网站a站| 成人国语在线视频| 91成人精品电影| 亚洲一卡2卡3卡4卡5卡精品中文| 欧美亚洲日本最大视频资源| 青草久久国产| 曰老女人黄片| 狠狠狠狠99中文字幕| 欧美乱码精品一区二区三区| 国产精品自产拍在线观看55亚洲| 一级毛片高清免费大全| 琪琪午夜伦伦电影理论片6080| 人人澡人人妻人| 免费av毛片视频| 人妻久久中文字幕网| 欧美日本亚洲视频在线播放| 女人精品久久久久毛片| 欧美日本亚洲视频在线播放| 两人在一起打扑克的视频| 亚洲专区中文字幕在线| 免费在线观看黄色视频的| 亚洲精品在线美女| 久久午夜亚洲精品久久| 亚洲精品国产区一区二| 给我免费播放毛片高清在线观看| 777久久人妻少妇嫩草av网站| 搡老妇女老女人老熟妇| 不卡av一区二区三区| 丝袜美腿诱惑在线| 国产成+人综合+亚洲专区| 91成年电影在线观看| 亚洲欧美日韩高清在线视频| 天堂√8在线中文| 50天的宝宝边吃奶边哭怎么回事| 十八禁网站免费在线| 正在播放国产对白刺激| 国产精品免费一区二区三区在线| 国产日韩一区二区三区精品不卡| 亚洲男人天堂网一区| 欧美国产日韩亚洲一区| 午夜视频精品福利| 免费观看人在逋| 99久久99久久久精品蜜桃| 亚洲精品久久成人aⅴ小说| 久久香蕉激情| 国产99白浆流出| 亚洲五月婷婷丁香| 妹子高潮喷水视频| 国产欧美日韩一区二区精品| 成人av一区二区三区在线看| 在线观看免费午夜福利视频| 久久久久久人人人人人| 国产国语露脸激情在线看| 欧美一区二区精品小视频在线| 波多野结衣一区麻豆| 欧美日韩黄片免| 一本久久中文字幕| 色哟哟哟哟哟哟| 大香蕉久久成人网| 亚洲一区二区三区色噜噜| 欧美成狂野欧美在线观看| 激情视频va一区二区三区| 视频在线观看一区二区三区| 黑人巨大精品欧美一区二区mp4| 久久天躁狠狠躁夜夜2o2o| av免费在线观看网站| 亚洲aⅴ乱码一区二区在线播放 | 少妇熟女aⅴ在线视频| 精品免费久久久久久久清纯| 成人国产综合亚洲| 免费看十八禁软件| 999久久久精品免费观看国产| 亚洲人成电影观看| 亚洲成人免费电影在线观看| 一本一本综合久久| 国产女主播在线喷水免费视频网站 | 日韩高清综合在线| 精品一区二区三区视频在线观看免费| 日韩高清综合在线| 白带黄色成豆腐渣| 亚洲精品国产成人久久av| 精品久久久久久久久久免费视频| 搡女人真爽免费视频火全软件 | 日日夜夜操网爽| 长腿黑丝高跟| 日韩欧美在线乱码| 校园人妻丝袜中文字幕| 成年版毛片免费区| www.www免费av| 日韩中文字幕欧美一区二区| 真人一进一出gif抽搐免费| 日本黄大片高清| 国产淫片久久久久久久久| 成人毛片a级毛片在线播放| 精品一区二区三区视频在线| 男人舔奶头视频| 在线看三级毛片| av在线观看视频网站免费| 欧美丝袜亚洲另类 | 又爽又黄a免费视频| 国产精品久久久久久精品电影| 直男gayav资源| 亚洲av.av天堂| av在线老鸭窝| 琪琪午夜伦伦电影理论片6080| 久久久久久久久中文| av在线天堂中文字幕| 欧美人与善性xxx| 亚洲av熟女| 国产黄片美女视频| 国产成人影院久久av| 国产精品久久久久久久电影| av女优亚洲男人天堂| 男女啪啪激烈高潮av片| 成人鲁丝片一二三区免费| 3wmmmm亚洲av在线观看| 亚洲天堂国产精品一区在线| 国产av不卡久久| 麻豆一二三区av精品| 国产一区二区三区在线臀色熟女| 欧美绝顶高潮抽搐喷水| 丝袜美腿在线中文| 熟女电影av网| 一进一出抽搐动态| 97人妻精品一区二区三区麻豆| 色av中文字幕| 精品乱码久久久久久99久播| 国产精品电影一区二区三区| 国产精品女同一区二区软件 | 日本一二三区视频观看| 男女啪啪激烈高潮av片| 久久精品国产99精品国产亚洲性色| eeuss影院久久| 在线播放国产精品三级| 亚洲av美国av| 18+在线观看网站| 搡老妇女老女人老熟妇| 精品不卡国产一区二区三区| 精品一区二区三区视频在线| 2021天堂中文幕一二区在线观| 久久精品国产99精品国产亚洲性色| 午夜a级毛片| 国产又黄又爽又无遮挡在线| 国国产精品蜜臀av免费| 日韩国内少妇激情av| 嫩草影院入口| 色哟哟哟哟哟哟| 国产中年淑女户外野战色| 美女大奶头视频| 日本在线视频免费播放| 亚洲av成人av| 国产精品亚洲美女久久久| 色播亚洲综合网| 日本黄色视频三级网站网址| 三级毛片av免费| 美女大奶头视频| 国产av一区在线观看免费| 欧美精品国产亚洲| 91狼人影院| 成人午夜高清在线视频| 午夜福利在线观看免费完整高清在 | 国产精品三级大全| 欧美绝顶高潮抽搐喷水| 18禁裸乳无遮挡免费网站照片| 麻豆国产97在线/欧美| 啦啦啦观看免费观看视频高清| 亚洲无线在线观看| 少妇高潮的动态图| 99久久精品国产国产毛片| 亚洲精品亚洲一区二区| 国产精品久久久久久久久免| 免费电影在线观看免费观看| 天堂av国产一区二区熟女人妻| 午夜亚洲福利在线播放| 欧美区成人在线视频| 午夜爱爱视频在线播放| 成人三级黄色视频| 十八禁国产超污无遮挡网站| 成人特级av手机在线观看| 日韩,欧美,国产一区二区三区 | 亚洲真实伦在线观看| 欧美另类亚洲清纯唯美| 久久精品国产清高在天天线| 99热精品在线国产| 我要搜黄色片| 在线天堂最新版资源| 欧美xxxx性猛交bbbb| 亚洲成人中文字幕在线播放| 99热这里只有是精品50| 美女xxoo啪啪120秒动态图| 成年版毛片免费区| 成人av在线播放网站| 国产 一区精品| 国产又黄又爽又无遮挡在线| 国产一区二区三区在线臀色熟女| 亚洲经典国产精华液单| 国产成人aa在线观看| 精品人妻视频免费看| 国产大屁股一区二区在线视频| a级毛片免费高清观看在线播放| 欧美日韩瑟瑟在线播放| 亚洲av免费高清在线观看| ponron亚洲| 精品日产1卡2卡| 精品午夜福利在线看| 欧美日韩国产亚洲二区| 亚洲精品久久国产高清桃花| 神马国产精品三级电影在线观看| 亚洲精品乱码久久久v下载方式| 亚洲内射少妇av| 日韩国内少妇激情av| 禁无遮挡网站| 亚洲欧美日韩无卡精品| 精品久久久久久久久久免费视频| 亚洲av一区综合| 全区人妻精品视频| 亚洲成a人片在线一区二区| 久久久成人免费电影| 日韩一区二区视频免费看| 一区二区三区四区激情视频 | 九九在线视频观看精品| 非洲黑人性xxxx精品又粗又长| 精品国产三级普通话版| 天堂av国产一区二区熟女人妻| 欧美激情在线99| 99久久久亚洲精品蜜臀av| 亚洲欧美精品综合久久99| 深夜精品福利| 日本熟妇午夜| 麻豆成人午夜福利视频| 午夜福利欧美成人| av专区在线播放| 欧美激情在线99| 国产精品综合久久久久久久免费| 亚洲人成网站在线播| 变态另类丝袜制服| 伦理电影大哥的女人| 欧美色视频一区免费| 美女免费视频网站| 精品国内亚洲2022精品成人| 亚洲aⅴ乱码一区二区在线播放| 国产高清视频在线播放一区| 婷婷丁香在线五月| 精品久久国产蜜桃| 波野结衣二区三区在线| 国产日本99.免费观看| 黄色女人牲交| 18+在线观看网站| www.www免费av| 欧美日本亚洲视频在线播放| 亚洲人成网站高清观看| а√天堂www在线а√下载| 日本-黄色视频高清免费观看| 一级av片app| 长腿黑丝高跟| 免费无遮挡裸体视频| 三级毛片av免费| 免费av毛片视频| av在线亚洲专区| 高清毛片免费观看视频网站| 深夜a级毛片| 大又大粗又爽又黄少妇毛片口| 亚洲av第一区精品v没综合| 99久久久亚洲精品蜜臀av| 亚洲avbb在线观看| a级毛片a级免费在线| 亚洲人成网站在线播放欧美日韩| xxxwww97欧美| 深夜精品福利| 成人国产综合亚洲| 在线免费观看不下载黄p国产 | 国产亚洲精品综合一区在线观看| 俺也久久电影网| 久久国产乱子免费精品| 美女被艹到高潮喷水动态| 色精品久久人妻99蜜桃| 亚洲乱码一区二区免费版| 精品久久久噜噜| 国产高清有码在线观看视频| 大型黄色视频在线免费观看| 亚洲天堂国产精品一区在线| 少妇裸体淫交视频免费看高清| 我的老师免费观看完整版| 亚洲男人的天堂狠狠| 中文字幕熟女人妻在线| 国产午夜福利久久久久久| 99热这里只有是精品在线观看| eeuss影院久久| 男女那种视频在线观看| 综合色av麻豆| 白带黄色成豆腐渣| 毛片女人毛片| 99国产极品粉嫩在线观看| 精品久久久久久成人av| 欧美精品国产亚洲| 中国美白少妇内射xxxbb| 久久亚洲真实| 精品一区二区三区视频在线观看免费| 久久久久九九精品影院| 人妻夜夜爽99麻豆av| aaaaa片日本免费| 日韩中字成人| 十八禁国产超污无遮挡网站| a级毛片免费高清观看在线播放| 欧美绝顶高潮抽搐喷水| 久久天躁狠狠躁夜夜2o2o| 亚洲成人久久性| 干丝袜人妻中文字幕| www.色视频.com| 免费在线观看日本一区| 偷拍熟女少妇极品色| 波野结衣二区三区在线| 别揉我奶头~嗯~啊~动态视频| 午夜影院日韩av| 久久久久精品国产欧美久久久| 床上黄色一级片| 不卡视频在线观看欧美| 亚洲欧美清纯卡通| 午夜免费成人在线视频| 一卡2卡三卡四卡精品乱码亚洲|