幫助中心 | 我的帳號 | 關於我們

x86彙編與逆向工程(軟體破解與防護的藝術)/網路空間安全技術叢書

  • 作者:(美)斯蒂芬妮·多馬斯//克里斯托弗·多馬斯|責編:劉鋒//張秀華|譯者:ChaMd5安全團隊
  • 出版社:機械工業
  • ISBN:9787111767404
  • 出版日期:2025/01/01
  • 裝幀:平裝
  • 頁數:237
人民幣:RMB 99 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書以軟體反彙編技術為中心,首先帶領讀者從x86的基礎知識開始,學習如何讀取、編寫和構建賦能全球大量電腦的彙編語言;然後介紹如何使用IDA、Ghidra、Olly等業界最受歡迎的工具對應用程序進行逆向工程;接著介紹如何利用補丁和密鑰生成等技術進行軟體破解,所有這些都利用了彙編和逆向工程的知識;最後從防禦的角度向讀者介紹相關技術,使他們能夠更好地保護自己的軟體。本書將引領好奇的讀者深入軟體破解和電腦的核心,探索其運作機制。深入學習x86電腦的運行原理,不僅對逆向工程和軟體破解來說至關重要,還能幫助讀者在代碼優化、效率提高、調試、編譯器設置調整以及晶元選擇等方面成為更出色的開發者。

作者介紹
(美)斯蒂芬妮·多馬斯//克里斯托弗·多馬斯|責編:劉鋒//張秀華|譯者:ChaMd5安全團隊

目錄
譯者序
前言
關於作者
關於技術撰稿人
關於技術編輯
第1章  反編譯和架構
  1.1  反編譯
    1.1.1  反編譯何時有用
    1.1.2  反編譯JIT語言
    1.1.3  保護JIT語言
  1.2  實驗:反編譯
    1.2.1  技能
    1.2.2  要點
  1.3  架構
    1.3.1  電腦架構
    1.3.2  彙編
  1.4  總結
第2章  x86彙編:數據、模式、寄存器和內存訪問
  2.1  x86簡介
  2.2  彙編語法
  2.3  數據表示
    2.3.1  數字系統的基數
    2.3.2  位、位元組和字
    2.3.3  處理二進位數
  2.4  寄存器
    2.4.1  x86中的寄存器
    2.4.2  寄存器的使用
  2.5  內存訪問
  2.6  定址模式
    2.6.1  絕對定址
    2.6.2  間接定址
    2.6.3  基址加偏移量定址
    2.6.4  索引定址
    2.6.5  基址–索引定址
  2.7  總結
第3章  x86 彙編:指令
  3.1  x86指令格式
  3.2  x86指令
    3.2.1  mov
    3.2.2  inc、dec
    3.2.3  add、sub
    3.2.4  mul
    3.2.5  div
    3.2.6  and、or、xor
    3.2.7  not
    3.2.8  shr、shl
    3.2.9  sar、sal
    3.2.10  nop
    3.2.11  lea
  3.3  整合所有內容

  3.4  常見的x86指令錯誤
  3.5  總結
第4章  構建和運行彙編程序
  4.1  輸出
    4.1.1  控制引腳
    4.1.2  由操作系統處理與顯卡的交互
  4.2  系統調用
    4.2.1  sys_write
    4.2.2  sys_exit
    4.2.3  輸出字元串
  4.3  彙編和鏈接
    4.3.1  Linux中的彙編與鏈接
    4.3.2  編寫彙編程序
  4.4  objdump
  4.5  實驗:Hello World
    4.5.1  技能
    4.5.2  要點
  4.6  ASCII
    4.6.1  識別ASCII字元串
    4.6.2  ASCII操作技巧
  4.7  總結
第5章  理解條件碼
  5.1  條件碼
    5.1.1  eflags
    5.1.2  影響狀態標誌的操作
  5.2  總結
第6章  分析和調試彙編代碼
  6.1  二進位分析
    6.1.1  靜態分析與動態分析
    6.1.2  調試
  6.2  斷點
    6.2.1  軟體斷點
    6.2.2  硬體斷點
  6.3  gdb
  6.4  段錯誤
  6.5  實驗:鯊魚模擬器3000
    6.5.1  技能
    6.5.2  要點
  6.6  消除雜訊
  6.7  總結
第7章  函數和控制流
  7.1  控制流
    7.1.1  指令指針
    7.1.2  控制流指令
  7.2  x86中的邏輯結構
    7.2.1  if(...){...}
    7.2.2  if(...){...}else{...}
    7.2.3  do{...}while(...);
    7.2.4  while(...){...}
    7.2.5  for(...;...;...){...}

    7.2.6  switch(...){...}
    7.2.7  continue
    7.2.8  break
    7.2.9  &&
    7.2.10  ||
  7.3  棧
    7.3.1  棧是如何工作的
    7.3.2  x86棧
  7.4  函數調用與棧幀
    7.4.1  x86中的函數
    7.4.2  棧分析
    7.4.3  調用約定
    7.4.4  cdecl
    7.4.5  棧幀
    7.4.6  宏觀程序
    7.4.7  需要記住的事情
  7.5  總結
第8章  編譯器和優化器
  8.1  尋找目標代碼入口點
  8.2  編譯器
    8.2.1  優化
    8.2.2  剝離
    8.2.3  鏈接
  8.3  總結
第9章  逆向工程:工具和策略
  9.1  實驗:RE Bingo
    9.1.1  技能
    9.1.2  要點
  9.2  基礎偵察
    9.2.1  objdump
    9.2.2  ltrace和strace
    9.2.3  strings
    9.2.4  Dependency Walker
  9.3  逆向工程的策略
    9.3.1  尋找感興趣的區域
    9.3.2  迭代註釋代碼
  9.4  總結
第10章  破解:工具和策略
  10.1  密鑰檢查器
    10.1.1  不好的方法
    10.1.2  合理的方法
    10.1.3  更好的方法
    10.1.4  最佳方法
    10.1.5  其他的建議
  10.2  密鑰生成器
    10.2.1  為什麼要創建密鑰生成器
    10.2.2  密鑰生成的原理
    10.2.3  破解各種類型的密鑰檢查
    10.2.4  對抗密鑰生成器
  10.3  實驗:密鑰生成器

    10.3.1  技能
    10.3.2  要點
  10.4  Procmon
    10.4.1  示例:Notepad.exe
    10.4.2  怎樣用Procmon輔助逆向工程和破解
  10.5  Resource Hacker
    10.5.1  示例
    10.5.2  小實驗:Windows計算器
  10.6  打補丁
    10.6.1  打補丁與密鑰生成
    10.6.2  在哪裡打補丁
    10.6.3  nop指令
  10.7  其他調試器
    10.7.1  OllyDbg
    10.7.2  Immunity
    10.7.3  x86dbg
    10.7.4  WinDbg
  10.8  使用Immunity調試工具進行調試
    10.8.1  Immunity:彙編代碼
    10.8.2  Immunity:模塊
    10.8.3  Immunity:字元串
    10.8.4  Immunity:運行程序
    10.8.5  Immunity:異常
    10.8.6  Immunity:重寫程序
  10.9  實驗:使用Immunity進行破解
    10.9.1  技能
    10.9.2  要點
  10.10  總結
第11章  打補丁和高級工具
  11.1  在010編輯器中打補丁
  11.2  CodeFusion補丁
  11.3  Cheat Engine
    11.3.1  Cheat Engine:打開進程
    11.3.2  Cheat Engine:查看內存
    11.3.3  Cheat Engine:字元串引用
    11.3.4  Cheat Engine:重寫程序
    11.3.5  Cheat Engine:複製位元組
    11.3.6  Cheat Engine:獲取地址
  11.4  實驗:破解LaFarge
    11.4.1  技能
    11.4.2  要點
  11.5  IDA
    11.5.1  IDA:字元串
    11.5.2  IDA:基本塊
    11.5.3  IDA:函數和變數
    11.5.4  IDA:註釋
    11.5.5  IDA:路徑
  11.6  IDA補丁
  11.7  實驗:IDA邏輯流程
    11.7.1  技能

    11.7.2  要點
  11.8  Ghidra
  11.9  實驗:使用IDA進行破解
    11.9.1  技能
    11.9.2  要點
  11.10  總結
第12章  防禦
  12.1  混淆技術
    12.1.1  評估混淆技術
    12.1.2  自動化混淆
    12.1.3  混淆器
    12.1.4  攻克混淆器
  12.2  實驗:混淆技術
    12.2.1  技能
    12.2.2  要點
  12.3  反調試
    12.3.1  IsDebuggerPresent()
    12.3.2  調試寄存器
    12.3.3  讀時間戳計數器
    12.3.4  無效CloseHandle()調用
    12.3.5  目錄掃描
    12.3.6  攻擊性反調試
    12.3.7  攻克反調試技術
  12.4  實驗:反調試
    12.4.1  技能
    12.4.2  要點
  12.5  總結
第13章  高級防禦技術
  13.1  防篡改技術
    13.1.1  哈希
    13.1.2  簽名
    13.1.3  水印
    13.1.4  軟體守護
  13.2  加殼技術
    13.2.1  加殼器是如何工作的
    13.2.2  這是強大的保護機制嗎
    13.2.3  破解加殼技術
    13.2.4  PEiD
  13.3  實驗:檢測和脫殼
    13.3.1  技能
    13.3.2  要點
  13.4  虛擬化技術
    13.4.1  代碼虛擬化是如何工作的
    13.4.2  分層虛擬化
    13.4.3  虛擬化存在的問題
    13.4.4  這是強大的保護機制嗎
    13.4.5  破解虛擬化技術
  13.5  加密器/解密器
    13.5.1  這種保護機制有用嗎
    13.5.2  攻克加密器

  13.6  總結
第14章  檢測與預防
  14.1  循環冗余校驗
  14.2  代碼簽名
    14.2.1  如何進行代碼簽名
    14.2.2  如何驗證已簽名的應用程序
    14.2.3  代碼簽名有效嗎
    14.2.4  代碼簽名與循環冗余校驗
    14.2.5  這是強大的保護機制嗎
  14.3  RASP
    14.3.1  鉤子函數
    14.3.2  RASP的風險
    14.3.3  這是強大的保護機制嗎
  14.4  白名單
    14.4.1  如何運行白名單
    14.4.2  這是強大的保護機制嗎
  14.5  黑名單
  14.6  遠程認證
    14.6.1  遠程認證示例
    14.6.2  這是強大的保護機制嗎
  14.7  實驗:進程監控
    14.7.1  技能
    14.7.2  要點
  14.8  總結
第15章  法律
  15.1  影響逆向工程的美國法律
    15.1.1  《數字千年版權法》
    15.1.2  《電腦欺詐和濫用法案》
    15.1.3  《版權法》
    15.1.4  重要法庭判例
    15.1.5  合理使用
    15.1.6  DMCA研究免責
    15.1.7  合法性
  15.2  總結
第16章  高級技術
  16.1  時間旅行調試
  16.2  二進位插樁
  16.3  中間表示
  16.4  反編譯
  16.5  自動化結構恢復
  16.6  可視化
  16.7  去混淆
  16.8  定理證明器
  16.9  符號分析
  16.10  總結
第17章  附加話題
  17.1  棧溢出
    17.1.1  shellcode
    17.1.2  棧溢出與棧保護
  17.2  關聯C代碼與x86彙編代碼

    17.2.1  在x86代碼中使用C函數
    17.2.2  在C代碼中使用x86函數
    17.2.3  _start與main()
    17.2.4  標準參數
    17.2.5  混合使用C語言和彙編語言
  17.3  總結
結語

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032