搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
二进制分析实战
0.00     定价 ¥ 129.80
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购24本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787115556936
  • 作      者:
    作者:(荷)丹尼斯·安德里斯|责编:武晓燕|译者:刘杰宏//马金鑫//崔宝江
  • 出 版 社 :
    人民邮电出版社
  • 出版日期:
    2021-10-01
收藏
畅销推荐
内容介绍
二进制分析是分析计算机二进制程序(称为二进制文件)及其包含的机器代码和数据属性的科学和艺术。二进制分析的目标是确定二进制程序的真正属性,以理解它们真正的功能。 本书是为安全工程师编写的,涉及二进制分析和检测的相关内容。本书首先介绍了二进制分析的基本概念和二进制格式,然后讲解了如何使用GNU/Linux二进制分析工具链、反汇编和代码注入这样的技术来分析二进制文件,最后介绍了使用Pin构建二进制插桩的方法以及使用libdft构建动态污点分析工具的方法等。 本书适合安全工程师、学术安全研究人员、逆向工程师、恶意软件分析师和对二进制分析感兴趣的计算机科学专业的学生阅读。
展开
目录
第一部分 二进制格式
第1章 二进制简介
1.1 C编译过程
1.1.1 预处理阶段
1.1.2 编译阶段
1.1.3 汇编阶段
1.1.4 链接阶段
1.2 符号和剥离的二进制文件
1.2.1 查看符号信息
1.2.2 剥离二进制文件
1.3 反汇编二进制文件
1.3.1 查看对象文件
1.3.2 检查完整的二进制执行体
1.4 加载并执行二进制文件
1.5 总结
1.6 练习
第2章 ELF格式
2.1 ELF头部
2.1.1 e_ident数组
2.1.2 e_type、e_machine及e_version字段
2.1.3 e_entry字段
2.1.4 e_phoff和e_shoff字段
2.1.5 e_flags字段
2.1.6 e_ehsize字段
2.1.7 e_*entsize和e_*num字段
2.1.8 e_shstrndx字段
2.2 节头
2.2.1 sh_name字段
2.2.2 sh_type字段
2.2.3 sh_flags字段
2.2.4 sh_addr、sh_offset及sh_size字段
2.2.5 sh_link字段
2.2.6 sh_info字段
2.2.7 sh_addralign字段
2.2.8 sh_entsize字段
2.3 节
2.3.1 .init和.fini节
2.3.2 .text节
2.3.3 .bss、.data及.rodata节
2.3.4 延迟绑定和.plt、.got及.got.plt节
2.3.5 .rel.*和.rela.*节
2.3.6 .dynamic节
2.3.7 .init_array和.fini_array节
2.3.8 .shstrtab、.symtab、.strtab、.dynsym及.dynstr节
2.4 程序头
2.4.1 p_type字段
2.4.2 p_flags字段
2.4.3 p_offset、p_vaddr、p_paddr、p_filesz及p_memsz字段
2.4.4 p_align字段
2.5 总结
2.6 练习
第3章 PE格式简介
3.1 MS-DOS头和MS-DOS存根
3.2 PE签名、PF文件头及PE可选头
3.2.1 PE签名
3.2.2 PE文件头
3.2.3 PE可选头
3.3 节表
3.4 节
3.4.1 .edata和.idata节
3.4.2 PE代码节的填充
3.5 总结
3.6 练习
第4章 使用libbfd创建二进制加载器
4.1 什么是libbfd
4.2 一个简单的二进制加载接口
4.2.1 Binary类
4.2.2 Section类
4.2.3 Symbol类
4.3 实现二进制加载器
4.3.1 初始化libbfd并打开二进制文件
4.3.2 解析基础二进制属性
4.3.3 加载符号
4.3.4 加载节信息
4.4 测试二进制加载器
4.5 总结
4.6 练习
第二部分 二进制分析基础
第5章 Linux二进制分析
5.1 使用file解决类型问题
5.2 使用ldd探索依赖性
5.3 使用xxd查看文件内容
5.4 使用readelf解析并提取ELF库文件
5.5 使用nm解析符号
5.6 使用strings查看Hints
5.7 使用strace和ltrace跟踪系统调用和库文件调用
5.8 使用objdump检查指令集行为
5.9 使用GDB转储动态字符串缓冲区
5.10 总结
5.11 练习
第6章 反汇编与二进制分析基础
6.1 静态反汇编
6.1.1 线性反汇编
6.1.2 递归反汇编
6.2 动态反汇编
6.2.1 示例:使用GDB跟踪二进制执行
6.2.2 代码覆盖策略
6.3 构建反汇编代码和数据
6.3.1 构建代码
6.3.2 构建数据
6.3.3 反编译
6.3.4 中间语言
6.4 基本分析方法
6.4.1 二进制分析的特性
6.4.2 控制流分析
6.4.3 数据流分析
6.5 编译器设置对反汇编的影响
6.6 总结
6.7 练习
第7章 简单的ELF代码注入技术
7.1 使用十六进制编辑器修改裸机二进制文件
7.1.1 在操作中观察off-by-one漏洞
7.1.2 修复off-by-one漏洞
7.2 使用LD_PRELOAD修改共享库行为
7.2.1 堆溢出漏洞
7.2.2 检测堆溢出
7.3 注入代码节
7.3.1 注入ELF节:高级概述
7.3.2 使用elfinject注入ELF节
7.4 调用注入的代码
7.4.1 入口点修改
7.4.2 劫持构造函数和析构函数
7.4.3 劫持GOT条目
7.4.4 劫持PLT条目
7.4.5 重定向直接调用和间接调用
7.5 总结
7.6 练习
第三部分 高级二进制分析
第8章 自定义反汇编
8.1 为什么要自定义反汇编过程
8.1.1 一个自定义反汇编实例:代码混淆
8.1.2 编写自定义反汇编器的其他原因
8.2 Capstone介绍
8.2.1 Capstone安装
8.2.2 Capstone线性反汇编
8.2.3 研究Capstone C的API
8.2.4 使用Capstone编写递归反汇编器
8.3 实现一个ROP小工具扫描器
8.3.1 返回导向式编程简介
8.3.2 寻找ROP的“gadget”
8.4 总结
8.5 练习
第9章 二进制插桩
9.1 什
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证