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

        ?

        軟件保護(hù)系統(tǒng)的研究與設(shè)計(jì)

        2018-03-15 09:15:50郭剛
        科技視界 2018年35期

        郭剛

        【摘 要】隨著越來(lái)越多破解工具的誕生,非法破解一款目標(biāo)程序的時(shí)間越來(lái)越短,方法越來(lái)越多。因此軟件開(kāi)發(fā)者除了要做好主體程序之外,還要花費(fèi)大量的時(shí)間與精力考慮如何保護(hù)自己的軟件,使得開(kāi)發(fā)軟件的成本大大增加,也對(duì)行業(yè)的發(fā)展帶來(lái)了極為不利的影響。本文中介紹的Virtual Safengine軟件保護(hù)系統(tǒng)采用數(shù)據(jù)校驗(yàn)、壓縮、轉(zhuǎn)儲(chǔ)等技術(shù),從效率、安全性等出發(fā),提供了多個(gè)軟件保護(hù)方案供用戶(hù)選擇。并且使用了一種新的虛擬化方案,結(jié)合inlineHook技術(shù),收集程序調(diào)用API的樣本數(shù)據(jù),不斷優(yōu)化生成虛擬機(jī)OPCODE的方法,達(dá)到滿(mǎn)足程序?qū)崟r(shí)運(yùn)行的保護(hù)效果。

        【關(guān)鍵詞】軟件安全;加殼技術(shù);虛擬化

        中圖分類(lèi)號(hào): TP302;TP309 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2018)35-0012-002

        DOI:10.19694/j.cnki.issn2095-2457.2018.35.006

        Research and design of software protection system

        GUO Gang

        (School of Computer and Information Security,Guilin University of Electronic Technology,

        Guilin Guangxi 541004,China)

        【Abstract】With the advent of more and more cracking tools, the time and methods of illegally cracking a target program are becoming shorter and more numerous. Therefore, software developers should not only word hard in the program code, but also spend a lot of time in thinking about how to protect their own software, which greatly increases the cost of developing software and has a extremely negative impact on the development of the industry. The Virtual Safengine software protection system introduced in this paper provides multiple software protection schemes for users to choose including data validation, compression, dump and other technologies for the efficiency, security and so on .In addition, a new virtualization scheme is used to collect the sample data of the API called by program in combination with inline-Hook technology and constantly optimize the method of generating the virtual machine OPCODE to achieve the protection effect of real-time operation of the program.

        【Key words】Software Security; Shell; Virtualization

        0 引言

        軟件開(kāi)發(fā)者本應(yīng)專(zhuān)注于軟件的開(kāi)發(fā)和功能的完善,如今卻要為了保護(hù)軟件不被破解而憂(yōu)心忡忡,給軟件開(kāi)發(fā)的過(guò)程帶來(lái)了更大的開(kāi)銷(xiāo)。在這種情況下,軟件保護(hù)技術(shù)就誕生了,這種技術(shù)的分類(lèi)有很多,但基本都可涵蓋在加殼技術(shù)與代碼虛擬化技術(shù)之中。加殼技術(shù)可以簡(jiǎn)單的解為多種軟件保護(hù)技術(shù)的集合。代碼虛擬技術(shù)也被成為“代碼虛擬機(jī)”,其本質(zhì)就是將代碼變形成一種轉(zhuǎn)義的形式,通過(guò)許多模擬代碼來(lái)模擬被保護(hù)代碼的執(zhí)行,可以說(shuō)是保護(hù)效果最有效、最可靠,但是也最復(fù)雜的一種軟件保護(hù)技術(shù)。

        1 系統(tǒng)設(shè)計(jì)

        Virtual Safengine由Shell保護(hù)模塊、API監(jiān)控模塊、進(jìn)程分析模塊、虛擬機(jī)保護(hù)模塊四部分組成。實(shí)現(xiàn)了可高度自定義且兼容性高的保護(hù)功能以及可自動(dòng)優(yōu)化的代碼虛擬化功能。

        1.1 Shell保護(hù)模塊設(shè)計(jì)

        Shell保護(hù)模塊負(fù)責(zé)加殼操作和外殼運(yùn)行處理,其中加殼操作的流程是:

        (1)解析PE文件頭,提取關(guān)鍵數(shù)據(jù)存儲(chǔ)(支持exe與dll文件)。

        (2)合并文件區(qū)段,并修復(fù)合并之后的PE文件結(jié)構(gòu)。

        (3)對(duì)關(guān)鍵文件數(shù)據(jù)表項(xiàng)進(jìn)行加密與轉(zhuǎn)儲(chǔ)。

        (4)對(duì)文件區(qū)段進(jìn)行壓縮。

        (5)增添反調(diào)試、反虛擬機(jī)、反Dump、數(shù)據(jù)校驗(yàn)等保護(hù)技術(shù)。

        在用戶(hù)運(yùn)行加殼后的程序時(shí),本模塊會(huì)模擬PE加載的過(guò)程。包括重定位、區(qū)段解壓解密等,使加殼后的程序能正常運(yùn)行。

        為了使整個(gè)操作的可移植性、可擴(kuò)展性高,本系統(tǒng)將主要操作封裝成C++類(lèi),并將整個(gè)加殼操作和外殼的代碼封裝為DLL,以便達(dá)到界面與功能邏輯上的分離。

        1.2 API監(jiān)控模塊設(shè)計(jì)

        該模塊將指定API進(jìn)行修改,使其改變執(zhí)行流,實(shí)現(xiàn)跳轉(zhuǎn)到預(yù)先設(shè)計(jì)的代碼之中,達(dá)到監(jiān)控API時(shí)觸發(fā)的效果,最終目的為了采集到該軟件的API調(diào)用信息。

        該模塊通過(guò)導(dǎo)入表掛起注入的方式將監(jiān)控DLL注入到目標(biāo)進(jìn)程中,該注入方式兼容性和穩(wěn)定性都非常好,并且注入的時(shí)機(jī)相對(duì)來(lái)說(shuō)較為合適。整個(gè)DLL的注入需要配合一些Windows API的結(jié)合,分四個(gè)步驟。使用CreateProcess以CREATE_SUSPENDED的標(biāo)志打開(kāi);讀取目標(biāo)進(jìn)程虛存空間的頭結(jié)構(gòu),解析頭結(jié)構(gòu),進(jìn)一步提取導(dǎo)入表數(shù)據(jù),對(duì)其添加注入DLL;修正PE頭結(jié)構(gòu);恢復(fù)運(yùn)行。

        本系統(tǒng)在注入監(jiān)控DLL后,DLL將對(duì)宿主程序指定模塊的API進(jìn)行inlineHook,使其跳轉(zhuǎn)到設(shè)計(jì)好的ShellCode中,該ShellCode負(fù)責(zé)收集API調(diào)用信息并發(fā)送給監(jiān)控端。

        1.3 進(jìn)程分析模塊設(shè)計(jì)

        本模塊通過(guò)調(diào)用3個(gè)Windows提供的API,OpenProcess、EnumProcessModules、EnumProcesses,獲取進(jìn)程列表與進(jìn)程模塊,之后獲取模塊句柄。最后將上述保存的信息顯示在UI控件,顯示的數(shù)據(jù)有模塊基址、鏡像大小和模塊絕對(duì)路徑。根據(jù)UI的信息顯示,可以很方便的觀察到當(dāng)前系統(tǒng)的大部分進(jìn)程信息,瀏覽到該進(jìn)程中存在的模塊信息,為Shell保護(hù)模塊的AntiDump和API監(jiān)控模塊的DLL注入提供了直觀的效果圖。

        1.4 虛擬機(jī)保護(hù)模塊設(shè)計(jì)

        該模塊的原理是將x86編碼的指令通過(guò)一套自定義的字節(jié)碼轉(zhuǎn)換為只有虛擬機(jī)能識(shí)別的指令。由于虛擬機(jī)的字節(jié)碼編碼方式是不公開(kāi)的,所以調(diào)試人員很難對(duì)其中的指令進(jìn)行一一分解。其中包含4個(gè)子模塊,分別是反編譯模塊、虛擬化編碼器、虛擬指令譯碼器、虛擬機(jī)附加模塊。

        其中,反編譯模塊負(fù)責(zé)將代碼中的二進(jìn)制信息轉(zhuǎn)換為x86匯編語(yǔ)言,供虛擬化編碼器讀取;虛擬化編碼器負(fù)責(zé)將反匯編后的指令通過(guò)自定義的規(guī)則進(jìn)行虛擬化指令的轉(zhuǎn)換。生成虛擬指令序列;虛擬指令譯碼器負(fù)責(zé)將虛擬化指令翻譯為x86匯編語(yǔ)言執(zhí)行,并保證當(dāng)前程序的上下文環(huán)境等價(jià)輸出;虛擬機(jī)附加模塊負(fù)責(zé)將虛擬機(jī)中的字節(jié)碼表、跳轉(zhuǎn)分支表、虛擬指令序列表和虛擬機(jī)代碼以新節(jié)的方式寫(xiě)入目標(biāo)程序的PE結(jié)構(gòu)中。

        2 系統(tǒng)特色

        2.1 高度自定義的軟件保護(hù)方案

        一款成熟的軟件需要針對(duì)不同的使用群體提供不同的保護(hù)方案。所以,本系統(tǒng)實(shí)現(xiàn)了從常規(guī)的三套方案到用戶(hù)高度自定義的保護(hù)方案,用戶(hù)可以根據(jù)軟件的運(yùn)行情況來(lái)進(jìn)行選擇,在安全性和性能之間達(dá)到一個(gè)最均衡的狀態(tài)。

        2.2 基于API調(diào)用情況的代碼虛擬化

        用戶(hù)有時(shí)不能對(duì)某款軟件的運(yùn)行狀態(tài)以及API調(diào)用狀況進(jìn)行深入的了解,所以本系統(tǒng)API監(jiān)控模塊會(huì)在用戶(hù)的操作之前,盡可能的采集軟件的API調(diào)用情況作為樣本數(shù)據(jù),傳遞給虛擬機(jī)進(jìn)行分析,再有的放矢的對(duì)關(guān)鍵代碼進(jìn)行虛擬化,保證效率和安全性。

        2.3 自定義字節(jié)碼的生成

        很多逆向工作者對(duì)x86的指令集都相當(dāng)熟悉,所以改變其中部分指令集必不可少。同時(shí)一套指令集如果不進(jìn)行更替,隨著時(shí)間的推移,被破譯的可能性會(huì)增加。針對(duì)該問(wèn)題,本系統(tǒng)每次啟動(dòng)都會(huì)生成一套新的字節(jié)碼,迫使破譯者每次脫殼都需要重新理解指令集。

        3 總結(jié)

        在本文中我們介紹了Virtual Safengine這樣一款功能豐富的軟件保護(hù)系統(tǒng)的設(shè)計(jì)框架,與一種新的代碼虛擬化方案,通過(guò)結(jié)合API調(diào)用信息,調(diào)整代碼虛擬化的過(guò)程。我們的測(cè)試結(jié)果顯示本系統(tǒng)可以對(duì)大多數(shù)exe程序與DLL文件進(jìn)行加殼。毫無(wú)疑問(wèn),未來(lái)對(duì)于軟件知識(shí)產(chǎn)權(quán)保護(hù)的力度會(huì)越來(lái)越大,我們希望通過(guò)在軟件保護(hù)這一領(lǐng)域的持續(xù)研究,更好地了解終端用戶(hù)目前面臨的安全風(fēng)險(xiǎn)與真實(shí)需求。這樣,我們就可以繼續(xù)在保護(hù)軟件知識(shí)產(chǎn)權(quán)的道路上走下去。

        【參考文獻(xiàn)】

        [1]章立春.軟件保護(hù)及分析技術(shù)[M].北京:電子工業(yè)出版社,2016.8.

        [2]章立春.代碼虛擬與自動(dòng)化分析[M].北京:電子工業(yè)出版社,2017.10.

        [3]戚利.Windows PE權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2011.

        [4]段鋼.加密與解密[M].北京:電子工業(yè)出版社,2008.7.

        [5]任曉琿.黑客免殺攻防[M].北京:機(jī)械工業(yè)出版社,2013.10.

        [6](韓)李承遠(yuǎn)著.逆向工程核心原理[M].武傳海等譯.北京:人民郵電出版社,2014.5.

        [7]Amir Averbuch, Michael Kiperberg, Nezer Jacob Zaidenberg. Truly-Protect: An Efficient VM-Based Software Protection[C]. IEEE Systems Journal,2013.

        [8]杜春來(lái)等.一種基于指令虛擬化的代碼保護(hù)模型[J].信息網(wǎng)絡(luò)安全,2017.

        [9]Johannes Kinder. Towards Static Analysis of Virtualization-Obfuscated Binaries[C].Reverse Engineering (WCRE), 2012 19th Working Conference on,2012.

        中文国产成人精品久久一区| 亚洲av熟女天堂久久天堂| 人妻在线有码中文字幕 | 伊人久久大香线蕉av色婷婷色| 久久无码专区国产精品s| 亚洲欧美成人一区二区在线电影 | 四虎影视永久地址www成人| 不卡视频一区二区三区| 国产av一区二区三区丝袜| 日本在线观看一区二区视频| 一本久久a久久免费综合| 最近中文字幕国语免费| 国产精品狼人久久久久影院| 在线亚洲人成电影网站色www| 伊人亚洲综合网色AV另类| 国产精品美女久久久浪潮av| 一区二区视频资源在线观看| 亚洲一区二区三区偷拍自拍| 精品一区二区三区a桃蜜| 三级黄色片免费久久久 | 国产激情视频一区二区三区| 亚洲人成电影在线无码| 国产欧美曰韩一区二区三区 | 国产一区二区亚洲av| 国产洗浴会所三级av| 亚洲av永久无码精品漫画| 免费国精产品自偷自偷免费看| 免费av在线国模| 中文人妻av大区中文不卡| 亚洲天堂一区二区偷拍| 无遮挡1000部拍拍拍免费| 国产av电影区二区三区曰曰骚网| 国产69口爆吞精在线视频喝尿| 国产精品久久av色婷婷网站| 97日日碰曰曰摸日日澡| 在线亚洲综合| 免費一级欧美精品| 精品乱色一区二区中文字幕| 精品一区三区视频在线观看| 久久亚洲av无码西西人体| 国产99在线视频|