出版時間:2004-8-1 出版社:電子工業(yè)出版社 作者:看雪學(xué)院 頁數(shù):404 字?jǐn)?shù):448000
Tag標(biāo)簽:無
內(nèi)容概要
本書結(jié)合實例,重點講述了軟件加密技術(shù)及其實施方案,以幫助程序員更好地保護(hù)自己的軟件。書中介紹了相關(guān)系統(tǒng)底層知識,例如,PE格式深入分析、調(diào)試API應(yīng)用、未公開技術(shù)SEH的深入研究等,從而使讀者在了解這些底層知識后,可以應(yīng)用到自己的軟件保護(hù)方案如各種反跟蹤技術(shù)的實現(xiàn)中。本書還首度公開了如何編寫加殼軟件,以及如何將殼與程序融合在一起等一些熱門技術(shù)。 本書由密界一流高手共同打造,讀者將從本書中獲得許多極具商業(yè)價值的內(nèi)幕技術(shù),是專業(yè)開發(fā)人員不可多得的一本好書。
作者簡介
段鋼,網(wǎng)名看雪,1994年畢業(yè)于上海同濟(jì)大學(xué),看雪學(xué)院(http://www.pediy.com)站長,致力于軟件加密與解密研究。2001年9月組織推出國內(nèi)第一本全面介紹Windows平臺下軟件的加密與解密技術(shù)的書籍《加密與解密——軟件保護(hù)技術(shù)及完全解決方案》。2003年6月出版《加密與解密
書籍目錄
第1章 PE文件格式的深入分析 1.1 PE文件格式縱覽 1.1.1 區(qū)塊 1.1.2 相對虛擬地址 1.1.3 數(shù)據(jù)目錄表 1.1.4 輸入函數(shù) 1.2 PE文件結(jié)構(gòu) 1.2.1 MS-DOS頭部 1.2.2 IMAGE_NT_HEADERS頭部 1.2.3 區(qū)塊表 1.2.4 各種區(qū)塊的描述 1.2.5 輸出表 1.2.6 輸出轉(zhuǎn)向 1.2.7 輸入表 1.2.8 綁定輸入 1.2.9 延遲裝入數(shù)據(jù) 1.2.10 資源 1.2.11 基址重定位 1.2.12 調(diào)試目錄 1.2.13 .NET頭部 1.2.14 TLS初始化 1.2.15 程序異常數(shù)據(jù)第2章 PE分析工具編寫 2.1 文件格式檢查 2.2 FileHeader和OptionalHeader內(nèi)容的讀取 2.3 得到數(shù)據(jù)目錄表信息 2.4 得到區(qū)塊表信息 2.5 得到輸出表信息 2.6 得到輸入表信息第3章 Win32 調(diào)試API 3.1 Win32調(diào)試API原理 3.1.1 調(diào)試相關(guān)函數(shù)簡要說明 3.1.2 調(diào)試事件 3.1.3 如何在調(diào)試時創(chuàng)建并跟蹤一個進(jìn)程 3.1.4 調(diào)試循環(huán)體 3.1.5 如何處理調(diào)試事件 3.1.6 線程環(huán)境詳解 3.1.7 如何在另一個進(jìn)程中注入代碼 3.2 利用調(diào)試API編寫脫殼機(jī) 3.2.1 tElock 0.98脫殼簡介 3.2.2 脫殼機(jī)的編寫 3.3 利用調(diào)試API制作內(nèi)存補(bǔ)丁 3.3.1 跨進(jìn)程內(nèi)存存取機(jī)制 3.3.2 Debug API機(jī)制 第4章 Windows下的異常處理 4.1 基本概念 4.1.1 Windows下的軟件異常 4.1.2 異常處理的基本過程 4.1.3 SEH的分類 4.1.4 未公開的可靠嗎 4.2 SEH相關(guān)數(shù)據(jù)結(jié)構(gòu) 4.2.1 TIB結(jié)構(gòu) 4.2.2 EXCEPTION_REGISTRATION結(jié)構(gòu) 4.2.3 EXCEPTION_POINTERS,EXCEPTION_RECORD,CONTEXT結(jié)構(gòu) 4.3 異常處理程序原理及設(shè)計 4.3.1 相關(guān)API 4.3.2 頂層異常處理 4.3.3 線程異常處理 4.3.4 異常處理的堆棧展開 4.3.5 異常處理程序設(shè)計中的注意事項 4.4 SEH的簡單應(yīng)用 4.4.1 Windows 9x下利用SEH進(jìn)入Ring0 4.4.2 利用SEH實現(xiàn)對自身的單步自跟蹤 4.4.3 其他應(yīng)用 4.5 系統(tǒng)背后的秘密 4.6 VC如何封裝系統(tǒng)提供的SEH機(jī)制 4.6.1 擴(kuò)展的EXCEPTION_REGISTRATION級相關(guān)結(jié)構(gòu) 4.6.2 數(shù)據(jù)結(jié)構(gòu)組織 4.7 Windows XP下的向量化異常處理第5章 反跟蹤技術(shù) 5.1 反調(diào)試技術(shù) 5.1.1 句柄檢測 5.1.2 SoftICE后門指令 5.1.3 int68子類型 5.1.4 ICECream子類型 5.1.5 判斷NTICE服務(wù)是否運行 5.1.6 INT 1 檢測 5.1.7 利用UnhandledExceptionFilter檢測 5.1.8 INT 41子類型 5.2 斷點檢測技術(shù) 5.2.1 檢測函數(shù)首地址 5.2.2 利用SEH防范BPX斷點 5.2.3 利用SEH防范BPM斷點 5.3 反加載技術(shù)(Anti-Loader) 5.3.1 利用TEB檢測 5.3.2 利用IsDebuggerPresent函數(shù)檢測 5.3.3 檢查父進(jìn)程 5.4 反監(jiān)視技術(shù)(Anti-Monitor) 5.4.1 窗口方法檢測 5.4.2 句柄檢測 5.5 反靜態(tài)分析技術(shù) 5.5.1 擾亂匯編代碼 5.5.2 花指令 5.5.3 SMC技術(shù)實現(xiàn) 5.5.4 信息隱藏 5.6 反DUMP技術(shù)(Anti-Dump) 5.7 文件完整性檢驗 5.7.1 磁盤文件校驗實現(xiàn) 5.7.2 校驗和 5.7.3 內(nèi)存映像校驗 5.8 代碼與數(shù)據(jù)結(jié)合技術(shù) 5.8.1 準(zhǔn)備工作 5.8.2 加密算法選用 5.8.3 手動加密代碼 5.8.4 使.text區(qū)塊可寫 5.8.5 重定位 5.9 軟件保護(hù)的若干忠告第6章 加殼軟件編寫 6.1 外殼編寫基礎(chǔ) 6.1.1 判斷文件是否是PE-EXE文件 6.1.2 文件基本數(shù)據(jù)的讀入 6.1.3 額外數(shù)據(jù)保留 6.1.4 重定位數(shù)據(jù)的去除 6.1.5 文件的壓縮 6.1.6 資源區(qū)塊的處理 6.1.7 區(qū)塊的融合 6.1.8 輸入表的處理 6.1.9 外殼部分的編寫 6.1.10 將外殼部分添加至原始程序 6.1.11 小結(jié) 6.2 加殼程序綜合運用的實例 6.2.1 程序簡介 6.2.2 加殼子程序(WJQ_ShellBegin()) 6.2.3 PE外殼程序 6.2.4 加進(jìn)Anti技術(shù) 6.2.5 通過外殼修改被加殼PE 6.2.6 VC++調(diào)用匯編子程序 第7章 如何讓殼與程序融為一體 7.1 欺騙查殼工具 7.1.1 FileInfo是如何查殼的 7.1.2 欺騙FileInfo 7.2 判斷自己是否被加殼 7.2.1 判斷文件尺寸 7.2.2 使用同步對象檢查標(biāo)記 7.2.3 使用原子(Atom)檢查標(biāo)記 7.2.4 使用存儲映像文件檢查標(biāo)記 7.2.5 使用線程優(yōu)先權(quán)檢查標(biāo)記 7.2.6 使用外部文件檢查標(biāo)記 7.2.7 使用注冊表檢查標(biāo)記 7.2.8 注入一個定時器 7.2.9 外部檢測(使用DLL) 7.2.10 Hook 相關(guān)的API(防止Loader和調(diào)試API) 7.3 使用SDK把程序和殼融為一體 7.3.1 SDK加密的標(biāo)記 7.3.2 殼程序檢測加密標(biāo)志 7.3.3 開始加密相關(guān)的數(shù)據(jù) 7.3.4 輸出函數(shù)的聲明 7.3.5 輸出函數(shù)的執(zhí)行代碼定位 7.3.6 為輸出函數(shù)得到殼中加密函數(shù)做準(zhǔn)備 7.3.7 程序中使用加密和解密函數(shù) 7.3.8 構(gòu)造殼中的加密和解密函數(shù) 7.3.9 殼尋找程序的輸出函數(shù)位置 7.3.10 “毀尸滅跡”,擦除輸出函數(shù) 7.3.11 殼中分配臨時的內(nèi)存存放加密和解密函數(shù) 7.3.12 殼中執(zhí)行程序輸出函數(shù)傳遞參數(shù) 第8章 Visual Basic 6 逆向工程 8.1 P-code傳奇 8.2 VB編譯奧秘 8.3 VB與COM 8.4 VB可執(zhí)行程序結(jié)構(gòu)研究 8.5 VB程序事件解讀 8.6 VB程序圖形界面解讀 8.7 VB執(zhí)行代碼研究 8.7.1 VB函數(shù)的解讀 8.7.2 VB函數(shù)調(diào)用約定 8.7.3 執(zhí)行代碼中對控件屬性的操作 8.8 P-code代碼 8.8.1 理解P-code代碼指令 8.8.2 P-code程序調(diào)用約定 8.8.3 調(diào)試時中斷P-code程序的幾種方法 8.8.4 WKT VB Debugger實現(xiàn)原理 8.8.5 VB6 P-code Crackme分析實例 8.9 VB程序保護(hù)篇 8.9.1 Anti-Loader技術(shù) 8.9.2 VB“自鎖”功能實現(xiàn) 8.10 相關(guān)工具點評附錄A在Visual C++中使用內(nèi)聯(lián)匯編附錄B 在Visual Basic中使用匯編
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載