加密與解密這本書到底好不好呢?小編看到有人這樣評價——“這本書在學習如何使用破解工具上還是力挺的,很多實用的工具都一一介紹到了”,也有人這樣評價“加密與解密缺乏加密解密全面的理論指導,只不過這本書本來就不是理論篇的,感覺叫做加密解密實踐倒是更合適……”本節(jié)內(nèi)容小編為大家整理帶來的是該書的epub格式免費高清電子版(原書第三版),如果你需要這份加密與解密第3版電子書的話,那就趕緊點擊本文相應(yīng)的下載地址來進行下載查閱吧!
加密與解密電子書目錄
前言
第1篇 基礎(chǔ)篇
第1章 基礎(chǔ)知識
1.1 文本字符
1.1.1 字節(jié)存儲順序
1.1.2 ASCII與Unicode字符集
1.2 WINDOWS 操作系統(tǒng)
1.2.1 Win API簡介
1.2.2 常用Win32 API函數(shù)
1.2.3 什么是句柄
1.2.4 Windows 9x與Unicode
1.2.5 Windows NT/2000/XP與Unicode
1.2.6 Windows 消息機制
1.3 保護模式簡介
1.3.1 虛擬內(nèi)存
1.3.2 保護模式的權(quán)限級別
1.4 認識PE格式
第2篇 調(diào)試篇
第2章 動態(tài)分析技術(shù) 33
2.1 OLLYDBG調(diào)試器
2.1.1 OllyDbg界面
2.1.2 OllyDbg的配置
2.1.3 加載程序
2.1.4 基本操作
2.1.5 斷點
2.1.6 插件
2.1.7 Run trace
2.1.8 Hit trace
2.1.9 符號調(diào)試技術(shù)
2.1.10 OllyDbg常見問題
2.2 SOFTICE調(diào)試器
第3章 靜態(tài)分析技術(shù) 31
3.1 文件類型分析
3.1.1 PEiD工具
3.1.2 FileInfo工具
3.2 靜態(tài)反匯編
3.2.1 打開文件
3.2.2 IDA的配置
3.2.3 IDA主窗口界面
3.2.6 交叉參考
3.2.7 參考重命名
3.2.8 標簽的用法
3.2.9 進制的轉(zhuǎn)換
3.2.10 代碼和數(shù)據(jù)轉(zhuǎn)換
3.2.11 字符串
3.2.12 數(shù)組
3.2.13 結(jié)構(gòu)體
3.2.14 枚舉類型
3.2.15 堆棧變量
3.2.16 IDC腳本
3.2.17 FLIRT
3.2.18 插件
3.2.19 其他功能
3.2.20 小結(jié)
3.3 可執(zhí)行文件的修改
3.4 靜態(tài)分析技術(shù)應(yīng)用實例
3.4.1 解密初步
3.4.2 逆向工程初步
第4章 逆向分析技術(shù) 35
4.1 啟動函數(shù)
4.2 函數(shù)
4.2.1 函數(shù)的識別
4.2.2 函數(shù)的參數(shù)
4.2.3 函數(shù)的返回值
4.3 數(shù)據(jù)結(jié)構(gòu)
4.3.1 局部變量
4.3.2 全局變量
4.3.3 數(shù)組
4.4 虛函數(shù)
4.5 控制語句
4.5.1 IF-THEN-ELSE語句
4.5.2 SWITCH-CASE語句
4.5.3 轉(zhuǎn)移指令機器碼的計算
4.5.4 條件設(shè)置指令
4.5.5 純算法實現(xiàn)邏輯判斷
4.6 循環(huán)語句
4.7 數(shù)學運算符
4.7.1 整數(shù)的加法和減法
4.7.2 整數(shù)的乘法
4.7.3 整數(shù)的除法
4.8 文本字符串
4.8.1 字符串存儲格式
4.8.2 字符尋址指令
4.8.3 字母大小寫轉(zhuǎn)換
4.8.4 計算字符串的長度
4.9 指令修改技巧
第3篇 解密篇
第5章 常見的演示版保護技術(shù) 34
5.1 序列號保護方式
5.1.1 序列號保護機制
5.1.2 如何攻擊序列號保護
5.1.3 字符串比較形式
5.1.4 注冊機制作
5.2 警告(NAG)窗口
5.3 時間限制
5.3.1 計時器
5.3.2 時間限制
5.3.3 拆解時間限制保護
5.4 菜單功能限制
5.4.1 相關(guān)函數(shù)
5.4.2 拆解菜單限制保護
5.5 KEYFILE保護
5.5.1 相關(guān)API函數(shù)
5.5.2 拆解KeyFile保護
5.6 網(wǎng)絡(luò)驗證
5.6.1 相關(guān)函數(shù)
5.6.2 網(wǎng)絡(luò)驗證破解一般思路
5.7 CD-CHECK
5.7.1 相關(guān)函數(shù)
5.7.2 拆解光盤保護
5.8 只運行一個實例
5.8.1 實現(xiàn)方案
5.8.2 實例
5.9 常用斷點設(shè)置技巧
第6章 加密算法
6.1 單向散列算法
6.1.1 MD5算法
6.1.2 SHA算法
6.1.3 小結(jié)
6.2 對稱加密算法
6.2.1 RC4流密碼
6.2.2 TEA算法
6.2.3 IDEA算法
6.2.4 BlowFish算法
6.2.5 AES算法
6.2.6 對稱加密算法小結(jié)
6.3 公開密鑰加密算法
6.3.1 RSA算法
6.3.2 ElGamal公鑰算法
6.3.3 DSA數(shù)字簽名算法
6.3.4 橢圓曲線密碼編碼學
6.4 其他算法
6.4.1 CRC32算法
6.4.2 Base64
6.5 常見加密庫接口及其識別
6.5.1 Miracl大數(shù)運算庫
6.5.2 FGInt
6.5.4 其它加密算法庫介紹
第4篇 語言和平臺篇
第7章 DELPHI程序
7.1 認識DELPHI
7.2 DEDE反編譯器
7.3 按鈕事件代碼
7.4 模塊初始化與結(jié)束化
第8章 VISUAL BASIC程序
8.1 基礎(chǔ)知識
8.1.1 字符編碼方式
8.1.2 編譯模式
8.2 自然編譯(NATIVE)
8.2.1 相關(guān)VB函數(shù)
8.2.2 VB程序比較方式
8.3 偽編譯(PCODE)(cyclotron編寫)
8.3.1 虛擬機與偽代碼
8.3.2 動態(tài)分析VB P-code程序
8.3.3 偽代碼的綜合分析
8.3.4 VB P-code攻擊實戰(zhàn)
第9章 .NET平臺加解密(tankaiha 編寫) 51
9.1 .NET概述
9.1.1 什么是.Net
9.1.2 幾個基本概念
9.1.3 第一個.Net程序
9.2 MSIL與元數(shù)據(jù)
9.2.1 PE結(jié)構(gòu)的擴展
9.2.2 .Net下的匯編MSIL
9.2.3 MSIL與元數(shù)據(jù)的結(jié)合
9.3 代碼分析技術(shù)
9.3.1 靜態(tài)分析
9.3.2 動態(tài)調(diào)試
9.3.3 代碼修改
9.4 代碼保護技術(shù)及其逆向
9.4.1 強名稱
9.4.2 名稱混淆
9.4.3 流程混淆
9.4.4 壓縮
9.4.5 加密
9.4.6 其它保護手段
9.5 深入.NET
9.5.1 反射與CodeDOM
9.5.2 Unmaganed API
9.5.3 Rotor、MONO與.Net內(nèi)核
第5篇 系統(tǒng)篇
第10章 PE文件格式 54
10.1 PE的基本概念
10.1.1 基地址
10.1.2 相對虛擬地址
10.1.3 文件偏移地址
10.2 MS-DOS頭部
10.3 PE文件頭
10.3.1 Signature字段
10.3.2 IMAGE_FILE_HEADER 結(jié)構(gòu)
10.3.3 Optional Header
10.4 區(qū)塊
10.4.1 區(qū)塊表
10.4.2 各種區(qū)塊的描述
10.4.3 區(qū)塊的對齊值
10.4.4 文件偏移與虛擬地址轉(zhuǎn)換
10.5 輸入表
10.5.1 輸入函數(shù)的調(diào)用
10.5.2 輸入表結(jié)構(gòu)
10.5.3 輸入地址表
10.5.4 輸入表實例分析
10.6 綁定輸入
10.7 輸出表
10.7.1 輸出表結(jié)構(gòu)
10.7.2 輸出表結(jié)構(gòu)實例分析
10.8 基址重定位
10.8.1 基址重定位概念
10.8.2 基址重定位結(jié)構(gòu)定義
10.8.3 基址重定位結(jié)構(gòu)實例分析
10.9 資源
10.9.1 資源結(jié)構(gòu)
10.9.2 資源結(jié)構(gòu)實例分析
10.9.3 資源編輯工具
10.10 TLS初始化
10.11 調(diào)試目錄
10.12 延遲裝入數(shù)據(jù)
10.13 程序異常數(shù)據(jù)
10.14 .NET頭部
10.15 PE分析工具編寫
10.15.1 文件格式檢查
10.15.2 FileHeader和OptionalHeader內(nèi)容的讀取
10.15.3 得到數(shù)據(jù)目錄表信息
10.15.4 得到區(qū)塊表信息
10.15.5 得到輸出表信息
10.15.6 得到輸入表信息
第11章 結(jié)構(gòu)化異常處理 11
11.1 基本概念
11.1.1 異常列表
11.1.2 異常處理的基本過程
11.1.3 SEH的分類
11.2 SEH相關(guān)數(shù)據(jù)結(jié)構(gòu)
11.2.1 TEB結(jié)構(gòu)
11.2.2 EXCEPTION_REGISTRATION結(jié)構(gòu)
11.2.3 EXCEPTION_POINTERS、EXCEPTION_RECORD、CONTEXT
11.3 異常處理回調(diào)函數(shù)
第6篇 脫殼篇
第12章 專用加密軟件 11
12.1 認識殼
12.1.1 殼的概念
12.1.2 壓縮引擎
12.2 壓縮殼
12.2.1 UPX
12.2.2 ASPacK
12.3 加密殼
12.3.1 ASProtect
12.3.2 Armadillo
12.3.3 EXECryptor
12.3.4 Themida
12.4 虛擬機保護軟件
12.4.1 虛擬機介紹
12.4.2 VMProtect簡介
第13章 脫殼技術(shù)64
13.1 基礎(chǔ)知識
13.1.1 殼的加載過程
13.1.2 脫殼機
13.1.3 手動脫殼
13.2 尋找OEP
13.2.1 根據(jù)跨段指令尋找OEP
13.2.2 用內(nèi)存訪問斷點找OEP
13.2.3 根據(jù)堆棧平衡原理找OEP
13.2.4 根據(jù)編譯語言特點找OEP
13.3 抓取內(nèi)存映像
13.3.1 Dump原理
13.3.2 反DUMP技術(shù)
13.4 重建輸入表
13.4.1 輸入表重建的原理
13.4.2 確定IAT的地址和大小
13.4.3 根據(jù)IAT重建輸入表
13.4.4 ImportREC重建輸入表
13.4.5 輸入表加密概括
13.5 DLL文件脫殼
13.5.1 尋找OEP
13.5.2 Dump映像文件
13.5.3 重建DLL的輸入表
13.5.4 構(gòu)造重定位表
13.6 附加數(shù)據(jù)
13.7 PE文件的優(yōu)化
13.8 壓縮殼
13.8.1 UPX外殼
13.8.2 ASPack外殼
13.9 靜態(tài)脫殼
13.9.1 外殼Loader的分析
13.9.2 編寫靜態(tài)脫殼器
13.10 加密殼
13.10.1 ASProtect
13.10.2 Thmedia的SDK分析
第7篇 保護篇
第14章 軟件保護技術(shù) 26
14.1 防范算法求逆
14.1.1 基本概念
14.1.2 堡壘戰(zhàn)術(shù)
14.1.3 游擊戰(zhàn)術(shù)
14.2 抵御靜態(tài)分析
14.2.1 花指令
14.2.2 SMC技術(shù)實現(xiàn)
14.2.3 信息隱藏
14.2.4 簡單多態(tài)變形技術(shù)
14.3 文件完整性檢驗
14.3.1 磁盤文件校驗實現(xiàn)
14.3.2 校驗和(Checksum)
14.3.3 內(nèi)存映像校驗
14.4 代碼與數(shù)據(jù)結(jié)合技術(shù)
14.4.1 準備工作
14.4.2 加密算法選用
14.4.3 手動加密代碼
14.4.4 使.text區(qū)塊可寫
14.5 軟件保護的若干忠告
第15章 反跟蹤技術(shù)(forgot編寫) 52
15.1 由BEINGDEBUGGED引發(fā)的蝴蝶效應(yīng)
15.1.1 BeingDebugged
15.1.2 NtGlobalFlag
15.1.3 Heap Magic
15.1.4 從源頭消滅BeingDebugged
15.2 回歸NATIVE:用戶態(tài)的夢魘
15.2.1 CheckRemoteDebuggerPresent
15.2.2 ProcessDebugPort
15.2.3 ThreadHideFromDebugger
15.2.4 Debug Object
15.2.5 SystemKernelDebuggerInformation
15.2.6 Native API
15.2.7 Hook和AntiHook
15.3 真正的奧秘:小技巧一覽
15.3.1 SoftICE檢測方法
15.3.2 OllyDbg檢測方法
15.3.3 調(diào)試器漏洞
15.3.4 防止調(diào)試器附加
15.3.5 父進程檢測
15.3.6 時間差
15.3.7 通過Trap Flag檢測
15.3.8 雙進程保護
第16章 外殼編寫基礎(chǔ)(Hying編寫)35
16.1 外殼的結(jié)構(gòu)
16.2 加殼主程序
16.2.1 判斷文件是否為PE格式
16.2.2 文件基本數(shù)據(jù)讀入
16.2.3 附加數(shù)據(jù)讀取
16.2.4 輸入表處理
16.2.5 重定位表處理
16.2.6 文件的壓縮
16.2.7 資源數(shù)據(jù)處理
16.2.8 區(qū)塊的融合
16.3 外殼部分編寫
16.3.1 外殼的加載過程
16.3.2 自建輸入表
16.3.4 外殼引導段
16.3.5 外殼第二段
16.4 將外殼部分添加至原程序
第17章 虛擬機的設(shè)計
17.1 原理
17.1.1 反匯編引擎
17.1.2 指令分類
17.2 啟動框架和調(diào)用約定
17.2.1 調(diào)度器VStartVM
17.2.2 虛擬環(huán)境:VMContext
17.2.3 平衡堆棧:VBegin和VCheckEsp
17.3 HANDLER的設(shè)計
17.3.1 輔助Handler
17.3.2 普通Handler和指令拆解
17.3.3 標志位問題
17.3.4 相同作用的指令
17.3.5 轉(zhuǎn)移指令
17.3.6 轉(zhuǎn)移跳轉(zhuǎn)指令的另一種實現(xiàn)
17.3.7 CALL指令
17.3.8 retn指令
17.3.9 不可模擬指令
17.4 托管代碼的異常處理
17.4.1 VC++的異常處理
17.4.2 Delphi的異常處理
17.5 小結(jié)
第8篇 PEDIY篇
第18章 補丁技術(shù)
18.1 文件補丁
18.2 內(nèi)存補丁
18.2.1 跨進程內(nèi)存存取機制
18.2.2 Debug API機制
18.2.3 利用調(diào)試寄存器機制
18.2.4 DLL劫持技術(shù)
18.3 SMC補丁技術(shù)
18.3.1 單層SMC補丁技術(shù)
18.3.2 多層SMC補丁技術(shù)
18.4 補丁工具
第19章 代碼的二次開發(fā)
19.1 數(shù)據(jù)對齊
19.2 增加空間
19.2.1 區(qū)塊間隙
19.2.2 手工構(gòu)造區(qū)塊
19.2.3 工具輔助構(gòu)造區(qū)塊
19.3 獲得函數(shù)的調(diào)用
19.3.1 增加輸入函數(shù)
19.3.2 顯式鏈接調(diào)用DLL
19.4 代碼的重定位
19.4.1 修復(fù)重定位表
19.4.2 代碼的自定位技術(shù)
19.5 增加輸出函數(shù)
19.6 消息循環(huán)
19.6.1 WndProc函數(shù)
19.6.2 尋找消息循環(huán)
19.6.3 WndProc匯編形式
19.7 修改WNDPROC擴充功能
19.7.1 擴充WndProc
19.7.2 擴充Exit菜單功能
19.7.3 擴充Open菜單功能
19.8 增加接口
19.8.1 用DLL增加功能
19.8.2 擴展消息循環(huán)
附錄
附錄A 浮點指令
附錄B 在Visual C++中使用內(nèi)聯(lián)匯編
術(shù)語表
參考文獻
加密與解密電子版內(nèi)容截圖
- PC官方版
- 安卓官方手機版
- IOS官方手機版