展开全部

主编推荐语

打造自己的二进制插桩、分析和反汇编的Linux工具。

内容简介

如今,读者可以找到许多关于汇编的书籍,甚至可以找到更多有关ELF和PE二进制格式的说明。关于信息流跟踪和符号执行也有大量的文章。但是,没有哪本书可以向读者展示从理解基本汇编知识到进行高级二进制分析的全过程;也没有哪本书可以向读者展示如何插桩二进制程序、如何使用动态污点分析来跟踪程序执行过程中的数据或使用符号执行来自动生成漏洞利用程序。换句话说,直到现在,没有一本书可以教你二进制分析所需的技术、工具和思维方式。

目录

  • 版权信息
  • 内容提要
  • 致谢
  • 作者序
  • 前言
  • 第一部分 二进制格式
  • 第1章 二进制简介
  • 1.1 C编译过程
  • 1.2 符号和剥离的二进制文件
  • 1.3 反汇编二进制文件
  • 1.4 加载并执行二进制文件
  • 1.5 总结
  • 1.6 练习
  • 第2章 ELF格式
  • 2.1 ELF头部
  • 2.2 节头
  • 2.3 节
  • 2.4 程序头
  • 2.5 总结
  • 2.6 练习
  • 第3章 PE格式简介
  • 3.1 MS-DOS头和MS-DOS存根
  • 3.2 PE签名、PF文件头及PE可选头
  • 3.3 节表
  • 3.4 节
  • 3.5 总结
  • 3.6 练习
  • 第4章 使用libbfd创建二进制加载器
  • 4.1 什么是libbfd
  • 4.2 一个简单的二进制加载接口
  • 4.3 实现二进制加载器
  • 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.11 练习
  • 第6章 反汇编与二进制分析基础
  • 6.1 静态反汇编
  • 6.2 动态反汇编
  • 6.3 构建反汇编代码和数据
  • 6.4 基本分析方法
  • 6.5 编译器设置对反汇编的影响
  • 6.6 总结
  • 6.7 练习
  • 第7章 简单的ELF代码注入技术
  • 7.1 使用十六进制编辑器修改裸机二进制文件
  • 7.2 使用LD_PRELOAD修改共享库行为
  • 7.3 注入代码节
  • 7.4 调用注入的代码
  • 7.5 总结
  • 7.6 练习
  • 第三部分 高级二进制分析
  • 第8章 自定义反汇编
  • 8.1 为什么要自定义反汇编过程
  • 8.2 Capstone介绍
  • 8.3 实现一个ROP小工具扫描器
  • 8.4 总结
  • 8.5 练习
  • 第9章 二进制插桩
  • 9.1 什么是二进制插桩
  • 9.2 静态二进制插桩
  • 9.3 动态二进制插桩
  • 9.4 使用Pin进行分析
  • 9.5 用Pin自动对二进制文件脱壳
  • 9.6 总结
  • 9.7 练习
  • 第10章 动态污点分析的原理
  • 10.1 什么是DTA
  • 10.2 DTA三步:污点源、污点槽及污点传播
  • 10.3 使用DTA检测心脏滴血漏洞
  • 10.4 DTA设计因素:污点粒度、污点颜色及污点传播策略
  • 10.5 总结
  • 10.6 练习
  • 第11章 基于libdft的动态污点分析
  • 11.1 libdft简介
  • 11.2 使用DTA检测远程控制流劫持攻击
  • 11.3 用隐式流绕过DTA
  • 11.4 基于DTA的数据泄露检测器
  • 11.5 总结
  • 11.6 练习
  • 第12章 符号执行原理
  • 12.1 符号执行概述
  • 12.2 使用Z3进行约束求解
  • 12.3 总结
  • 12.4 练习
  • 第13章 使用Triton实现符号执行
  • 13.1 Triton的介绍
  • 13.2 使用抽象语法树维护符号状态
  • 13.3 使用Triton进行后向切片
  • 13.4 使用Triton提升代码覆盖率
  • 13.5 漏洞利用自动化
  • 13.6 总结
  • 13.7 练习
  • 第四部分 附录
  • 附录A x86汇编快速入门
  • A.1 汇编程序的布局
  • A.2 x86指令结构
  • A.3 常见的x86指令
  • A.4 汇编的通用代码构造
  • 附录B 使用libelf实现PT_NOTE覆盖
  • B.1 请求头
  • B.2 elfinject使用的数据结构
  • B.3 初始化libelf
  • B.4 获取可执行头
  • B.5 查找PT_NOTE段
  • B.6 注入代码
  • B.7 为注入的节对齐加载地址
  • B.8 覆盖.note.ABI-tag节头
  • B.9 设置注入节的名称
  • B.10 覆盖PT_NOTE程序头
  • B.11 修改入口点
  • 附录C 二进制分析工具清单
  • C.1 反汇编工具
  • C.2 调试器
  • C.3 反汇编框架
  • C.4 二进制分析框架
展开全部

评分及书评

5.0
3个评分
  • 用户头像
    给这本书评了
    5.0

    本书是为安全工程师编写的,涉及二进制分析和检测的相关内容。本书首先介绍了二进制分析的基本概念和二进制格式,然后讲解了如何使用 GNU/Linux 二进制分析工具链、反汇编和代码注入这样的技术来分析二进制文件,最后介绍了使用 Pin 构建二进制插桩的方法以及使用 libdft 构建动态污点分析工具的方法等。

      转发
      评论
      用户头像
      给这本书评了
      5.0

      二进制世界的全部武器装备

        转发
        评论

      出版方

      人民邮电出版社

      人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。