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

Linux系統安全基礎(二進位代碼安全性分析基礎與實踐)

  • 作者:編者:彭雙和|責編:田宏峰
  • 出版社:電子工業
  • ISBN:9787121459702
  • 出版日期:2023/07/01
  • 裝幀:平裝
  • 頁數:521
人民幣:RMB 168 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書主要通過對二進位代碼安全性進行分析來介紹Linux系統安全。本書共分為6章,首先對Linux系統安全和二進位代碼安全性分析進行了概述;然後詳細地介紹了二進位代碼的生成以及二進位代碼信息的收集;在此基礎上,接著對靜態二進位代碼分析和二進位代碼脆弱性評估進行了深入的探討;最後詳細介紹了二進位代碼漏洞利用。為了幫助讀者更好地掌握相關的理論知識和技術原理,本書穿插了作者親自實踐過的軟體源碼,並對源碼的關鍵部分進行了說明。
    本書適合具有一定Linux系統知識,以及C語言和彙編語言編程基礎的信息安全專業人員閱讀。本書可作為高等院校相關專業的教材或教學輔導書,對參與CTF的讀者也有一定的參考價值。

作者介紹
編者:彭雙和|責編:田宏峰

目錄
第1章  概述
  1.1  Linux系統安全
  1.2  代碼安全
  1.3  什麼是二進位代碼安全性分析
  1.4  二進位代碼安全性分析的重要性
  1.5  二進位代碼安全性分析的主要步驟
  1.6  軟體錯誤、漏洞以及利用
    1.6.1  軟體錯誤
    1.6.2  軟體漏洞
    1.6.3  漏洞利用
    1.6.4  二進位代碼利用
第2章  二進位代碼生成
  2.1  二進位代碼的生成過程
    2.1.1  編譯預處理階段
    2.1.2  編譯階段
    2.1.3  彙編階段
    2.1.4  鏈接階段
    2.1.5  gcc的常用選項
    2.1.6  ld的常用選項
    2.1.7  gcc的常用環境變數
    2.1.8  二進位代碼的生成舉例
  2.2  ELF文件格式
    2.2.1  ELF文件的兩種視圖
    2.2.2  ELF文件的頭
    2.2.3  可執行文件的主要節
    2.2.4  位置無關代碼
    2.2.5  ELF文件的頭
    2.2.6  ELF文件的主要段
  2.3  程序的裝載與調度執行
    2.3.1  可執行文件的裝載
    2.3.2  可執行文件調度運行的過程
    2.3.3  進程的虛擬地址空間及其訪問
第3章  二進位代碼信息的收集
  3.1  nm
  3.2  ldd
  3.3  strings
  3.4  ELF文件分析工具LIEF
    3.4.1  安裝
    3.4.2  基於LIEF對.got.plt表的攻擊舉例
    3.4.3  基於LIEF將可執行文件轉變為共享庫文件
  3.5  ps
  3.6  strace
  3.7  ltrace
  3.8  ROPgadget
  3.9  ob jdump
  3.10  readelf
  3.11  GDB
    3.11.1  GDB的初始化腳本文件
    3.11.2  GDB的常用命令
    3.11.3  GDB的常用命令示例

    3.11.4  GDB命令的運行
    3.11.5  GDB命令的擴充
    3.11.6  PEDA基本使用
  3.12  Pwntools
    3.12.1  Pwntools的安裝
    3.12.2  通過上下文設置目標平台
    3.12.3  本地進程對象的創建
    3.12.4  遠程進程對象的創建
    3.12.5  ELF模塊
    3.12.6  search方法
    3.12.7  cyclic命令的功能
    3.12.8  核心文件
    3.12.9  數據轉換
    3.12.10  struct模塊
    3.12.11  shellcraft模塊
    3.12.12  ROP模塊
    3.12.13  GDB模塊
    3.12.14  DynELF模塊
    3.12.15  基於標準輸入/輸出的數據交互
    3.12.16  基於命名管道的數據交互
    3.12.17  腳本文件和被測目標程序的交互
    3.12.18  基於Python腳本文件的Pwntools應用舉例
  3.13  LibcSearcher
第4章  靜態二進位代碼分析
  4.1  基於IDAPro的靜態分析
    4.1.1  IDC腳本文件
    4.1.2  IDAPython腳本文件
    4.1.3  IDAPython腳本文件示例
    4.1.4  IDAPro插件的編寫
  4.2  基於Radare2的靜態分析
    4.2.1  r2 的常用命令
    4.2.2  r2 常用命令示例
    4.2.3  r2 對JSON格式數據的處理
    4.2.4  基於r2pipe的腳本文件編寫
    4.2.5  基於r2pipe的腳本文件執行
第5章  二進位代碼脆弱性評估
  5.1  常見二進位代碼脆弱性
    5.1.1  棧溢出的原理
    5.1.2  堆溢出的原理
  5.2  基於系統工具對代碼脆弱性的評估
    5.2.1  基於Clang Static Analyzer的安全檢測
    5.2.2  Linux系統下堆安全的增強措施
  5.3  基於Intel Pin的代碼脆弱性評估
    5.3.1  插樁模式
    5.3.2  插樁粒度
    5.3.3  Intel Pintools的編寫
    5.3.4  分析代碼的過濾
    5.3.5  Pintools的生成
    5.3.6  Pintools的測試
    5.3.7  Pintools應用示例:緩衝區溢出的檢測

  5.4  基於符號執行的代碼脆弱性評估
    5.4.1  符號執行的原理
    5.4.2  符號執行的優、缺點
    5.4.3  基於Angr的二進位代碼分析
  5.5  基於污點分析的代碼脆弱性評估
    5.5.1  污點分析原理
    5.5.2  污點分析的分類
    5.5.3  污點分析相關概念
    5.5.4  基於Clang靜態分析儀的污點分析應用
    5.5.5  基於Pin的動態污點分析
  5.6  基於模糊測試的代碼脆弱性評估
    5.6.1  模糊測試的方式
    5.6.2  內存模糊測試
    5.6.3  libFuzzer
第6章  二進位代碼漏洞利用
  6.1  二進位代碼加固技術及其gcc編譯選項
    6.1.1  二進位代碼保護措施的查看
    6.1.2  去掉可執行文件中的符號的方法
    6.1.3  Linux中的NX機制
    6.1.4  Canary棧保護
    6.1.5  RELRO機制
    6.1.6  地址空間布局隨機化
    6.1.7  PIE保護機制
    6.1.8  繞過PIE保護機制的方法
    6.1.9  RPATH和RUNPATH
    6.1.10  RPATH存在的安全問題制
    6.1.11  FORTIFY保護機制
    6.1.12  ASCII-Armor地址映射保護機制
    6.1.13  二進位代碼保護技術比較
  6.2  緩衝區溢出漏洞的利用
    6.2.1  ret2shellcode
    6.2.2  ret2Libc攻擊
    6.2.3  ret2plt
    6.2.4  .got表覆蓋技術
    6.2.5  ROP攻擊
    6.2.6  被測目標程序的代碼被執行多次的多階段攻擊
    6.2.7  被測目標程序的代碼被執行一次的多階段攻擊
  6.3  基於Angr的緩衝區溢出漏洞自動利用
    6.3.1  任意讀
    6.3.2  任意寫
    6.3.3  任意跳轉
附錄A  數據對齊問題
附錄B  函數調用約定
附錄C  棧幀原理
附錄D  32位系統與64位系統中程序的區別
附錄E  共享庫鏈接的路徑問題
附錄F  在多模塊中使用ld手動鏈接生成可執行文件
附錄G  在C++程序中調用C函數的問題
附錄H  Linux死機的處理
附錄I  Python文件默認的開頭註釋格式

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們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