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

軟件安全Shell的實現

2016-06-17 09:48:17李龍許夢磊張可佳
電子設計工程 2016年7期
關鍵詞:調試程序設計

李龍,許夢磊,張可佳

(東北石油大學計算機與信息技術學院,黑龍江大慶163318)

?

軟件安全Shell的實現

李龍,許夢磊,張可佳

(東北石油大學計算機與信息技術學院,黑龍江大慶163318)

摘要:本文基于防止軟件被破解與逆向的目的,通過對PE文件導入表、導出表、重定位表的處理實現She11增加區段的功能。通過將IsDebuggerPresent與Tjmjng Attacks技術的融合實現She11自身的反調試,同時采用She11Code的編碼方式存儲一些敏感信息以及通過“無效操作碼”這一后門接口實現She11自身的反虛擬機功能。最后通過對Notepad的加She11試驗說明She11具有反調試與反虛擬機功能,證明了對軟件加She11具有防止被破解與逆向的功能。

關鍵詞:She11;PE文件;IsDebuggerPresent;Tjmjng Attacks技術;無效操作碼

現在計算機實現所采用的體系結構是“馮·諾依曼”體系結構[1],正是這種體系結構為了追求執行速度而忽略了圖靈機模型中對程序和數據的區分,將程序(規則集)和數據(狀態集)同時放到了內存中,即使引用了區段的概念,也沒有明確的區分數據與指令,這一天然的瑕疵就是漏洞的本質。所以,我們應該清醒的認識到基于馮·諾依曼機架構的現代電子計算機取得巨大成功的背后,是圖靈關于程序不可計算性的預言[2]。針對圖靈機停機問題,我們應該意識到軟件漏洞是不可避免的,所以如何使漏洞很少被利用來逆向攻擊軟件就顯得尤為重要。

一般來說,一個軟件一旦被加殼就有了一定的安全保障,通過對She11中加密算法的研究,來增加She11的反分析性,也就在一定程度上保護了軟件,使得軟件變得更加安全。

1 Shell實現的基本原理

She11作為程序的引導部分著先于預加殼程序執行的基本功能,在She11執行過程中通過對預加殼程序的加密與解密操作,起到了保護預加殼程序進而減少其被反匯編、逆向的幾率。從理論上說給程序加殼的底線是不能破壞預加殼程序的執行,也就是說預加殼程序與加殼程序在“正常環境”下執行的效果應當是一致的。

從PE文件角度來說,單純的給程序入口點添加外殼而不做任何處理,程序是無法正常執行的,主要原因在于破壞了原程序的導入表以及重定位表。微軟的Wjndows操作系統發展至今其強大的消息映射、事件驅動機制[3]使得軟件開發人員望塵莫及,但是好在Wjndows操作系統提供了強大的動態鏈接庫機制,否則一個對話框都要從底層寫起,那么軟件的開發周期就會長的令人無法忍受。由于有動態鏈接庫的程序就會有導入表對其處理,程序中如果有兩個以上的動態鏈接庫那么就會有重定位表。所以對程序加殼需要處理一下幾個問題:

1.1如何為預加殼程序添加一個新的區段

無論從內存的分頁管理還是從磁盤的扇區調度來說PE文件總是存在空隙的,正是由于PE文件文件空隙的存在為添加新區段提供了可能。

1.2如何修改PE文件的重定位表

通過解析PE文件獲取文件中的.re1oc區段,通過對-IMAGE-BASE-RELOCATION結構體的處理,獲取TypeOffset數組。數組中每一項DWORD的低12位就是重定位地址。

1.3如何將外殼程序寫入引導段并且改變預加殼程序的入口點

將外殼程序編寫成動態鏈接庫,將動態鏈接庫以資源的形式寫到引導段中。通過對PE文件的解析,進而修改PE文件中-IMAGE-OPTIONAL-HEADER結構體里的程序入口點成員的數值即可。

1.4如何處理外殼導入表

導入表段在可執行段中會導致一些諸如訪問受限等權限問題,導入表段是可讀可寫的,但可執行段不是可寫的,所以應該將導入表段單獨放到一個區段中。

1.5如何實現反調試技術

同時采用兩種方法對程序進行反調試:一種是采用IsDebuggerPresent;另一種方法是采用Tjmjng Attacks[4]技術,

1.6如何實現反虛擬機技術

虛擬機中數據的交換是靠著Wjndows下無效操作碼[5]異常來實現的,采用截獲后門接口所發的出特有無效操作碼這一異常中斷來使She11具有判斷程序是否在虛擬機中運行的這個功能。

2 Shell的總體功能設計

2.1系統框圖設計

根據She11的編寫需要設計一個引導區段名為.stup段,在.stup段中放入She11代碼。加殼前,程序由DOS頭開始執行,之后跳轉到.text段執行;加殼后程序由DOS頭執行后跳到引導段.stup段開始執行,執行完引導段后跳轉到.text段開始執行預加殼程序。如圖1所示。

圖1 加殼前后程序的對比框圖

2.2系統主要類的設計

本She11設計操作PE文件的4個類:LPEFj1e、LPEImport、LPEExport、LPERe1oca1類。其中LPEFj1e是所有操作PE文件類的父類,其包含對PE文件的一些基本操作,例如:加載PE文件、判斷加載文件是否為PE文件、獲取某個RVA下的內容、獲取某個區段等;LPEImport類設計實現獲得某個以名稱導出的函數的值、獲得某個以函數名稱導出的函數、獲得第一個以名稱導出的函數等;LPEExport類設計實現獲得某個以名稱導出的函數的值、獲得某個以函數名稱導出的函數、獲得第一個以名稱導出的函數、獲得某個導出函數、獲得某個導出函數的值等;LPERe1oca1類實現重載等號運算符、獲得第一個重定位表中內容指針、獲得重定位表的個數、獲得某個重定位表將該重定位表的RVA作為返回參數等。4 個PE操作類的類關系圖如圖2所示。

圖2 軟件安全類外殼類關系圖

2.3系統相關功能設計

1)反調試設計

對于一個逆向工程師來說,主要會采用3種斷點:硬件斷點、內存斷點以及0xCC斷點,那么如何判斷你的程序中是否存在上述3種斷點就顯得尤為重要了。當然了,為了簡單起見的話可以采用Wjndows自帶的判斷程序是否處在調試狀態的API函數,比如:IsDebuggerPresent、CheckRemoteDebuggerPresent 和NtQueryInformatjonProcess。當然最好不要采用這些比較常規的技術,本文采用Tjmjng Attacks技術,通過判斷一段代碼執行的時間大小來判斷程序是否處于被調試狀態,當然一般會選取比較重要的函數作為判斷。對于程序的入口點的部分代碼采用異或區段的方式進行加密,異或區段的密匙本程序通過用戶輸入來獲得。

2)反虛擬機設計

虛擬機是一種采用軟件模擬計算機硬件體系的軟件,在虛擬機中執行代碼就如同在真實計算機里一樣。但虛擬機不是萬能的,有一些特權指令是無法用軟件徹底虛擬的,因此有許多高級病毒會檢測當前是否在真實的操作系統(宿主)中運行。如何檢測虛擬機呢?就要從虛擬機的原理入手。每一個計算機都有自己定義的指令集,當一個無效指令發生的時候,計算機就會產生一個“無效操作碼”類型的異常。軟件既可以自己通過(try/catch)捕獲異常或者讓操作系統捕獲異常,也可以讓計算機崩潰,那么虛擬機正是運用了這個異常在虛擬機與虛擬軟件之間建立通道接口進而傳遞數據。所以本文通過捕獲“無效操作碼”來實現反虛擬機的設計。

3)She11Code的設計

采用Hash API方法進行編寫,這樣的好處是可以用兩個字節也就是一個DWORD來存儲任何的API,這樣不僅可以減少She11Code的大小還能加快執行查找API的速度,進而加快She11Code的執行速度[6]。

3 Shell的相關測試實例

3.1加殼前后程序區段比較

既然不能改變預加殼程序的執行效果,但可以在預加殼程序的區段末尾增加一個區段用來放入She11代碼。本文以Notepad.exe程序加殼為例,加She11前后用LordPE觀察如圖3所示,加殼后程序增加區段,dream、.rdream,同時Notepad程序正常執行。

圖3 加She11前后Notepad區段圖

3.2反調試測試

加殼后Notepad在調試工具OD的調試下執行結果如圖4所示,在調試狀態下彈出提示對話框,說明She11程序的反調試功能得以實現[7]。

圖4 加殼Notepad在OD下調試圖

3.3反虛擬機測試

文中采用VMWare虛擬機,She11主要采用“無效操作碼”這一異常進行捕獲。在虛擬機中加殼后的Notepad.exe執行效果如圖5所示,說明She11反虛擬機技術得以實現。

圖5 加殼的Notepad虛擬機中執行效果圖

3.4ShellCode測試

對于She11Code本She11采用Hash API的方法來實現,將把字符串中的字符逐一取出,把ASCII碼從單字節轉換成四字節的DWORD,循環右移7位之后累加,這樣不論API函數名有多長,只需要存一個雙字就行。在調試狀態下Notepad執行效果如圖6所示,說明She11Code執行成功[8]。

圖6 She11Code效果圖

4 結束語

本文通過對She11原理的闡述以及對系統框圖、主要類、相關功能的設計和對Notepad的加殼實例驗證說明了PE文件[9]存在文件空隙以及改變程序執行序的可能性;通過對She11中反調試與反虛擬機功能的設計實現了在反調試與反虛擬機一級上對軟件的防破解保護。

參考文獻:

[1]faj1west.0day安全:軟件漏洞分析技術[M].北京:電子工業出版社,2008.

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

[3]侯捷.深入淺出MFC[M].北京:華中理工大學出版社,1996.

[4]郭濤濤.另類的反調試[J].黑客防線,2011,2(3):3-5.

[5]E1jas Bachaa1any.Detect jf your program js runnjng jnsjde a Vjrtua1 Machjne[EB/OL].(2005-04)http://www.codeproject. com/.

[6]E1dad Ej1am,E11jot Chjkofsky.Reversjng Secrets of Reverse Engjneerjng[M].E1ectronjc jndustry Press,2007.

[7]趙雨辰,萬國賓.多針狀氧化鋅晶須的等效電磁建模及仿真[J].西安工業大學學報,2014,6:498-503.

[8]朱耀麟,張勇,孟超.爆炸環境激光通信信道研究[J].西安工程大學學報,2013,1:55-59.

[9]金戈,薛質,齊開悅.基于磁盤隱藏PE文件搜索的Bootkjt檢測方法[J].計算機工程,2015,6:116-120.

The lmPlementatlon of software securlty shell

LI Long,XU Meng-1ej,ZHANG Ke-jja
(School of Computer and Information Technology,Northeast Petroleum University,Daqing 163118,China)

Abstract:The paper js based on the purpose of preventjng software from bejng cracked and reversed. By processjng the jmport tab1e,export tab1e,re1ocatjon tab1e jn PE fj1es,the she11 program achjeves the functjon of addjng sectjon. Thjs she11 program combjnes the techno1ogy of IsDebuggerPresent wjth the techno1ogy of Tjmjng Attacks to comp1ete the She11's antj-debuggjng,and encodjng to store the sensjtjve jnformatjon of She11Code and through the″jnva1jd opcode″backdoor jnterfaces to achjeve the functjon of antj-vjrtua1 machjne. Fjna11y,through the test of attachjng the she11 program to Notepad,jt exp1ajnes the She11 havjng functjons of antj-debuggjng and antj-vjrtua1 machjne,and the software havjng the functjons of preventjng from bejng cracked and reversed by attchjng the She11 program.

Key words:She11;PE fj1es;IsDebuggerPresent;the techno1ogy of Tjmjng Attacks;jnva1jd opcode

中圖分類號:TN99

文獻標識碼:A

文章編號:1674-6236(2016)07-0052-03

收稿日期:2015-05-21稿件編號:201505192

作者簡介:李龍(1966—),男,山東萊陽人,博士,副教授。研究方向:數據挖掘,智能系統。

猜你喜歡
調試程序設計
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
FOCAS功能在機床調試中的開發與應用
“程序猿”的生活什么樣
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
調壓柜的調試與試運行探討
主站蜘蛛池模板: 久久精品aⅴ无码中文字幕| 全部免费毛片免费播放| 日韩精品成人在线| 国产精鲁鲁网在线视频| 欧美精品在线观看视频| 亚洲一级毛片在线观播放| 国产欧美日韩va另类在线播放| 欧美日韩动态图| 九九久久精品免费观看| 尤物亚洲最大AV无码网站| 18禁不卡免费网站| 亚洲成人免费在线| 久久无码av一区二区三区| 亚洲一区二区精品无码久久久| 色成人亚洲| 久久人人97超碰人人澡爱香蕉 | 久久黄色一级视频| 国产成人久久777777| 香蕉国产精品视频| 亚洲成A人V欧美综合| 欧美激情第一欧美在线| www.精品国产| 99re这里只有国产中文精品国产精品| 四虎影视库国产精品一区| 国产乱子伦精品视频| 日本精品一在线观看视频| 波多野结衣二区| 最新亚洲人成网站在线观看| 国产一二三区在线| 国产门事件在线| 欧美人在线一区二区三区| 麻豆精品国产自产在线| 国产一线在线| 日韩精品一区二区三区免费| 国产一二三区视频| 国产在线精品人成导航| 亚洲av无码片一区二区三区| 国产成人亚洲精品蜜芽影院| www.亚洲一区二区三区| 伊人婷婷色香五月综合缴缴情| 国产精品浪潮Av| 五月婷婷综合色| 国产熟女一级毛片| 国产乱人伦AV在线A| 欧美性天天| 国产欧美精品专区一区二区| 无码aⅴ精品一区二区三区| 伊伊人成亚洲综合人网7777| 丁香婷婷激情网| 国产成人狂喷潮在线观看2345| 亚洲午夜福利精品无码| 久久久久国产一级毛片高清板| 久久久久国色AV免费观看性色| 国产无码精品在线| 四虎国产精品永久一区| 日韩黄色精品| 露脸国产精品自产在线播| 在线人成精品免费视频| 欧美国产日本高清不卡| 久久国产免费观看| 久久综合九九亚洲一区| 国产精品大白天新婚身材| 成人免费黄色小视频| 国产黄色视频综合| 国产精品妖精视频| 九九九精品成人免费视频7| 欧美亚洲一区二区三区导航| 国产无码高清视频不卡| 午夜无码一区二区三区| 天天色天天操综合网| 亚洲成人高清无码| 亚洲大尺度在线| 97成人在线视频| 无码区日韩专区免费系列| 欧美精品aⅴ在线视频| 日本91视频| 91福利一区二区三区| 四虎影视库国产精品一区| 亚洲丝袜第一页| 日日拍夜夜操| 夜夜爽免费视频| 99久久国产综合精品2023|