首 頁
手機(jī)版

逆向工程權(quán)威指南上冊和下冊 丹尼斯 pdf掃描版

逆向工程權(quán)威指南是一本逆向工程的經(jīng)典指南,由烏克蘭安全技術(shù)專家丹尼斯Dennis Yurichev編著,分為上冊和下冊。本書專注于軟件逆向工程,即研究編譯后的可執(zhí)行程序,是寫給初學(xué)者的一本經(jīng)典指南。全書共分為12個(gè)部分,共102章,涉及軟件逆向工程相關(guān)的眾多技術(shù)話題,堪稱是逆向工程技術(shù)百科全書。逆向工程權(quán)威指南全書講解詳細(xì),附帶豐富的代碼示例,還給出了很多習(xí)題來幫助讀者鞏固所學(xué)的知識,附錄部分給出了習(xí)題的解答,非常適合對逆向工程技術(shù)、操作系統(tǒng)底層技術(shù)、程序分析技術(shù)感興趣的讀者閱讀,也適合專業(yè)的程序開發(fā)人員參考。

內(nèi)容介紹

逆向工程是一種分析目標(biāo)系統(tǒng)的過程,旨在于識別系統(tǒng)的各組件以及組件間關(guān)系,以便于通過其它形式、或在較高的抽象層次上,重建系統(tǒng)的表征?!赌嫦蚬こ虣?quán)威指南》專注于軟件的逆向工程,是寫給初學(xué)者的一本經(jīng)典指南。全書共分為12個(gè)部分,共102章,涉及X86/X64、ARM/ARM-64、MIPS、Java/JVM等重要話題,詳細(xì)解析了Oracle RDBMS、Itanium、軟件狗、LD_PRELOAD、棧溢出、ELF、Win32 PE文件格式、x86-64(第、critical sections、syscalls、線程本地存儲TLS、地址無關(guān)代碼(PIC)、以配置文件為導(dǎo)向的優(yōu)化、C++ STL、OpenMP、SHE等眾多技術(shù)話題,堪稱是逆向工程技術(shù)百科全書。

章節(jié)目錄

第一部分 指令講解
第1章 CPU簡介
1.1 指令集架構(gòu)
第2章 最簡函數(shù)
2.1 x86
2.2 ARM
2.3 MIPS
第3章 Hello,world!
3.1 x86
3.2 x86-64
3.3 GCC的其他特性
3.4 ARM
3.5 MIPS
3.6 總結(jié)
3.7 練習(xí)題
第4章 函數(shù)序言和函數(shù)尾聲
遞歸調(diào)用
第5章 棧
5.1 為什么棧會逆增長
5.2 棧的用途
5.3 典型的棧的內(nèi)存存儲格式
5.4 棧的噪音
5.5 練習(xí)題
第6章 printf()函數(shù)與參數(shù)傳遞
6.1 x86
6.2 ARM
6.3 MIPS
6.4 總結(jié)
6.5 其他
第7章 scanf()
7.1 演示案例
7.2 全局變量
7.3 scanf()函數(shù)的狀態(tài)監(jiān)測
7.4 練習(xí)題
第8章 參數(shù)獲取
8.1 x86
8.2 x64
8.3 ARM
8.4 MIPS
第9章 返回值
9.1 void型函數(shù)的返回值
9.2 函數(shù)返回值不被調(diào)用的情況
9.3 返回值為結(jié)構(gòu)體型數(shù)據(jù)
第10章 指針
10.1 全局變量
10.2 局部變量
10.3 總結(jié)
第11章 GOTO語句
11.1 無用代碼Dead Code
11.2 練習(xí)題
第12章 條件轉(zhuǎn)移指令
12.1 數(shù)值比較
12.2 計(jì)算絕對值
12.3 條件運(yùn)算符
12.4 比較最大值和最小值
12.5 總結(jié)
12.6 練習(xí)題
第13章 switch()/case/default
13.1 case陳述式較少的情況
13.2 case陳述式較多的情況
13.3 case從句多對一的情況
13.4 Fall-through
13.5 練習(xí)題
第14章 循環(huán)
14.1 舉例說明
14.2 內(nèi)存塊復(fù)制
14.3 總結(jié)
14.4 練習(xí)題
第15章 C語言字符串的函數(shù)
15.1 strlen()
15.2 練習(xí)題
第16章 數(shù)學(xué)計(jì)算指令的替換
16.1 乘法
16.2 除法運(yùn)算
16.3 練習(xí)題
第17章 FPU
17.1 IEEE 754
17.2 x86
17.3 ARM、MIPD、x86/x64 SIMD
17.4 C/C++
17.5 舉例說明
17.6 利用參數(shù)傳遞浮點(diǎn)型數(shù)據(jù)
17.7 比較說明
17.8 棧、計(jì)算器及逆波蘭表示法
17.9 x64
17.10 練習(xí)題
第18章 數(shù)組
18.1 簡介
18.2 緩沖區(qū)溢出
18.3 緩沖區(qū)溢出的保護(hù)方法
18.4 其他
18.5 字符串指針
18.6 多維數(shù)組
18.7 二維字符串?dāng)?shù)組的封裝格式
18.8 本章小結(jié)
18.9 練習(xí)題
第19章 位操作
19.1 特定位
19.2 設(shè)置/清除特定位
19.3 位移
19.4 在FPU上設(shè)置特定位
19.5 位校驗(yàn)
19.6 本章小結(jié)
19.7 練習(xí)題
第20章 線性同余法與偽隨機(jī)函數(shù)
20.1 x86
20.2 x64
20.3 32位ARM
20.4 MIPS
20.5 本例的線程安全改進(jìn)版
第21章 結(jié)構(gòu)體
21.1 MSVC: systemtime
21.2 用malloc()分配結(jié)構(gòu)體的空間
21.3 UNIX: struct tm
21.4 結(jié)構(gòu)體的字段封裝
21.5 結(jié)構(gòu)體的嵌套
21.6 結(jié)構(gòu)體中的位操作
21.7 練習(xí)題
第22章 共用體(union)類型
22.1 偽隨機(jī)數(shù)生成程序
22.2 計(jì)算機(jī)器精度
22.3 快速平方根計(jì)算
第23章 函數(shù)指針
23.1 MSVC
23.2 GCC
第24章 32位系統(tǒng)處理64位數(shù)據(jù)
24.1 64位返回值
24.2 參數(shù)傳遞及加減運(yùn)算
24.3 乘法和除法運(yùn)算
24.4 右移
24.5 32位數(shù)據(jù)轉(zhuǎn)換為64位數(shù)據(jù)
第25章 SIMD
25.1 矢量化
25.2 SIMD實(shí)現(xiàn)strlen()
第26章 64位平臺
26.1 x86-64
26.2 ARM
26.3 浮點(diǎn)數(shù)
第27章 SIMD與浮點(diǎn)數(shù)的并行運(yùn)算
27.1 樣板程序
27.2 傳遞浮點(diǎn)型參數(shù)
27.3 浮點(diǎn)數(shù)之間的比較
27.4 機(jī)器精度
27.5 偽隨機(jī)數(shù)生成程序(續(xù))
27.6 總結(jié)
第28章 ARM指令詳解
28.1 立即數(shù)標(biāo)識(#)
28.2 變址尋址
28.3 常量賦值
28.4 重定位
第29章 MIPS的特點(diǎn)
29.1 加載常量
29.2 閱讀推薦
第二部分 硬件基礎(chǔ)
第30章 有符號數(shù)的表示方法
第31章 字節(jié)序
31.1 大端字節(jié)序
31.2 小端字節(jié)序
31.3 舉例說明
31.4 雙模二元數(shù)據(jù)格式
31.5 轉(zhuǎn)換字節(jié)序
第32章 內(nèi)存布局
第33章 CPU
33.1 分支預(yù)測
33.2 數(shù)據(jù)相關(guān)性
第34章 哈希函數(shù)
單向函數(shù)與不可逆算法
第三部分 一些高級的例子
第35章 溫度轉(zhuǎn)換
35.1 整數(shù)值
35.2 浮點(diǎn)數(shù)運(yùn)算
第36章 斐波拉契數(shù)列
36.1 例子1
36.2 例子2
36.3 總結(jié)
第37章 CRC32計(jì)算的例子
第38章 網(wǎng)絡(luò)地址計(jì)算實(shí)例
38.1 計(jì)算網(wǎng)絡(luò)地址函數(shù)calc_network_address()
38.2 函數(shù)form_IP()
38.3 函數(shù)print_as_IP()
38.4 form_netmask()函數(shù)和set_bit()函數(shù)
38.5 總結(jié)
第39章 循環(huán):幾個(gè)迭代
39.1 三個(gè)迭代器
39.2 兩個(gè)迭代器
39.3 Intel C++ 2011實(shí)例
第40章 達(dá)夫裝置
第41章 除以9
41.1 x86
41.2 ARM
41.3 MIPS
41.4 它是如何工作的
41.5 計(jì)算除數(shù)
41.6 練習(xí)題
第42章 字符串轉(zhuǎn)換成數(shù)字,函數(shù)atoi()
42.1 例1
42.2 例2
42.3 練習(xí)
第43章 內(nèi)聯(lián)函數(shù)
43.1 字符串和內(nèi)存操作函數(shù)
第44章 C99標(biāo)準(zhǔn)的受限指針
第45章 打造無分支的abs()函數(shù)
45.1 x64下的GCC 4.9.1優(yōu)化
45.2 ARM64下的GCC 4.9優(yōu)化
第46章 變長參數(shù)函數(shù)
46.1 計(jì)算算術(shù)平均值
46.2 vprintf()函數(shù)例子
第47章 字符串剪切
47.1 x64下的MSVC 2013優(yōu)化
47.2 x64下采用編譯器GCC 4.9.1進(jìn)行非優(yōu)化操作
47.3 x64下的GCC 4.9.1優(yōu)化
47.4 ARM64:非優(yōu)化的GCC(Linaro)4.9
47.5 ARM64:優(yōu)化GCC(Linaro)4.9
47.6 ARM: Keil 6/2013優(yōu)化(ARM模式)
47.7 ARM:Keil 6/2013(Thumb模式)優(yōu)化
47.8 MIPS
第48章 toupper()函數(shù)
48.1 x64
48.2 ARM
48.3 總結(jié)
第49章 不正確的反匯編代碼
49.1 x86環(huán)境下的從一開始錯(cuò)誤的反匯編
49.2 隨機(jī)噪音,怎么看起來像反匯編指令?
第50章 混淆技術(shù)
50.1 字符串變換
50.2 可執(zhí)行代碼
50.3 虛擬機(jī)以及偽代碼
50.4 一些其他的事情
50.5 練習(xí)題
第51章 C++
51.1 類
51.2 ostream輸出流
51.3 引用
51.4 STL/標(biāo)準(zhǔn)模板庫(Standard Template Library)
第52章 數(shù)組與負(fù)數(shù)索引
第53章 16位的Windows程序
53.1 例子#1
53.2 例子#2
53.3 例子#3
53.4 例子#4
53.5 例子#5
53.6 例子#6
第四部分 Java
第54章 Java
54.1 簡介
54.2 返回一個(gè)值
54.3 簡單的計(jì)算函數(shù)
54.4 JVM的內(nèi)存模型
54.5 簡單的函數(shù)調(diào)用
54.6 調(diào)用函數(shù)beep()(蜂鳴器)
54.7 線性同余隨機(jī)數(shù)產(chǎn)生器(PRNG)
54.8 條件轉(zhuǎn)移
54.9 傳遞參數(shù)
54.10 位操作
54.11 循環(huán)
54.12 switch()語句
54.13 數(shù)組
54.14 字符串
54.15 異常處理
54.16 類
54.17 簡單的補(bǔ)丁
54.18 總結(jié)
第五部分 在代碼中發(fā)現(xiàn)重要而有趣的內(nèi)容
第55章 編譯器產(chǎn)生的文件特征
55.1 Microsoft Visual C++
55.2 GCC編譯器
55.3 Intel FORTRAN
55.4 Watcom以及OpenWatcom
55.5 Borland編譯器
55.6 其他的已知DLL文件
第56章 Win32環(huán)境下與外部通信
56.1 在Windows API中最經(jīng)常使用的函數(shù)
56.2 tracer:解析指定模塊的所有函數(shù)
第57章 字符串
57.1 字符串
57.2 錯(cuò)誤/調(diào)試信息
57.3 可疑的魔數(shù)字符串
第58章 調(diào)用宏assert()(中文稱為斷言)
第59章 常數(shù)
59.1 魔數(shù)
59.2 尋找常數(shù)
第60章 檢索關(guān)鍵指令
第61章 可疑的代碼模型
61.1 XOR異或指令
61.2 手寫匯編代碼
第62章 魔數(shù)與程序調(diào)試
第63章 其他的事情
63.1 總則
63.2 C++
63.3 部分二進(jìn)制文件的特征
63.4 內(nèi)存“快照”對比
第六部分 操作系統(tǒng)相關(guān)
第64章 參數(shù)的傳遞方法(調(diào)用規(guī)范)
64.1 cdecl [C Declaration的縮寫]
64.2 stdcall [Standard Call的縮寫]
64.3 fastcall
64.4 thiscall
64.5 64位下的x86
64.6 單/雙精度數(shù)型返回值
64.7 修改參數(shù)
64.8 指針型函數(shù)參數(shù)
第65章 線程本地存儲TLS
65.1 線性同余發(fā)生器(改)
第66章 系統(tǒng)調(diào)用(syscall-s)
66.1 Linux
66.2 Windows
第67章 Linux
67.1 位置無關(guān)的代碼
67.2 在Linux下的LD_PRELOAD
第68章 Windows NT
68.1 CRT (Win32)
68.2 Win32 PE文件
68.3 Windows SEH
68.4 Windows NT:臨界區(qū)段
第七部分 常用工具
第69章 反匯編工具
69.1 IDA
第70章 調(diào)試工具
70.1 tracer
70.2 OllyDbg
70.3 GDB
第71章 系統(tǒng)調(diào)用的跟蹤工具
71.1 strace/dtruss
第72章 反編譯工具
第73章 其他工具
第八部分 更多范例
第74章 修改任務(wù)管理器(Vista)
74.1 使用LEA指令賦值
第75章 修改彩球游戲
第76章 掃雷(Windows XP)
76.1 練習(xí)題
第77章 人工反編譯與Z3 SMT求解法
77.1 人工反編譯
77.2 Z3 SMT求解法
第78章 加密狗
78.1 例1:PowerPC平臺的MacOS Classic程序
78.2 例2: SCO OpenServer
78.3 例3: MS-DOS
第79章 “QR9”:魔方態(tài)加密模型
第80章 SAP
80.1 關(guān)閉客戶端的網(wǎng)絡(luò)數(shù)據(jù)包壓縮功能
80.2 SAP 6.0的密碼驗(yàn)證函數(shù)
第81章 Oracle RDBMS
81.1 V$VERSION表
81.2 X$KSMLRU表
81.3 V$TIMER表
第82章 匯編指令與屏顯字符
82.1 EICAR
第83章 實(shí)例演示
83.1 10PRINT CHR$(205.5+RND(1));:GOTO 10
83.2 曼德博集合
第九部分 文件分析
第84章 基于XOR的文件加密
84.1 Norton Guide:單字節(jié)XOR加密實(shí)例
84.2 4字節(jié)XOR加密實(shí)例
84.3 練習(xí)題
第85章 Millenium游戲的存檔文件
第86章 Oracle的.SYM文件
第87章 Oracle的.MSDB文件
總結(jié)
第十部分 其他
第88章 npad
第89章 修改可執(zhí)行文件
89.1 文本字符串
89.2 x86指令
第90章 編譯器內(nèi)部函數(shù)
第91章 編譯器的智能短板
第92章 OpenMP
92.1 MSVC
92.2 GCC
第93章 安騰指令
第94章 8086的尋址方式
第95章 基本塊重排
95.1 PGO的優(yōu)化方式
第十一部分 推薦閱讀
第96章 參考書籍
96.1 Windows
96.2 C/C++
96.3 x86/x86-64
96.4 ARM
96.5 加密學(xué)
第97章 博客
97.1 Windows平臺
第98章 其他內(nèi)容
第十二部分 練習(xí)題
第99章 初等難度練習(xí)題
99.1 練習(xí)題1.4
第100章 中等難度練習(xí)題
100.1 練習(xí)題2.1
100.2 練習(xí)題2.4
100.3 練習(xí)題2.6
100.4 練習(xí)題2.13
100.5 練習(xí)題2.14
100.6 練習(xí)題2.15
100.7 練習(xí)題2.16
100.8 練習(xí)題2.17
100.9 練習(xí)題2.18
100.10 練習(xí)題2.19
100.11 練習(xí)題2.20
第101章 高難度練習(xí)題
101.1 練習(xí)題3.2
101.2 練習(xí)題3.3
101.3 練習(xí)題3.4
101.4 練習(xí)題3.5
101.5 練習(xí)題3.6
101.6 練習(xí)題3.8
第102章 Crackme/Keygenme
附錄A x86
A.1 數(shù)據(jù)類型
A.2 通用寄存器
A.3 FPU寄存器
A.4 SIMD寄存器
A.5 FPU調(diào)試寄存器
A.6 指令
附錄B ARM
B.1 術(shù)語
B.2 版本差異
B.3 32位ARM(AArch32)
B.4 64位ARM(AArch64)
B.5 指令
附錄C MIPS
C.1 寄存器
C.2 指令
附錄D 部分GCC庫函數(shù)
附錄E 部分MSVC庫函數(shù)
附錄F 速查表
F.1 IDA
F.2 OllyDbg
F.3 MSVC選項(xiàng)
F.4 GCC
F.5 GDB
附錄G 練習(xí)題答案
G.1 各章練習(xí)
G.2 初級練習(xí)題
G.3 中級練習(xí)題
G.4 高難度練習(xí)題
G.5 其他練習(xí)題
參考文獻(xiàn)

使用說明

1、下載并解壓,得出pdf文件
2、如果打不開本文件,請務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進(jìn)行閱讀
收起介紹展開介紹
  • 下載地址
逆向工程權(quán)威指南上冊和下冊 丹尼斯 pdf掃描版

有問題? 點(diǎn)此報(bào)錯(cuò)

發(fā)表評論

0條評論