首頁(yè) > 計(jì)算機(jī)網(wǎng)絡(luò) >
操作系統(tǒng)
> Linux系統(tǒng)安全基礎(chǔ):二進(jìn)制代碼安全性分析基礎(chǔ)與實(shí)踐最新章節(jié)目錄
舉報(bào)

會(huì)員
Linux系統(tǒng)安全基礎(chǔ):二進(jìn)制代碼安全性分析基礎(chǔ)與實(shí)踐
最新章節(jié):
附錄I Python文件默認(rèn)的開頭注釋格式
本書主要通過對(duì)二進(jìn)制代碼安全性進(jìn)行分析來介紹Linux系統(tǒng)安全。本書共分為6章,首先對(duì)Linux系統(tǒng)安全和二進(jìn)制代碼安全性分析進(jìn)行了概述;然后詳細(xì)地介紹了二進(jìn)制代碼的生成以及二進(jìn)制代碼信息的收集;在此基礎(chǔ)上,接著對(duì)靜態(tài)二進(jìn)制代碼分析和二進(jìn)制代碼脆弱性評(píng)估進(jìn)行了深入的探討;最后詳細(xì)介紹了二進(jìn)制代碼漏洞利用。為了幫助讀者更好地掌握相關(guān)的理論知識(shí)和技術(shù)原理,本書穿插了作者親自實(shí)踐過的軟件源碼,并對(duì)源碼的關(guān)鍵部分進(jìn)行了說明。
目錄(181章)
倒序
- 封面
- 版權(quán)信息
- 內(nèi)容簡(jiǎn)介
- 前言
- 第1章 概述
- 1.1 Linux系統(tǒng)安全
- 1.2 代碼安全
- 1.3 什么是二進(jìn)制代碼安全性分析
- 1.4 二進(jìn)制代碼安全性分析的重要性
- 1.5 二進(jìn)制代碼安全性分析的主要步驟
- 1.6 軟件錯(cuò)誤、漏洞以及利用
- 1.6.1 軟件錯(cuò)誤
- 1.6.2 軟件漏洞
- 1.6.3 漏洞利用
- 1.6.4 二進(jìn)制代碼利用
- 第2章 二進(jìn)制代碼生成
- 2.1 二進(jìn)制代碼的生成過程
- 2.1.1 編譯預(yù)處理階段
- 2.1.2 編譯階段
- 2.1.3 匯編階段
- 2.1.4 鏈接階段
- 2.1.5 gcc的常用選項(xiàng)
- 2.1.6 ld的常用選項(xiàng)
- 2.1.7 gcc的常用環(huán)境變量
- 2.1.8 二進(jìn)制代碼的生成舉例
- 2.2 ELF文件格式
- 2.2.1 ELF文件的兩種視圖
- 2.2.2 ELF文件的頭
- 2.2.3 可執(zhí)行文件的主要節(jié)
- 2.2.4 位置無(wú)關(guān)代碼
- 2.2.5 ELF文件的頭
- 2.2.6 ELF文件的主要段
- 2.3 程序的裝載與調(diào)度執(zhí)行
- 2.3.1 可執(zhí)行文件的裝載
- 2.3.2 可執(zhí)行文件調(diào)度運(yùn)行的過程
- 2.3.3 進(jìn)程的虛擬地址空間及其訪問
- 第3章 二進(jìn)制代碼信息的收集
- 3.1 nm
- 3.2 ldd
- 3.3 strings
- 3.4 ELF文件分析工具LIEF
- 3.4.1 安裝
- 3.4.2 基于LIEF對(duì).got.plt表的攻擊舉例
- 3.4.3 基于LIEF將可執(zhí)行文件轉(zhuǎn)變?yōu)楣蚕韼?kù)文件
- 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命令的運(yùn)行
- 3.11.5 GDB命令的擴(kuò)充
- 3.11.6 PEDA基本使用
- 3.12 Pwntools
- 3.12.1 Pwntools的安裝
- 3.12.2 通過上下文設(shè)置目標(biāo)平臺(tái)
- 3.12.3 本地進(jìn)程對(duì)象的創(chuàng)建
- 3.12.4 遠(yuǎn)程進(jìn)程對(duì)象的創(chuàng)建
- 3.12.5 ELF模塊
- 3.12.6 search方法
- 3.12.7 cyclic命令的功能
- 3.12.8 核心文件
- 3.12.9 數(shù)據(jù)轉(zhuǎn)換
- 3.12.10 struct模塊
- 3.12.11 shellcraft模塊
- 3.12.12 ROP模塊
- 3.12.13 GDB模塊
- 3.12.14 DynELF模塊
- 3.12.15 基于標(biāo)準(zhǔn)輸入/輸出的數(shù)據(jù)交互
- 3.12.16 基于命名管道的數(shù)據(jù)交互
- 3.12.17 腳本文件和被測(cè)目標(biāo)程序的交互
- 3.12.18 基于Python腳本文件的Pwntools應(yīng)用舉例
- 3.13 LibcSearcher
- 第4章 靜態(tài)二進(jìn)制代碼分析
- 4.1 基于IDAPro的靜態(tài)分析
- 4.1.1 IDC腳本文件
- 4.1.2 IDAPython腳本文件
- 4.1.3 IDAPython腳本文件示例
- 4.1.4 IDAPro插件的編寫
- 4.2 基于Radare2 的靜態(tài)分析
- 4.2.1 r2 的常用命令
- 4.2.2 r2 常用命令示例
- 4.2.3 r2 對(duì)JSON格式數(shù)據(jù)的處理
- 4.2.4 基于r2pipe的腳本文件編寫
- 4.2.5 基于r2pipe的腳本文件執(zhí)行
- 第5章 二進(jìn)制代碼脆弱性評(píng)估
- 5.1 常見二進(jìn)制代碼脆弱性
- 5.1.1 棧溢出的原理
- 5.1.2 堆溢出的原理
- 5.2 基于系統(tǒng)工具對(duì)代碼脆弱性的評(píng)估
- 5.2.1 基于Clang Static Analyzer的安全檢測(cè)
- 5.2.2 Linux系統(tǒng)下堆安全的增強(qiáng)措施
- 5.3 基于Intel Pin的代碼脆弱性評(píng)估
- 5.3.1 插樁模式
- 5.3.2 插樁粒度
- 5.3.3 Intel Pintools的編寫
- 5.3.4 分析代碼的過濾
- 5.3.5 Pintools的生成
- 5.3.6 Pintools的測(cè)試
- 5.3.7 Pintools應(yīng)用示例:緩沖區(qū)溢出的檢測(cè)
- 5.4 基于符號(hào)執(zhí)行的代碼脆弱性評(píng)估
- 5.4.1 符號(hào)執(zhí)行的原理
- 5.4.2 符號(hào)執(zhí)行的優(yōu)、缺點(diǎn)
- 5.4.3 基于Angr的二進(jìn)制代碼分析
- 5.5 基于污點(diǎn)分析的代碼脆弱性評(píng)估
- 5.5.1 污點(diǎn)分析原理
- 5.5.2 污點(diǎn)分析的分類
- 5.5.3 污點(diǎn)分析相關(guān)概念
- 5.5.4 基于Clang靜態(tài)分析儀的污點(diǎn)分析應(yīng)用
- 5.5.5 基于Pin的動(dòng)態(tài)污點(diǎn)分析
- 5.6 基于模糊測(cè)試的代碼脆弱性評(píng)估
- 5.6.1 模糊測(cè)試的方式
- 5.6.2 內(nèi)存模糊測(cè)試
- 5.6.3 libFuzzer
- 第6章 二進(jìn)制代碼漏洞利用
- 6.1 二進(jìn)制代碼加固技術(shù)及其gcc編譯選項(xiàng)
- 6.1.1 二進(jìn)制代碼保護(hù)措施的查看
- 6.1.2 去掉可執(zhí)行文件中的符號(hào)的方法
- 6.1.3 Linux中的NX機(jī)制
- 6.1.4 Canary棧保護(hù)
- 6.1.5 RELRO機(jī)制
- 6.1.6 地址空間布局隨機(jī)化
- 6.1.7 PIE保護(hù)機(jī)制
- 6.1.8 繞過PIE保護(hù)機(jī)制的方法
- 6.1.9 RPATH和RUNPATH
- 6.1.10 RPATH存在的安全問題
- 6.1.11 FORTIFY保護(hù)機(jī)制
- 6.1.12 ASCII-Armor地址映射保護(hù)機(jī)制
- 6.1.13 二進(jìn)制代碼保護(hù)技術(shù)比較
- 6.2 緩沖區(qū)溢出漏洞的利用
- 6.2.1 ret2shellcode
- 6.2.2 ret2Libc攻擊
- 6.2.3 ret2plt
- 6.2.4.got表覆蓋技術(shù)
- 6.2.5 ROP攻擊
- 6.2.6 被測(cè)目標(biāo)程序的代碼被執(zhí)行多次的多階段攻擊
- 6.2.7 被測(cè)目標(biāo)程序的代碼被執(zhí)行一次的多階段攻擊
- 6.3 基于Angr的緩沖區(qū)溢出漏洞自動(dòng)利用
- 6.3.1 任意讀
- 6.3.2 任意寫
- 6.3.3 任意跳轉(zhuǎn)
- 附錄A 數(shù)據(jù)對(duì)齊問題
- A.1 基本數(shù)據(jù)類型的對(duì)齊
- A.2 非標(biāo)準(zhǔn)(復(fù)雜)類型數(shù)據(jù)的對(duì)齊
- A.3 計(jì)算機(jī)的字節(jié)順序
- 附錄B 函數(shù)調(diào)用約定
- B.1 函數(shù)參數(shù)的傳遞
- B.2 函數(shù)的前導(dǎo)
- B.3 函數(shù)的后續(xù)
- 附錄C 棧幀原理
- C.1 什么是棧幀
- C.2 棧幀中的內(nèi)容有哪些
- C.3 棧幀內(nèi)容的具體示例
- C.4 棧幀對(duì)齊
- C.4.1 x86 系統(tǒng)下的棧幀對(duì)齊
- C.4.2 x86-64 系統(tǒng)下棧幀對(duì)齊
- C.4.3 棧幀中變量的對(duì)齊
- 附錄D 32位系統(tǒng)與64位系統(tǒng)中程序的區(qū)別
- D.1 數(shù)據(jù)類型大小的不同
- D.2 函數(shù)調(diào)用參數(shù)的傳遞方式不同
- D.3 程序裝載的基地址不同
- 附錄E 共享庫(kù)鏈接的路徑問題
- E.1 共享庫(kù)測(cè)試代碼
- E.1.1 共享庫(kù)頭文件
- E.1.2 共享庫(kù)函數(shù)定義文件
- E.1.3 共享庫(kù)測(cè)試文件
- E.2 共享庫(kù)文件的生成
- E.3 共享庫(kù)的鏈接
- E.4 共享庫(kù)的使用
- 附錄F 在多模塊中使用ld手動(dòng)鏈接生成可執(zhí)行文件
- 附錄G 在C++程序中調(diào)用C 函數(shù)的問題
- G.1 C與C++程序的內(nèi)存分配
- G.2 符號(hào)改編問題
- G.3 符號(hào)改編問題的解決辦法
- G.4 C++名字空間的問題
- 附錄H Linux死機(jī)的處理
- 附錄I Python文件默認(rèn)的開頭注釋格式 更新時(shí)間:2023-09-07 18:32:03
推薦閱讀
- 全屋互聯(lián):智能家居系統(tǒng)開發(fā)指南
- Windows Server 2012 Hyper-V:Deploying the Hyper-V Enterprise Server Virtualization Platform
- Designing Purpose:Built Drones for Ardupilot Pixhawk 2.1
- 網(wǎng)絡(luò)操作系統(tǒng):Windows Server 2003管理與應(yīng)用
- Haskell Financial Data Modeling and Predictive Analytics
- Linux集群和自動(dòng)化運(yùn)維
- Linux內(nèi)核觀測(cè)技術(shù)BPF
- Vim 8文本處理實(shí)戰(zhàn)
- Windows 7使用詳解(修訂版)
- OpenVZ Essentials
- Linux從入門到精通(視頻教學(xué)版)
- Raspberry Pi入門指南
- Docker容器技術(shù)與運(yùn)維
- Responsive Web Design with AngularJS
- 跟老男孩學(xué)Linux運(yùn)維:Web集群實(shí)戰(zhàn)
- 蘋果派
- OpenWrt智能路由系統(tǒng)開發(fā)
- Getting Started with Oracle Public Cloud
- Linux網(wǎng)絡(luò)技術(shù)
- 新編大學(xué)計(jì)算機(jī)應(yīng)用基礎(chǔ)(Windows 7+Office 2010)(微課版)
- 鴻蒙App開發(fā)全流程實(shí)戰(zhàn)
- 移動(dòng)機(jī)器人原理與應(yīng)用(基于ROS操作系統(tǒng))
- Hands-On Reactive Programming with Python
- Docker on Windows
- 計(jì)算機(jī)應(yīng)用基礎(chǔ):Windows 7+Office 2010
- INSTANT Hyper-V Server Virtualization Starter
- 鴻蒙操作系統(tǒng)應(yīng)用開發(fā)實(shí)踐
- RT-Thread設(shè)備驅(qū)動(dòng)開發(fā)指南
- 深入淺出Linux工具與編程
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)上機(jī)指導(dǎo)與習(xí)題集(微課版)