出版時(shí)間:2008-11 出版社:電子工業(yè)出版社 作者:單海波,王坤峰,李曉峰 頁數(shù):340
Tag標(biāo)簽:無
內(nèi)容概要
本書是軟件安全主題網(wǎng)站——看雪學(xué)院《加密與解密》軟件安全系列叢書的第三本,主要介紹代碼保護(hù)與加密解密技術(shù)在微軟.NET框架中的應(yīng)用。全書分為基礎(chǔ)篇、分析篇、保護(hù)篇和擴(kuò)展篇四大部分,內(nèi)容涉及.NET框架基礎(chǔ)、元數(shù)據(jù)與MSIL、.NET程序與內(nèi)核調(diào)試、主流代碼保護(hù)及其逆向技術(shù)、非托管API應(yīng)用、64位.NET程序調(diào)試等。本書的層次循序漸進(jìn),難度深入淺出,且注重實(shí)例分析,是軟件開發(fā)人員了解.NET內(nèi)核及加密解密技術(shù)不可多得的參考書,適合.NET開發(fā)人員及加密與解密愛好者閱讀。
書籍目錄
第一部分 基礎(chǔ)篇第1章 微軟.NET框架基本原理1.1 什么是.NET1.2 編寫第一個(gè).NET程序1.2.1 .NET開發(fā)環(huán)境1.2.2 程序的編譯1.3 逆向第一個(gè).NET程序1.3.1 用ildasm反編譯.NET程序1.3.2 反編譯的結(jié)果:MSIL與元數(shù)據(jù)1.3.3 用ilasm進(jìn)行再編譯1.4 程序的運(yùn)行:CLR與JIT1.5 小結(jié)第2章 MSIL中間語言2.1 MSIL語言基礎(chǔ)2.1.1 IL程序基本結(jié)構(gòu)2.1.2 2.0版IL支持的新特性2.1.3 一個(gè)完整的代碼示例2.2 MSIL的運(yùn)行機(jī)制:堆棧機(jī)2.3 MSIL指令2.3.1 流程控制指令2.3.2 算術(shù)指令2.3.3 參數(shù)、局部變量與字段尋址指令2.3.4 方法調(diào)用2.3.5 類與值類型操作指令2.3.6 向量操作指令2.4 小結(jié)第3章 PE結(jié)構(gòu)擴(kuò)展與元數(shù)據(jù)3.1 .NET對PE結(jié)構(gòu)的擴(kuò)展3.2 元數(shù)據(jù)及其結(jié)構(gòu)3.2.1 什么是元數(shù)據(jù)3.2.2 元數(shù)據(jù)的存儲形式(1):堆3.2.3 元數(shù)據(jù)的存儲形式(2):表3.2.4 元數(shù)據(jù)的Signature3.3 元數(shù)據(jù)的標(biāo)識及其解碼3.4 元數(shù)據(jù)的驗(yàn)證3.5 小結(jié)第二部分 分析篇第4章 靜態(tài)分析技術(shù)4.1 靜態(tài)反編譯軟件4.1.1 Reflector的使用4.1.2 Dis#的使用4.1.3 其他反編譯軟件4.2 代碼修改技術(shù)4.3 代碼復(fù)用技術(shù)4.4 混合編譯程序的靜態(tài)分析4.5 .NET程序本地化技術(shù)4.5.1 基礎(chǔ)知識4.5.2 利用可視化工具的本地化4.5.3 利用MSIL的本地化4.6 小結(jié)第5章 動態(tài)調(diào)試技術(shù)5.1 .NET動態(tài)調(diào)試的分類5.2 混合模式調(diào)試5.2.1 GuiDbg的應(yīng)用5.2.2 PeBrowseDbg的應(yīng)用5.3 本地調(diào)試5.3.1 OllyDbg的應(yīng)用5.3.2 WinDbg的應(yīng)用5.4 小結(jié)第三部分 保護(hù)篇第6章 強(qiáng)名稱保護(hù)第7章 名稱混淆第8章 流程混淆第9章 輔助保護(hù)手段第10章 殼保護(hù)第11章 其他保護(hù)方式第四部分 擴(kuò)展篇第12章 非托管API第13章 MONO、SSCLI與.NET內(nèi)核調(diào)試第14章 Win64平臺上的.NET附錄A 元數(shù)據(jù)表參考文獻(xiàn)
章節(jié)摘錄
第一部分 基礎(chǔ)篇 第1章 微軟.N ET框架基本原理 了解.NET框架的程序運(yùn)行原理及代碼編寫方法是學(xué)習(xí).NET加密與解密的基礎(chǔ)。本章不去長篇大論“什么是.NET”,因?yàn)榇蠖鄶?shù)編程書籍已將這個(gè)問題解釋得很清楚了,從加密與解密的角度幫助讀者了解.NET框架才是本章的核心內(nèi)容。 接下來的內(nèi)容將以四步走的形式介紹:通過編譯第一個(gè).NET程序,學(xué)習(xí)SDK的基本使用,對.NET程序的運(yùn)行有感性認(rèn)識;通過反編譯,學(xué)習(xí)ildasm的使用,掌握.NET逆向的初步技巧;通過修改IL代碼并再次編譯,對MSIL語言和元數(shù)據(jù)有初步認(rèn)識;最后,在以上三步的基礎(chǔ)上,理解.NET框架最重要的兩個(gè)概念:CLR與JIT。 1.1 什么是.NET .NET是架構(gòu)于操作系統(tǒng)之上的平臺,它是一套虛擬機(jī),其核心功能由一系列運(yùn)行在用戶層(ring3層)的DLL文件實(shí)現(xiàn)。相對于讀者已經(jīng)非常熟悉的Win32平臺,或是尚未普及的、Win64平臺,.NET是既有聯(lián)系又有區(qū)別。聯(lián)系是指,.NET框架構(gòu)建在Win32/64平臺之上,它的核心程序是一系列運(yùn)行于用戶層的DLL,這就決定了.NET的內(nèi)核實(shí)現(xiàn)仍是基于win32/64;區(qū)別是指,傳統(tǒng)用戶層DLL(如Kernel32.dU、User32.dll等)的主要功能是提供API,而同樣是由DLL實(shí)現(xiàn)的,NET功能要強(qiáng)大得多,它提供了一套完整的程序開發(fā)框架,包括新的編程語言、新的程序運(yùn)行方式、新的服務(wù)等,這些都遠(yuǎn)遠(yuǎn)超過API涵蓋的范圍。從上述區(qū)別方面來說,可以將.NET當(dāng)作一個(gè)全新的平臺來學(xué)習(xí)。 如果讀者熟悉Java或者虛擬機(jī)的概念,那么理解.NET會非常容易。如果讀者是個(gè)新手,也不用擔(dān)心,只要把握住以下三個(gè).NET最重要的特性。 ?。?)統(tǒng)一了編程語言。過去,不同編程語言間的協(xié)作總有著或多或少的兼容性問題,使用比較麻煩。.NET則統(tǒng)一了編程語言:無論程序是用c#,還是c++,或是VB編寫,最終都被編譯為.NET中間語言MSIL(簡稱IL)。這種統(tǒng)一對程序開發(fā)的貢獻(xiàn)不言而喻,但同時(shí)也方便了軟件逆向:無須再分別為每一種語言單獨(dú)編寫反編譯器。
編輯推薦
《微軟.NET程序的加密與解密》的層次循序漸進(jìn),難度深入淺出,且注重實(shí)例分析,是軟件開發(fā)人員了解.NET內(nèi)核及加密解密技術(shù)不可多得的參考書,適合NET開發(fā)人員及加密與解密愛好者閱讀?;A(chǔ)篇:精辟地講解了微軟,NET框架的基本原理,MSIL中間語言和PE結(jié)構(gòu)擴(kuò)展與元數(shù)據(jù),為進(jìn)一步學(xué)習(xí)NET程序的加密與解密打好良好的理論基礎(chǔ)?! 》治銎荷钊胪诰蛄遂o態(tài)分析技術(shù)、動態(tài)調(diào)試技術(shù)的技術(shù)細(xì)節(jié),帶你跨過NET程序加密與解密的技術(shù)門檻,真正步入信息安全技術(shù)的殿堂。 保護(hù)篇:全面敘述了強(qiáng)名稱保護(hù)、名稱混淆、流程混淆、輔助保護(hù)手段、殼保護(hù)和其他保護(hù)方式,使你增強(qiáng)從事NET程序加密與解密工作的能力和實(shí)戰(zhàn)本領(lǐng)?! U(kuò)展篇:通過非托管API,MONO,SSCLI與NET內(nèi)核調(diào)試和Win64平臺上的NET擴(kuò)展演練、使你開闊視野、遠(yuǎn)瞻安全技術(shù)的前沿動態(tài),提升NET的逆向功力。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載