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

基于OllyDbg的自解密程序分析

2018-01-09 12:51:48唐劍飛任彩霞
科技資訊 2017年32期

唐劍飛++任彩霞

摘 要:隨著計算機的普及,軟件產品的層出不窮,逆向與反逆向技術的對抗就從未停止過,反匯編出的代碼雖然生澀難懂但是還具有程序的邏輯性,但是經過了二次加密之后再次展現的代碼毫無邏輯性可言,而且結構混亂,有些反調試機制加大了逆向工程師的調試難度,本文立足于一段編譯好的具有二次加密的程序,通過OllDbg工具進行分析,最后總結自解密程序的破解流程和編寫思路。

關鍵詞:信息安全 加密解密 逆向工程 反調試

中圖分類號:TP393.09 文獻標識碼:A 文章編號:1672-3791(2017)11(b)-0058-02

逆向分析技術是信息安全的重要組成部分,在惡意代碼分析,軟件破解方面起到至關重要的作用,在對軟件進行逆向破解的過程中,程序的編寫者會采用一些技術手段對程序的源代碼進行二次處理,從而對軟件逆向工作增加了不小的難度,對于反匯編代碼的定位更是無從下手,程序自解密手段的使用更使得逆向的難度提高。如今我們從自解密程序的特點出發,介紹幾種常見的針對自解密程序的破解方法。

本文從一個自解密的一個小程序出發,簡要的介紹一下基于OllyDbg的自解密破解方法的運用。

1 自解密程序特點

通常逆向過程中,我們會發現某一塊代碼區域內出現亂碼情況,一般情況下程序走到這里基本上是終止,或者跳轉到某個dll中繼續執行,然后代碼就意外終止。一般解密程序和亂碼是放在一起的,這一點是無法避免的因為作為程序的編寫者,為了考慮到程序的正常運行,需要程序在執行到亂碼區域,很快就能夠找到解碼方式,然后轉變成正常的代碼繼續執行。所以,在繞過相關的反調試技術之后,下一步就可能會為我們提供解密算法的位置。

2 需要自解密代碼的出現位置

為了方便讀者直觀的閱讀,我們可以使用交互式反匯編器專業版(Interactive Disassembler Professional),人們常稱其為IDA Pro,下文簡稱IDA打開我們的目標程序。

如圖1所示,在.text的區域中,可以注意到起始的地址401160,結束的地址是4011E0的區域中無法正常反編譯成正常的的機器語言,顯示的以一堆亂碼的情況。

如圖2所示,我們又在OllyDbg工具中,下文簡稱OD打開目標程序。

在OD中我們通過繞過相關檢測API,形如(IsDebugPresent)的函數和花指令后,尋找到看到程序中的這樣一行,在圖片中可以看到指令(cmp edx,38bf1686.004011E0),也就是前面用IDA打開的結束地址:4011E0。

原理分析:在這里我們看到先是把地址為00401160位置裝載進入edx,然后開始進行對每個地址單元進行0x88的異或運算,為止條件為地址碼為4011E0,正好是我們在IDA中看到的開始到結束的那一段亂碼。

3 方法一:INT3斷點法

3.1 方法介紹

在圖3中,我們針對目標程序自解密的核心代碼部分設置INT3斷點,在圖3所示處按下F2,這樣我們就打下一個軟件斷點。

進行軟件斷點的設置之后,可以一直按F8,你會經過這個jnz,然后直到在OD寄存器展示欄中遇到下圖所示的情況,圖4中顯示edx=004011E0。

然后按F8動態的跟蹤程序,如圖5所示。

F2下斷點,就行了,然后F7跟進去。

圖6所展示的就是自解密程序段的解碼后的結果,通過在Windows PE頭中中存儲的解密代碼,通過軟件斷點的方式,在OD中循環調用,最終把起始的地址為401160到結束的地址為4011E0的部分恢復成程序未加密之前的初始情況。

3.2 原理分析

INT3斷點的執行流程,如圖7所示。

軟件斷點是通過監測特定的指令來觸發斷點的。在某個地址設置軟件斷點的時候,仿真器會將這個地址的數據/指令替換成一個特殊格式的指令。斷點單元通過監測這個特殊格式的指令來觸發斷點。

調試器在我們下斷點的位置,寫入xCC,然后把下斷點的之前的值保存在斷點列表之中。

因為我們當時存進去的位置是亂碼的位置,所以OD會出現斷點損壞的提示,如圖8所示。

在之前如果不打斷點,我們就直接越過了,而直接越過原因就是程序訪問了沒有邏輯的區域,程序沒有完成自解密的過程,從而跳轉到了未知區域,斷點的目的就告訴程序回到所存儲斷點的位置,讓程序不會跑偏。

4 方法二:文件寫入法

先把程序文件用二進制格式打開,把00401160到004011E0之間這塊位置的內容從IDA中提取出來,然后直接用python寫腳本一個個異或0x88就可以了,這種方式是通過分析程序流程得到。不過這種方法只能針對于是片區的大塊數據域運算,還要保證程序的正確性。由于操作較為復雜,這里不再贅述。

5 結語

通過對自解密程序的研究,我們了解到找到關鍵的加密算法就變得尤為關鍵,自解密程序中也不是所有的代碼都進行了加密,在已經找到的關鍵解密代碼的部分我們可以采用INT3 斷點調試法,和文件手動寫入的方法,進行原始代碼的恢復工作,尤其是在相關PE結構的空白區域,可能就提供了相關解密算法的內容。

參考文獻

[1] 吉勝軍.基于OllyDbg的軟件漏洞技術分析[J].科技資訊,2010(17):19.

[2] 趙北庚.軟件逆向分析過程中基于OllyDbg的三種匯編代碼定位方法[J].網絡安全技術與應用,2015(2):50,52.

[3] ]趙北庚.基于OllyDbg的函數棧幀逆向分析研究[J].網絡安全技術與應用,2015(1):24,26.endprint

主站蜘蛛池模板: AV无码无在线观看免费| 广东一级毛片| 制服丝袜 91视频| 国产第一页屁屁影院| 国产精品亚洲专区一区| 精品欧美视频| 欧美、日韩、国产综合一区| 欧美午夜久久| 国产SUV精品一区二区| 四虎永久免费地址在线网站 | 日本精品影院| 国产在线91在线电影| 三级毛片在线播放| 午夜视频日本| 久久国产免费观看| 欧洲免费精品视频在线| 国产噜噜噜视频在线观看| 免费一级毛片在线观看| 国模极品一区二区三区| 国产午夜一级毛片| 一级全黄毛片| 在线观看无码a∨| 欧美在线一二区| 国产人成乱码视频免费观看| 国产爽歪歪免费视频在线观看 | 伊人成人在线| av在线手机播放| 又黄又湿又爽的视频| 国产主播一区二区三区| 久久中文字幕不卡一二区| 日韩区欧美国产区在线观看| 久久人人妻人人爽人人卡片av| 国产尤物视频在线| 91精品国产情侣高潮露脸| 国产十八禁在线观看免费| 亚洲成a人片| 国产成人久久综合777777麻豆| 国产精品久久久免费视频| 中文字幕在线一区二区在线| 不卡午夜视频| 亚洲一级毛片在线观播放| 亚洲日韩精品伊甸| 在线国产毛片| 亚洲另类色| 亚洲成人精品| 国产午夜福利在线小视频| 尤物亚洲最大AV无码网站| 国产一级视频久久| 波多野结衣一级毛片| 97无码免费人妻超级碰碰碰| 性欧美久久| 99久视频| 嫩草国产在线| 日韩视频免费| 99青青青精品视频在线| 国产经典免费播放视频| 欧美一区二区三区欧美日韩亚洲 | 日韩高清成人| 日韩精品无码免费一区二区三区| 日韩av高清无码一区二区三区| 国产免费久久精品44| 日韩中文精品亚洲第三区| 伊人久久综在合线亚洲91| 手机在线免费不卡一区二| 国产制服丝袜无码视频| 日本三区视频| 国产在线观看一区二区三区| 精品国产女同疯狂摩擦2| 亚洲精品福利视频| 久操中文在线| 高清欧美性猛交XXXX黑人猛交| 色老二精品视频在线观看| 欧美伦理一区| 亚洲无码免费黄色网址| 国产日韩久久久久无码精品| 91娇喘视频| 中文成人在线视频| 在线另类稀缺国产呦| 久久男人资源站| 日韩精品毛片| 在线免费a视频| 精品久久香蕉国产线看观看gif|