0人評分過此書

通往高級駭客的修行之路:組合語言進階修行與反逆向分析

出版日期
2017/04/28
閱讀格式
PDF
書籍分類
學科分類
ISBN
9789864342068

本館館藏

借閱規則
當前可使用人數 30
借閱天數 14
線上看 0
借閱中 0

計次服務

借閱規則
借閱天數 14
選擇分享方式

推薦本館採購書籍

您可以將喜歡的電子書推薦給圖書館,圖書館會參考讀者意見進行採購

讀者資料
圖書館
* 姓名
* 身分
系所
* E-mail
※ 我們會寄送一份副本至您填寫的Email中
電話
※ 電話格式為 區碼+電話號碼(ex. 0229235151)/ 手機格式為 0900111111
* 請輸入驗證碼
學習駭客技術的第一關就是得先學習組合語言,因為只有掌握了組合語言之後才能夠了解電腦,而了解電腦之後,才能夠來玩駭客技術。

  駭客技術浩瀚如海,如果沒有基礎是絕對進不去這個領域,而想要踏入駭客技術的領域,組合語言和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 旗標變化範例

評分與評論

請登入後再留言與評分
幫助
您好,請問需要甚麼幫助呢?
使用指南

客服專線:0800-000-747

服務時間:週一至週五 AM 09:00~PM 06:00

loading