日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《软件加密与解密》第三版学习日志一

發(fā)布時(shí)間:2025/4/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《软件加密与解密》第三版学习日志一 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一 動(dòng)態(tài)分析技術(shù)

?

動(dòng)態(tài)分析技術(shù)中最重要的工具是調(diào)試器,分為用戶模式和內(nèi)核模式兩種類型。用戶模式調(diào)試器是指用來調(diào)試用戶模式應(yīng)用程序的調(diào)試器,他們工作在Ring 3級(jí),如OllyDbg、Visual C++等編譯器自帶的調(diào)試器。內(nèi)核模式調(diào)試器是指能調(diào)試操作系統(tǒng)內(nèi)核的調(diào)試器,它們處于CPU和操作系統(tǒng)之間,工作在Ring 0級(jí),如SoftICE等。

OllyDbg(簡稱OD)是有Oleh Yuschuuk(www.ollydbg.de)編寫的一款具有可視化界面的用戶模式調(diào)試器,可以在當(dāng)前各種Windows版本上運(yùn)行,但NT的系統(tǒng)架構(gòu)更能發(fā)揮OllyDbg強(qiáng)大功能。OllyDbg結(jié)合了動(dòng)態(tài)調(diào)試和靜態(tài)分析,具有GUI界面,易上手,并且對(duì)異常的跟蹤處理相當(dāng)靈活,這些使得OllyDbg成為調(diào)試Ring 3級(jí)程序的首選工作。它的反匯編引擎很強(qiáng)大,可識(shí)別數(shù)千個(gè)被C和Windows頻繁使用的函數(shù),并能將其參數(shù)注釋出。它會(huì)自動(dòng)分析函數(shù)過程、循環(huán)語句、代碼中的字符串等。

?

二 靜態(tài)分析技術(shù)

?

用高級(jí)語言編寫的程序有兩種形式,一種是被編譯成機(jī)器語言在CPU上執(zhí)行,如Visual C++、Pascal等。由于機(jī)器語言和匯編語言幾乎是對(duì)應(yīng)的,因此可將機(jī)器語言轉(zhuǎn)化成匯編語言,這個(gè)過程稱為反匯編(Disassembler)。例如,在X86系統(tǒng)中,機(jī)器碼“EBh”對(duì)應(yīng)的匯編語句是“jmp short xx”。另一種是高級(jí)語言一邊解釋一邊執(zhí)行的,稱為解釋性語言,如Visual Basic、Visual FoxPro等,這類語言編譯后的程序可以被還原成高級(jí)語言的原始結(jié)構(gòu),這個(gè)過程稱為反編譯(Decompiler)。

所謂靜態(tài)分析,即從反匯編、反編譯手段獲得程序匯編代碼或源代碼,然后從程序清單上分析程序流程,了解模塊完成的功能。靜態(tài)分析的第一步就是分析程序的類型,了解程序是用什么語言編寫的或用什么編譯器編譯的?程序是否被某種加密程序處理過?常見的分析工具有PEiD、FileInfo等。PEiD是一款常用的文件檢測分析工具,具有GUI界面。它能檢測大多數(shù)編譯語言、病毒和加密的殼。PEiD這類文件分析工具是利用查特征串搜索來完成識(shí)別工作的。各種開發(fā)語言都有固定的啟動(dòng)代碼部分,利用這點(diǎn)就可識(shí)別出是何種語言編譯的。被加殼程序處理過的程序,在殼里會(huì)留下相關(guān)加殼軟件的信息,利用這點(diǎn)就可以識(shí)別是被何種殼所加密的。FileInfo(簡稱Fi)是另一款不錯(cuò)的文件檢測工具。Fi運(yùn)行時(shí)是DOS界面。

在進(jìn)行反匯編前,建議用FileInfo、PEiD等檢測工具分析一下文件是否加殼。如果加殼,就需要利用脫殼技術(shù)脫殼,然后再反匯編。常用的反匯編工具有W32Dasm、C32asm、IDA Pro等。W32Dasm、C32asm這兩款工具已不升級(jí),不支持64位程序。

反匯編引擎的作用是把機(jī)器碼解析成可以匯編指令,開發(fā)反匯編引擎需要對(duì)Intel公司的i386的機(jī)器指令編碼有深入的了解。常見的反匯編引擎有udis86、ade、xde等,像mlde32和virxasm反匯編引擎也比較有特色,大小僅400字節(jié)左右。OllyDbg自帶的反匯編引擎也比較強(qiáng)大,但其指令集不全,對(duì)MMX、SSE支持的不好,不過FullDisasm插件可以解決這個(gè)問題。

IDA Pro(簡稱IDA)是DataRescue公司(www.datarescue.com)出品的一款交互式反匯編工具,它的主要特性是交互和多處理器。操作者可以通過對(duì)IDA的交互來指導(dǎo)IDA更好地反匯編,IDA并不自動(dòng)解決程序中的問題,但它會(huì)按用戶的指令找到可以之處,用戶的工作是通知IDA怎樣去做,比如人工指定編譯器類型,對(duì)變量名、結(jié)構(gòu)定義、數(shù)組等定義。 IDA適合分析文件,但要對(duì)文件進(jìn)行編輯修改,需專門的十六進(jìn)制工具。常用的有Hiew、HexWorkshop、WinHex等。各工具都有其特色,HexWorkshop提供了文件比較功能,WinHex可以查看內(nèi)存映像文件,Hiew可以在匯編狀態(tài)下修改代碼。

?

三 逆向分析技術(shù)


將可執(zhí)行文件反匯編,通過分析反匯編代碼來理解其代碼功能,如各接口的數(shù)據(jù)結(jié)構(gòu)等,然后用高級(jí)語言重新描述這段代碼,逆向分析原軟件的思路,這個(gè)過程被稱做“逆向工程(Reverse Engineering)”,或者有時(shí)只是簡單地稱作“逆向(Reversing)”。這是一個(gè)很重要的技能,需要扎實(shí)的編程功底和匯編知識(shí)。逆向分析的首選工具是IDA,其中它的一款插件Hex-Rays Decompiler能完成許多代碼反編譯的工作,逆向時(shí)可以作為一款輔助工具參考。逆向工程可以讓人們了解程序的結(jié)構(gòu)以及程序的邏輯,因此利用逆向工程可以深入洞察程序的運(yùn)行過程。

?

?

參考看雪軟件安全:

http://www.pediy.com

總結(jié)

以上是生活随笔為你收集整理的《软件加密与解密》第三版学习日志一的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。