为你推荐
内容简介
前言
第1章 概述
1.1 Linux系统安全
1.2 代码安全
1.3 什么是二进制代码安全性分析
1.4 二进制代码安全性分析的重要性
1.5 二进制代码安全性分析的主要步骤
1.6 软件错误、漏洞以及利用
第2章 二进制代码生成
2.1 二进制代码的生成过程
2.2 ELF文件格式
2.3 程序的装载与调度执行
第3章 二进制代码信息的收集
3.1 nm
3.2 ldd
3.3 strings
3.4 ELF文件分析工具LIEF
3.5 ps
3.6 strace
3.7 ltrace
3.8 ROPgadget
3.9 ob jdump
3.10 readelf
3.11 GDB
3.12 Pwntools
3.13 LibcSearcher
第4章 静态二进制代码分析
4.1 基于IDAPro的静态分析
4.2 基于Radare2 的静态分析
第5章 二进制代码脆弱性评估
5.1 常见二进制代码脆弱性
5.2 基于系统工具对代码脆弱性的评估
5.3 基于Intel Pin的代码脆弱性评估
5.4 基于符号执行的代码脆弱性评估
5.5 基于污点分析的代码脆弱性评估
5.6 基于模糊测试的代码脆弱性评估
第6章 二进制代码漏洞利用
6.1 二进制代码加固技术及其gcc编译选项
6.2 缓冲区溢出漏洞的利用
6.3 基于Angr的缓冲区溢出漏洞自动利用
附录A 数据对齐问题
A.1 基本数据类型的对齐
A.2 非标准(复杂)类型数据的对齐
A.3 计算机的字节顺序
附录B 函数调用约定
B.1 函数参数的传递
B.2 函数的前导
B.3 函数的后续
附录C 栈帧原理
C.1 什么是栈帧
C.2 栈帧中的内容有哪些
C.3 栈帧内容的具体示例
C.4 栈帧对齐
附录D 32位系统与64位系统中程序的区别
D.1 数据类型大小的不同
D.2 函数调用参数的传递方式不同
D.3 程序装载的基地址不同
附录E 共享库链接的路径问题
E.1 共享库测试代码
E.2 共享库文件的生成
E.3 共享库的链接
E.4 共享库的使用
附录F 在多模块中使用ld手动链接生成可执行文件
附录G 在C++程序中调用C 函数的问题
G.1 C与C++程序的内存分配
G.2 符号改编问题
G.3 符号改编问题的解决办法
G.4 C++名字空间的问题
附录H Linux死机的处理
附录I Python文件默认的开头注释格式
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜