
0人評分過此書
通往高級駭客的修行之路:組合語言進階修行與反逆向分析
學習駭客技術的第一關就是得先學習組合語言,因為只有掌握了組合語言之後才能夠了解電腦,而了解電腦之後,才能夠來玩駭客技術。
駭客技術浩瀚如海,如果沒有基礎是絕對進不去這個領域,而想要踏入駭客技術的領域,組合語言和C語言是你必須得買好的兩張門票,如果沒有這兩張門票為基礎,就算學了其他語言,也只能摸摸皮毛,很多事情都不能做,由此可見組合語言和C語言的重要性可見一番。
現象縱使再複雜,但構成現象背後的原理卻相當簡單。因此,只要真的弄通了原理,那對現象的掌握也就不是難點了,本書就是這麼樣的一本書,藉由擊破組合語言當中的基本指令,然後解釋指令所要表達的根本原理,只要讀者掌握了這根本原理之後,不論想要走開發或分析程式都不是問題,同時也能夠漸漸地弄清楚所謂的電腦底層到底是怎麼一回事。
駭客技術浩瀚如海,如果沒有基礎是絕對進不去這個領域,而想要踏入駭客技術的領域,組合語言和C語言是你必須得買好的兩張門票,如果沒有這兩張門票為基礎,就算學了其他語言,也只能摸摸皮毛,很多事情都不能做,由此可見組合語言和C語言的重要性可見一番。
現象縱使再複雜,但構成現象背後的原理卻相當簡單。因此,只要真的弄通了原理,那對現象的掌握也就不是難點了,本書就是這麼樣的一本書,藉由擊破組合語言當中的基本指令,然後解釋指令所要表達的根本原理,只要讀者掌握了這根本原理之後,不論想要走開發或分析程式都不是問題,同時也能夠漸漸地弄清楚所謂的電腦底層到底是怎麼一回事。
-
Chapter 1 暖身運動
-
1.0 寫在前面
-
1.1 暫存器與旗標
-
1.2 本書操作範例
-
1.3 CPU、程式與記憶體之間的關係
-
1.4 資料表示簡述
-
1.5 不如起而行
-
-
Chapter 2 基本指令入門
-
2.1 mov 指令
-
2.2 add 指令
-
2.3 sub 指令
-
2.4 lea 指令
-
2.5 jmp 指令
-
2.6 inc 指令
-
2.7 dec 指令
-
2.8 movzx 指令
-
2.8.1 從16 位元擴展成32 位元數值
-
2.8.2 從8 位元擴展成32 位元數值
-
-
2.9 movsx 指令
-
2.9.1 movsx 指令–正數的擴展
-
2.9.2 movsx 指令–負數的擴展
-
-
2.10 xchg 指令
-
2.11 adc 指令
-
2.12 sbb 指令
-
2.13 NEG
-
2.14 指令使用補充說明
-
-
Chapter 3 組譯器指令
-
3.1 offset 指令
-
3.2 ptr 指令
-
3.3 type 指令
-
3.4 label 指令
-
3.5 定義變數
-
3.6 equ 指令
-
3.7 TYPEDEF 指令
-
3.8 dup 指令
-
3.9 巨集
-
3.10 結構
-
-
Chapter 4 陣列與指標
-
4.1 陣列
-
4.1.1 byte 類型的陣列
-
4.1.2 word 類型的陣列
-
4.1.3 dword 類型的陣列
-
4.1.4 自由取出記憶體陣列內的數值
-
-
4.2 指標
-
4.2.1 byte 類型的指標
-
4.2.2 word 類型的指標
-
4.2.3 dword 類型的指標
-
-
-
Chapter 5 布爾代數的基本操作指令
-
5.1 AND 指令
-
5.2 OR 指令
-
5.3 XOR 指令
-
5.4 NOT 指令
-
5.5 TEST 指令
-
5.5.1 TEST 指令-1
-
5.5.2 TEST 指令-2
-
-
-
Chapter 6 條件跳轉指令
-
6.1 cmp 指令
-
6.2 條件判斷的實際範例- 數值的異同
-
6.2.1 相同數值的比較
-
6.2.2 相異數值的比較
-
-
6.3 條件判斷的實際範例- 無號數的大小比較
-
6.3.1 較小無號數與較大無號數的比較
-
6.3.2 較大無號數與較小無號數的比較
-
6.3.3 負數與正數的無號數比較
-
-
6.4 條件判斷的實際範例- 有號數的大小比較
-
6.4.1 較小正數與較大正數的比較
-
6.4.2 較大正數與較小正數的比較
-
6.4.3 負數與正數的有號數比較
-
-
6.5 條件判斷的實際範例- 進位旗標
-
6.5.1 無號數運算結果數值低於無號數有效範圍
-
6.5.2 無號數運算結果數值在無號數有效範圍內
-
-
6.6 條件判斷的實際範例-Overflow 旗標
-
6.6.1 有號數運算結果數值超過有號數有效範圍
-
6.6.2 有號數運算結果數值在有號數有效範圍內
-
-
6.7 條件判斷的實際範例-Sign 旗標(PL 旗標)
-
6.7.1 較大數值減較小數值
-
6.7.2 較小數值減去較大數值,結果為負數時
-
-
6.8 條件判斷的實際範例-Parity 旗標
-
6.8.1 計算結果最低的8 位元裡,有偶數個位元被設置為1
-
6.8.2 計算結果最低的8 位元裡,有奇數個位元被設置為1
-
-
6.9 條件判斷的實際範例- 暫存器
-
6.9.1 ECX 不為0,CX 為0
-
-
6.10 條件判斷式指令一覽表
-
-
Chapter 7 整數算數指令—邏輯移位和算數移位
-
7.1 SHL 指令
-
7.1.1 SHL 指令- 已進位CY=1
-
7.1.2 SHL 指令- 未進位CY=0
-
-
7.2 SHR 指令
-
7.2.1 SHR 指令- 已進位CY=1
-
7.2.2 SHR 指令- 未進位CY=0
-
-
7.3 SAL 指令
-
7.3.1 SAL 指令- 已進位CY=1
-
7.3.2 SAL 指令- 未進位CY=0
-
-
7.4 SAR 指令
-
7.4.1 SAR 指令- 已進位CY=1
-
7.4.2 SAR 指令- 未進位CY=0
-
-
7.5 SHL 指令
-
7.5.1 SHL 位移1 位元
-
7.5.2 SHL 位移2 位元
-
7.5.3 SHL 位移3 位元
-
-
7.6 SHR 指令
-
7.6.1 SHR 位移1 位元
-
7.6.2 SHR 位移2 位元
-
7.6.3 SHR 位移3 位元
-
-
7.7 SAL 指令(與SHL 指令等價)
-
7.7.1 SAL 位移1 位元
-
7.7.2 SAL 位移2 位元
-
7.7.3 SAL 位移3 位元
-
-
7.8 SAR 指令
-
7.8.1 SAR 負數位移1 位元
-
7.8.2 SAR 負數位移2 位元
-
7.8.3 SAR 負數位移3 位元
-
7.8.4 SAR 正數位移1 位元
-
7.8.5 SAR 正數位移2 位元
-
7.8.6 SAR 正數位移3 位元
-
-
-
Chapter 8 整數算數指令—續邏輯移位和算數移位
-
8.1 ROL 指令
-
8.1.1 ROL 指令- 已進位
-
8.1.2 ROL 指令- 未進位
-
-
8.2 ROR 指令
-
8.2.1 ROR 指令- 已進位
-
8.2.2 ROR 指令- 未進位
-
-
8.3 RCL 指令
-
8-3-1 RCL 指令-CY=0
-
8-3-2 RCL 指令-CY=1
-
-
8.4 RCR 指令
-
8-4-1 RCR 指令-CY=0
-
8-4-2 RCR 指令-CY=1
-
-
8.5 SHRD 指令
-
8.6 SHLD 指令
-
-
Chapter 9 整數算數指令—乘除指令
-
9.1 MUL 指令
-
9.1.1 MUL 指令-8 位元乘法
-
9.1.2 MUL 指令-16 位元乘法
-
9.1.3 MUL 指令-32 位元乘法
-
-
9.2 IMUL 指令
-
9.2.1 IMUL 指令-8 位元乘法
-
9.2.2 IMUL 指令-16 位元乘法
-
9.2.3 IMUL 指令-32 位元乘法
-
-
9.3 DIV 指令
-
9.3.1 DIV 指令-8 位元除法
-
9.3.2 DIV 指令-16 位元除法
-
9.3.3 DIV 指令-32 位元除法
-
-
9.4 IDIV 指令
-
9.4.1 IDIV 指令-8 位元除法
-
9.4.2 IDIV 指令-16 位元除法
-
9.4.3 IDIV 指令-32 位元除法
-
-
-
Chapter 10 迴圈
-
10.1 loop 指令
-
10.2 loope(或loopz)指令
-
10.3 loopne(或loopnz)指令
-
-
Chapter 11 函數設計的基本技巧
-
11.1 push 指令
-
11.2 pop 指令
-
11.3 函數設計的簡單範例
-
11.4 恢復esp 的簡單範例
-
11.5 pushaw 與popaw 指令
-
11.6 pushad 與popad 指令
-
11.7 pushf 與popf 指令
-
-
Chapter 12 陣列與字串
-
12.1 stosX
-
12.1.1 stosb 指令
-
12.1.2 rep 指令
-
12.1.3 stosw 指令
-
12.1.4 stosd 指令
-
-
12.2 lodsX
-
12.2.1 lodsb 指令
-
12.2.2 lodsb + rep 指令?
-
12.2.3 lodsw 指令
-
12.2.4 lodsd 指令
-
-
12.3 movs
-
12.3.1 movsb 指令
-
12.3.2 movsw 指令
-
12.3.3 movsd 指令
-
-
12.4 scasX
-
12.4.1 scasb 指令
-
12.4.2 scasw 指令
-
12.4.3 scasd 指令
-
-
12.5 cmpsX
-
12.5.1 cmpsb 指令
-
12.5.2 cmpsw 指令
-
12.5.3 cmpsd 指令
-
-
12.6 整理
-
12.7 與C 語言的函式的關係
-
12.8 補充:加速
-
-
Chapter 13 反逆向工程概論的初階入門
-
13.1 看了就眼花
-
13.2 反組譯軟體也眼花
-
-
Appendix
-
附錄A 組合語言指令快速索引
-
附錄B 使用Visual Studio 內建的masm 來書寫組合語言
-
附錄C 旗標變化範例
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分