抗逆向分析的ELF文件保護(hù)技術(shù)研究與實(shí)現(xiàn)
發(fā)布時(shí)間:2021-01-04 00:43
隨著計(jì)算機(jī)技術(shù)的快速發(fā)展和進(jìn)步,軟件被越來越多地應(yīng)用到各行各業(yè)中,幾乎已經(jīng)成為每個(gè)人生活中必備的工具。在軟件行業(yè)快速發(fā)展的同時(shí),二進(jìn)制分析技術(shù)和逆向工程技術(shù)也在快速的發(fā)展和進(jìn)步,目前已經(jīng)有成熟的自動(dòng)化逆向工具集出現(xiàn),這使得對(duì)軟件的分析能力和分析效率大大提高,給軟件的安全性和版權(quán)問題帶來了極大威脅。為應(yīng)對(duì)逆向分析給軟件帶來的安全威脅,目前主要采取的保護(hù)措施有:一、加殼,使用強(qiáng)度比較高的虛擬殼或者通過自己編寫的生僻殼對(duì)目標(biāo)軟件進(jìn)行加殼保護(hù);二、代碼混淆,通過對(duì)軟件進(jìn)行代碼混淆處理來改變程序的邏輯結(jié)構(gòu)和增加程序的復(fù)雜度,以此來增加逆向分析的難度。本文以增強(qiáng)ELF文件抵抗逆向分析的能力為目的,對(duì)Linux平臺(tái)下的ELF文件的加殼和代碼混淆技術(shù)進(jìn)行了重點(diǎn)研究,本文的主要工作包括:一、ELF文件加殼技術(shù)的研究。首先通過對(duì)ELF文件的加載過程和ELF文件常見加殼方法的原理進(jìn)行分析,總結(jié)出常見加殼方法存在的不足,然后提出了一種包含式ELF文件加殼方法。該加殼方法使得ELF文件殼的加密與解密或壓縮與解壓縮算法能夠更加容易進(jìn)行更換。二、ELF二進(jìn)制混淆技術(shù)的研究。首先對(duì)常見二進(jìn)制混淆技術(shù)進(jìn)行了分析,總結(jié)出...
【文章來源】: 徐應(yīng)朝 電子科技大學(xué)
【文章頁數(shù)】:80 頁
【學(xué)位級(jí)別】:碩士
【部分圖文】:
ELF文件頭數(shù)據(jù)結(jié)構(gòu)
第二章抗逆向分析的ELF文件保護(hù)技術(shù)有的時(shí)候,ELF文件頭中所描述的信息可能與文件的實(shí)際信息不符。比如在可執(zhí)行類型ELF文件中與節(jié)頭表相關(guān)的信息可以隨意填寫,并不會(huì)影響程序的正常運(yùn)行。2.1.4ELF程序頭表ELF程序頭表由一系列程序頭表項(xiàng)組成,每個(gè)表項(xiàng)描述了對(duì)應(yīng)段的相關(guān)信息,有多少個(gè)表項(xiàng)就表示有多少個(gè)程序段。程序頭表是程序裝載不可或缺的一部分。一個(gè)ELF文件包含一個(gè)或多個(gè)段。ELF文件頭中的e_phentsize和e_phnum成員分別指定程序頭表的大小和文件包含的段的數(shù)量。在32位和64位系統(tǒng)上,ELF程序頭分別用結(jié)構(gòu)體ELf32_Phdr和Elf64_Phdr來表示,如圖2-3所示和圖2-4所示。ELF文件頭中成員e_phnum的值表示有多少個(gè)這種結(jié)構(gòu)類型的數(shù)據(jù)。圖2-332位ELF程序頭結(jié)構(gòu)圖2-464位ELF程序頭結(jié)構(gòu)可以看出在32位和64位系統(tǒng)上ELF程序頭除了成員的大小和布局順序不一樣之外,并沒有其它區(qū)別。各個(gè)成員的含義如下:p_type指明對(duì)應(yīng)段的類型或者如何解析該程序頭的信息。p_offset該段相對(duì)于文件頭部的偏移,以字節(jié)為單位。p_vaddr該段在進(jìn)程地址空間中的起始虛擬地址。如果文件類型為動(dòng)態(tài)鏈接庫則為相9
第二章抗逆向分析的ELF文件保護(hù)技術(shù)有的時(shí)候,ELF文件頭中所描述的信息可能與文件的實(shí)際信息不符。比如在可執(zhí)行類型ELF文件中與節(jié)頭表相關(guān)的信息可以隨意填寫,并不會(huì)影響程序的正常運(yùn)行。2.1.4ELF程序頭表ELF程序頭表由一系列程序頭表項(xiàng)組成,每個(gè)表項(xiàng)描述了對(duì)應(yīng)段的相關(guān)信息,有多少個(gè)表項(xiàng)就表示有多少個(gè)程序段。程序頭表是程序裝載不可或缺的一部分。一個(gè)ELF文件包含一個(gè)或多個(gè)段。ELF文件頭中的e_phentsize和e_phnum成員分別指定程序頭表的大小和文件包含的段的數(shù)量。在32位和64位系統(tǒng)上,ELF程序頭分別用結(jié)構(gòu)體ELf32_Phdr和Elf64_Phdr來表示,如圖2-3所示和圖2-4所示。ELF文件頭中成員e_phnum的值表示有多少個(gè)這種結(jié)構(gòu)類型的數(shù)據(jù)。圖2-332位ELF程序頭結(jié)構(gòu)圖2-464位ELF程序頭結(jié)構(gòu)可以看出在32位和64位系統(tǒng)上ELF程序頭除了成員的大小和布局順序不一樣之外,并沒有其它區(qū)別。各個(gè)成員的含義如下:p_type指明對(duì)應(yīng)段的類型或者如何解析該程序頭的信息。p_offset該段相對(duì)于文件頭部的偏移,以字節(jié)為單位。p_vaddr該段在進(jìn)程地址空間中的起始虛擬地址。如果文件類型為動(dòng)態(tài)鏈接庫則為相9
【參考文獻(xiàn)】:
期刊論文
[1]Linux系統(tǒng)下改進(jìn)的軟件加殼保護(hù)技術(shù)[J]. 羅瑜,王鐘斐,賈曉云. 電子設(shè)計(jì)工程. 2012(10)
[2]代碼混淆算法有效性評(píng)估[J]. 趙玉潔,湯戰(zhàn)勇,王妮,房鼎益,顧元祥. 軟件學(xué)報(bào). 2012(03)
[3]路徑模糊:一種有效抵抗符號(hào)執(zhí)行的二進(jìn)制混淆技術(shù)[J]. 賈春福,王志,劉昕,劉昕海. 計(jì)算機(jī)研究與發(fā)展. 2011(11)
[4]基于反動(dòng)態(tài)跟蹤的軟件加密技術(shù)[J]. 殷新華. 電腦學(xué)習(xí). 2005(04)
博士論文
[1]代碼混淆模型研究[D]. 楊宇波.北京郵電大學(xué) 2015
[2]二進(jìn)制代碼路徑混淆技術(shù)研究[D]. 王志.南開大學(xué) 2012
碩士論文
[1]基于虛擬機(jī)框架的代碼混淆技術(shù)研究[D]. 潘雁.戰(zhàn)略支援部隊(duì)信息工程大學(xué) 2018
[2]基于ROP技術(shù)的二進(jìn)制混淆技術(shù)研究[D]. 郭佳.南京大學(xué) 2017
[3]基于白盒密碼的動(dòng)態(tài)自修改代碼混淆技術(shù)研究與實(shí)現(xiàn)[D]. 劉菁.電子科技大學(xué) 2017
[4]面向可執(zhí)行程序的代碼混淆技術(shù)研究與實(shí)現(xiàn)[D]. 孫奇.國(guó)防科學(xué)技術(shù)大學(xué) 2011
[5]IA-64 Linux平臺(tái)上的ELF文件加殼技術(shù)研究[D]. 蔡智力.西安電子科技大學(xué) 2010
本文編號(hào):2955805
【文章來源】: 徐應(yīng)朝 電子科技大學(xué)
【文章頁數(shù)】:80 頁
【學(xué)位級(jí)別】:碩士
【部分圖文】:
ELF文件頭數(shù)據(jù)結(jié)構(gòu)
第二章抗逆向分析的ELF文件保護(hù)技術(shù)有的時(shí)候,ELF文件頭中所描述的信息可能與文件的實(shí)際信息不符。比如在可執(zhí)行類型ELF文件中與節(jié)頭表相關(guān)的信息可以隨意填寫,并不會(huì)影響程序的正常運(yùn)行。2.1.4ELF程序頭表ELF程序頭表由一系列程序頭表項(xiàng)組成,每個(gè)表項(xiàng)描述了對(duì)應(yīng)段的相關(guān)信息,有多少個(gè)表項(xiàng)就表示有多少個(gè)程序段。程序頭表是程序裝載不可或缺的一部分。一個(gè)ELF文件包含一個(gè)或多個(gè)段。ELF文件頭中的e_phentsize和e_phnum成員分別指定程序頭表的大小和文件包含的段的數(shù)量。在32位和64位系統(tǒng)上,ELF程序頭分別用結(jié)構(gòu)體ELf32_Phdr和Elf64_Phdr來表示,如圖2-3所示和圖2-4所示。ELF文件頭中成員e_phnum的值表示有多少個(gè)這種結(jié)構(gòu)類型的數(shù)據(jù)。圖2-332位ELF程序頭結(jié)構(gòu)圖2-464位ELF程序頭結(jié)構(gòu)可以看出在32位和64位系統(tǒng)上ELF程序頭除了成員的大小和布局順序不一樣之外,并沒有其它區(qū)別。各個(gè)成員的含義如下:p_type指明對(duì)應(yīng)段的類型或者如何解析該程序頭的信息。p_offset該段相對(duì)于文件頭部的偏移,以字節(jié)為單位。p_vaddr該段在進(jìn)程地址空間中的起始虛擬地址。如果文件類型為動(dòng)態(tài)鏈接庫則為相9
第二章抗逆向分析的ELF文件保護(hù)技術(shù)有的時(shí)候,ELF文件頭中所描述的信息可能與文件的實(shí)際信息不符。比如在可執(zhí)行類型ELF文件中與節(jié)頭表相關(guān)的信息可以隨意填寫,并不會(huì)影響程序的正常運(yùn)行。2.1.4ELF程序頭表ELF程序頭表由一系列程序頭表項(xiàng)組成,每個(gè)表項(xiàng)描述了對(duì)應(yīng)段的相關(guān)信息,有多少個(gè)表項(xiàng)就表示有多少個(gè)程序段。程序頭表是程序裝載不可或缺的一部分。一個(gè)ELF文件包含一個(gè)或多個(gè)段。ELF文件頭中的e_phentsize和e_phnum成員分別指定程序頭表的大小和文件包含的段的數(shù)量。在32位和64位系統(tǒng)上,ELF程序頭分別用結(jié)構(gòu)體ELf32_Phdr和Elf64_Phdr來表示,如圖2-3所示和圖2-4所示。ELF文件頭中成員e_phnum的值表示有多少個(gè)這種結(jié)構(gòu)類型的數(shù)據(jù)。圖2-332位ELF程序頭結(jié)構(gòu)圖2-464位ELF程序頭結(jié)構(gòu)可以看出在32位和64位系統(tǒng)上ELF程序頭除了成員的大小和布局順序不一樣之外,并沒有其它區(qū)別。各個(gè)成員的含義如下:p_type指明對(duì)應(yīng)段的類型或者如何解析該程序頭的信息。p_offset該段相對(duì)于文件頭部的偏移,以字節(jié)為單位。p_vaddr該段在進(jìn)程地址空間中的起始虛擬地址。如果文件類型為動(dòng)態(tài)鏈接庫則為相9
【參考文獻(xiàn)】:
期刊論文
[1]Linux系統(tǒng)下改進(jìn)的軟件加殼保護(hù)技術(shù)[J]. 羅瑜,王鐘斐,賈曉云. 電子設(shè)計(jì)工程. 2012(10)
[2]代碼混淆算法有效性評(píng)估[J]. 趙玉潔,湯戰(zhàn)勇,王妮,房鼎益,顧元祥. 軟件學(xué)報(bào). 2012(03)
[3]路徑模糊:一種有效抵抗符號(hào)執(zhí)行的二進(jìn)制混淆技術(shù)[J]. 賈春福,王志,劉昕,劉昕海. 計(jì)算機(jī)研究與發(fā)展. 2011(11)
[4]基于反動(dòng)態(tài)跟蹤的軟件加密技術(shù)[J]. 殷新華. 電腦學(xué)習(xí). 2005(04)
博士論文
[1]代碼混淆模型研究[D]. 楊宇波.北京郵電大學(xué) 2015
[2]二進(jìn)制代碼路徑混淆技術(shù)研究[D]. 王志.南開大學(xué) 2012
碩士論文
[1]基于虛擬機(jī)框架的代碼混淆技術(shù)研究[D]. 潘雁.戰(zhàn)略支援部隊(duì)信息工程大學(xué) 2018
[2]基于ROP技術(shù)的二進(jìn)制混淆技術(shù)研究[D]. 郭佳.南京大學(xué) 2017
[3]基于白盒密碼的動(dòng)態(tài)自修改代碼混淆技術(shù)研究與實(shí)現(xiàn)[D]. 劉菁.電子科技大學(xué) 2017
[4]面向可執(zhí)行程序的代碼混淆技術(shù)研究與實(shí)現(xiàn)[D]. 孫奇.國(guó)防科學(xué)技術(shù)大學(xué) 2011
[5]IA-64 Linux平臺(tái)上的ELF文件加殼技術(shù)研究[D]. 蔡智力.西安電子科技大學(xué) 2010
本文編號(hào):2955805
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2955805.html
最近更新
教材專著