返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 二进制分析实战 [荷]丹尼斯·安德里斯(Dennis Andriesse) 著 刘杰宏 马金鑫 崔宝江 译 专业科技
  • 新华书店正版
    • 作者: [荷]丹尼斯·安德里斯(Dennis Andriesse)著 | | 刘杰宏 马金鑫 崔宝江译
    • 出版社: 人民邮电出版社
    • 出版时间:2021-10-01 00:00:00
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    文轩网图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

         https://product.suning.com/0070067633/11555288247.html

     

    商品参数
    • 作者: [荷]丹尼斯·安德里斯(Dennis Andriesse)著| 刘杰宏 马金鑫 崔宝江译
    • 出版社:人民邮电出版社
    • 出版时间:2021-10-01 00:00:00
    • 版次:1
    • 印次:1
    • 印刷时间:2021-10-01
    • 页数:376
    • 开本:16开
    • 装帧:平装
    • ISBN:9787115556936
    • 国别/地区:中国
    • 版权提供:人民邮电出版社

    二进制分析实战

    作  者:[荷]丹尼斯·安德里斯(Dennis Andriesse) 著 刘杰宏 马金鑫 崔宝江 译
    定  价:129.8
    出 版 社:人民邮电出版社
    出版日期:2021年10月01日
    页  数:376
    装  帧:平装
    ISBN:9787115556936
    主编推荐

    1.本书面向安全工程师,对二进制分析和插桩等方向的一些有趣问题进行了介绍,帮助读者提升二进制分析技术。 2.本书各章后面的练习有助于读者深入掌握相关知识,无论是基本的汇编知识,还是复杂的二进制插桩及分析实践。 3.本书内容详细,从二进制分析的基本概念和二进制格式开始介绍,主要包括以下内容: 解析ELF和PE二进制,并基于libbfd构建二进制加载器; 通过代码注入和二进制编辑来修改ELF文件; 基于Capstone构建自定义反汇编工具; 使用二进制插桩来绕过常用的反分析技术; 应用污点分析来检测控制流劫持和数据泄露; 使用符号执行来构建自动化利用工具。

    内容简介

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

    作者简介

    丹尼斯·安德里斯,系统与网络安全专业的博士,主要研究二进制分析领域。丹尼斯·安德里斯是PathArmor(一个控制流完整性分析系统,可抵抗诸如ROP这样的控制流劫持攻击)的主要开发人员,还是参与攻破“GameOver Zeus”僵尸网络的主要攻手之一。

    精彩内容

    目录
    目    录 第  一部分 二进制格式 第  1章 二进制简介  2 1.1  C编译过程  3 1.1.1  预处理阶段  3 1.1.2  编译阶段  5 1.1.3  汇编阶段  6 1.1.4  链接阶段  7 1.2  符号和剥离的二进制文件  9 1.2.1  查看符号信息  9 1.2.2  剥离二进制文件  10 1.3  反汇编二进制文件  11 1.3.1  查看对象文件  11 1.3.2  检查完整的二进制执行体  13 1.4  加载并执行二进制文件  17 1.5  总结  19 1.6  练习  19 第  2章 ELF格式  20 2.1  ELF头部  22 2.1.1  e_ident数组  22 2.1.2  e_type、e_machine及e_version字段  24 2.1.3  e_entry字段  24 2.1.4  e_phoff和e_shoff字段  25 2.1.5  e_flags字段  25 2.1.6  e_ehsize字段  25 2.1.7  e_*entsize和e_*num字段  25 2.1.8  e_shstrndx字段  26 2.2  节头  26 2.2.1  sh_name字段  27 2.2.2  sh_type字段  28 2.2.3  sh_flags字段  28 2.2.4  sh_addr、sh_offset及sh_size字段  29 2.2.5  sh_link字段  29 2.2.6  sh_info字段  29 2.2.7  sh_addralign字段  29 2.2.8  sh_entsize字段  29 2.3  节  30 2.3.1  .init和.fini节  31 2.3.2  .text节  31 2.3.3  .bss、.data及.rodata节  33 2.3.4  延迟绑定和.plt、.got及.got.plt节  33 2.3.5  .rel.*和.rela.*节  36 2.3.6  .dynamic节  37 2.3.7  .init_array和.fini_array节  38 2.3.8  .shstrtab、.symtab、.strtab、.dynsym及.dynstr节  39 2.4  程序头  40 2.4.1  p_type字段  41 2.4.2  p_flags字段  42 2.4.3  p_offset、p_vaddr、p_paddr、p_filesz及p_memsz字段  42 2.4.4  p_align字段  42 2.5  总结  42 2.6  练习  43 第3章  PE格式简介  44 3.1  MS-DOS头和MS-DOS存根  45 3.2  PE签名、PF文件头及PE可选头  46 3.2.1  PE签名  48 3.2.2  PE文件头  48 3.2.3  PE可选头  48 3.3  节表  49 3.4  节  49 3.4.1  .edata和.idata节  50 3.4.2  PE代码节的填充  51 3.5  总结  51 3.6  练习  51 第4章  使用libbfd创建二进制加载器  53 4.1  什么是libbfd  53 4.2  一个简单的二进制加载接口  54 4.2.1  Binary类  56 4.2.2  Section类  57 4.2.3  Symbol类  57 4.3  实现二进制加载器  57 4.3.1  初始化libbfd并打开二进制文件  58 4.3.2  解析基础二进制属性  60 4.3.3  加载符号  63 4.3.4  加载节信息  66 4.4  测试二进制加载器  68 4.5  总结  71 4.6  练习  71 第二部分  二进制分析基础 第5章  Linux二进制分析  74 5.1  使用file解决类型问题  75 5.2  使用ldd探索依赖性  77 5.3  使用xxd查看文件内容  79 5.4  使用readelf解析并提取ELF库文件  81 5.5  使用nm解析符号  83 5.6  使用strings查看Hints  86 5.7  使用strace和ltrace跟踪系统调用和库文件调用  88 5.8  使用objdump检查指令集行为  93 5.9  使用GDB转储动态字符串缓冲区  95 5.10  总结  97 5.11  练习  97 第6章  反汇编与二进制分析基础  98 6.1  静态反汇编  98 6.1.1  线性反汇编  99 6.1.2  递归反汇编  101 6.2  动态反汇编  104 6.2.1  示例:使用GDB跟踪二进 制执行  105 6.2.2  代码覆盖策略  108 6.3  构建反汇编代码和数据  111 6.3.1  构建代码  112 6.3.2  构建数据  118 6.3.3  反编译  119 6.3.4  中间语言  121 6.4  基本分析方法  123 6.4.1  二进制分析的特性  123 6.4.2  控制流分析  127 6.4.3  数据流分析  129 6.5  编译器设置对反汇编的影响  132 6.6  总结  133 6.7  练习  134 第7章  简单的ELF代码注入技术  135 7.1  使用十六进制编辑器修改裸机二进制文件  135 7.1.1  在操作中观察off-by-one漏洞  136 7.1.2  修复off-by-one漏洞  139 7.2  使用LD_PRELOAD修改共享库行为  142 7.2.1  堆溢出漏洞  143 7.2.2  检测堆溢出  145 7.3  注入代码节  148 7.3.1  注入ELF节:不错概述  149 7.3.2  使用elfinject注入ELF节  151 7.4  调用注入的代码  155 7.4.1  入口点修改  155 7.4.2  劫持构造函数和析构函数  158 7.4.3  劫持GOT条目  161 7.4.4  劫持PLT条目  164 7.4.5  重定向直接调用和间接调用  165 7.5  总结  166 7.6  练习  166 第三部分  不错二进制分析 第8章  自定义反汇编  168 8.1  为什么要自定义反汇编过程  168 8.1.1  一个自定义反汇编实例:代码混淆  169 8.1.2  编写自定义反汇编器的其他原因  171 8.2  Capstone介绍  172 8.2.1  Capstone安装  173 8.2.2  Capstone线性反汇编  174 8.2.3  研究Capstone C的API  179 8.2.4  使用Capstone编写递归反汇编器  180 8.3  实现一个ROP小工具扫描器  188 8.3.1  返回导向式编程简介  189 8.3.2  寻找ROP的“gadget”  190 8.4  总结  196 8.5  练习  197 第9章  二进制插桩  198 9.1  什么是二进制插桩  198 9.1.1  二进制插桩的相关API  199 9.1.2  静态二进制插桩和动态二进制插桩的对比  199 9.2  静态二进制插桩  201 9.2.1  int 3方法  201 9.2.2  跳板方法  203 9.3  动态二进制插桩  207 9.3.1  DBI系统的体系结构  207 9.3.2  Pin介绍  209 9.4  使用Pin进行分析  210 9.4.1  Profiler的数据结构和创建代码  210 9.4.2  解析函数符号  213 9.4.3  插桩基本块  214 9.4.4  检测控制流指令  216 9.4.5  指令、控制转移及系统调用计数  219 9.4.6  测试Profiler  220 9.5  用Pin自动对二进制文件脱壳  224 9.5.1  可执行文件加壳器简介  224 9.5.2  脱壳器的配置代码及其使用的数据结构  225 9.5.3  对内存写入插桩  228 9.5.4  插桩控制流指令  229 9.5.5  跟踪内存写入  229 9.5.6  检测原始入口点并转储脱壳二进制文件  230 9.5.7  测试脱壳器  231 9.6  总结  236 9.7  练习  236 第  10章 动态污点分析的原理  237 10.1  什么是DTA  237 10.2  DTA三步:污点源、污点槽及污点传播  238 10.2.1  定义污点源  238 10.2.2  定义污点槽  239 10.2.3  追踪污点传播  239 10.3  使用DTA检测心脏滴血漏洞  239 10.3.1  心脏滴血漏洞概述  239 10.3.2  通过污点分析检测心脏滴血漏洞  241 10.4  DTA设计因素:污点粒度、污点颜色及污点传播策略  242 10.4.1  污点粒度  243 10.4.2  污点颜色  244 10.4.3  污点传播策略  244 10.4.4  过污染和欠污染  246 10.4.5  控制依赖  246 10.4.6  影子内存  247 10.5  总结  249 10.6  练习  249 第  11章 基于libdft的动态污点分析  250 11.1  libdft简介  250 11.1.1  libdft的内部结构  251 11.1.2  污点传播策略指令  253 11.2  使用DTA检测远程控制流劫持攻击  254 11.2.1  检查污点信息  257 11.2.2  污点源:将收到的字节标记为污点  258 11.2.3  检查点:检查execve参数  260 11.2.4  检测控制流劫持攻击  261 11.3  用隐式流绕过DTA  266 11.4  基于DTA的数据泄露检测器  268 11.4.1  污点源:追踪打开文件的污点  270 11.4.2  检查点:监控泄露数据的网络发送  273 11.4.3  检测数据泄露  275 11.5  总结  277 11.6  练习  277 第  12章 符号执行原理  278 12.1  符号执行概述  278 12.1.1  符号执行与正常执行的对比  279 12.1.2  符号执行的变体和局限  282 12.1.3  提高符号执行的可扩展性  286 12.2  使用Z3进行约束求解  288 12.2.1  证明指令的可达性  288 12.2.2  证明指令的不可达性  291 12.2.3  证明公式的永真性  292 12.2.4  简化表达式  293 12.2.5  使用位向量对机器码建立约束模型  294 12.2.6  用位向量求解不透明谓词  296 12.3  总结  296 12.4  练习  297 第  13章 使用Triton实现符号执行  298 13.1  Triton的介绍  298 13.2  使用抽象语法树维护符号状态  299 13.2.1  完整的抽象语法树  301 13.2.2  使用引用的抽象语法树  301 13.3  使用Triton进行后向切片  302 13.3.1  Triton的头文件以及相关配置  304 13.3.2  符号化配置文件  305 13.3.3  模拟指令  306 13.3.4  设置Triton的体系结构  307 13.3.5  计算后向切片  308 13.4  使用Triton提升代码覆盖率  310 13.4.1  创建符号变量  312 13.4.2  寻找新路径的解  313 13.4.3  测试代码覆盖工具  316 13.5  漏洞利用自动化  319 13.5.1  包含脆弱调用点的程序  320 13.5.2  查找脆弱调用点的地址  323 13.5.3  构建漏洞利用生成器  325 13.5.4  获取root权限的Shell  331 13.6  总结  334 13.7  练习  334 第四部分  附录 附录A  x86汇编快速入门  336 A.1  汇编程序的布局  336 A.1.1  汇编指令、伪指令、标号及注释  337 A.1.2  代码与数据分离  338 A.1.3  AT&T和Intel语法  339 A.2  x86指令结构  339 A.2.1  x86指令的汇编层表示  339 A.2.2  x86指令的机器级结构  339 A.2.3  寄存器操作数  340 A.2.4  内存操作数  342 A.2.5  立即数  343 A.3  常见的x86指令  343 A.3.1  比较操作数和设置状态标志位  344 A.3.2  实现系统调用  345 A.3.3  实现条件跳转  345 A.3.4  加载内存地址  345 A.4  汇编的通用代码构造  345 A.4.1  栈  346 A.4.2  函数调用与函数栈帧  347 A.4.3  条件分支  351 A.4.4  循环  352 附录B  使用libelf实现PT_NOTE覆盖  354 B.1  请求头  354 B.2  elfinject使用的数据结构  355 B.3  初始化libelf  356 B.4  获取可执行头  360 B.5  查找PT_NOTE段  360 B.6  注入代码  362 B.7  为注入的节对齐加载地址  362 B.8  覆盖.note.ABI-tag节头  363 B.9  设置注入节的名称  367 B.10  覆盖PT_NOTE程序头  369 B.11  修改入口点  372 附录C  二进制分析工具清单  373 C.1  反汇编工具  373 C.1.1  IDA Pro(Windows、Linux、macOS)  373 C.1.2  Hopper(Linux、macOS)  373 C.1.3  ODA(所有操作系统)  374 C.1.4  Binary Ninja(Windows、Linux、macOS)  374 C.1.5  Relyze(Windows)  374 C.1.6  Medusa(Windows、Linux)  374 C.1.7  radare(Windows、Linux、macOS)  374 C.1.8  objdump(Linux、macOS)  374 C.2  调试器  374 C.2.1  GDB(Linux)  374 C.2.2  OllyDbg(Windows)  375 C.2.3  Windbg(Windows)  375 C.2.4  Bochs(Windows、Linux、macOS)  375 C.3  反汇编框架  375 C.3.1  Capstone(Windows、Linux、macOS )  375 C.3.2  distorm3(Windows、Linux、macOS)  375 C.3.3  udis86(Linux、macOS)  375 C.4  二进制分析框架  376 C.4.1  angr(Windows、Linux、macOS)  376 C.4.2  Pin(Windows、Linux、macOS)  376 C.4.3  Dyninst(Windows、Linux)  376 C.4.4  Unicorn(Windows、Linux、macOS)  376 C.4.5  libdft(Linux)  376 C.4.6  Triton(Windows、Linux、macOS)  376

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购