×
暂无评论
图文详情
  • ISBN:9787111744467
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:74683
  • 出版时间:2024-02-01
  • 条形码:9787111744467 ; 978-7-111-74446-7

本书特色

本书为读者提供了有关Arm汇编内部机制和逆向工程方面的基础知识,这是分析和保护数十亿Arm设备的重要基础。 在当前的互联网安全领域,找到并修复Arm设备的安全漏洞是一项关键任务。由于超过90%的移动设备和数十亿的物联网设备,以及包括微软、联想和苹果在内的越来越多的笔记本计算机都在使用Arm处理器,因此这本书介绍的知识也变得越发重要。本书对于那些需要在汇编级别分析基于Arm架构的设备上的软件应用程序的安全研究人员和逆向工程师来说是非常重要的参考资料。其内容既适用于初学者,又适用于经验丰富的专业人士,是一本很好的综合指南。

内容简介

本书由两部分组成。第I部分首先概述ELF文件格式和操作系统的内部结构,然后介绍Arm架构基础知识,并深入探讨A32和A64指令集;第II部分深入探讨逆向工程,包括Arm环境、静态分析和动态分析,以及固件提取和模拟分析等关键主题。本书末尾讲解在macOS中基于Arm的M1 SoC编译的二进制文件的恶意软件分析。 通过阅读本书,读者可以深入理解Arm的指令和控制流模式,这对于针对Arm架构编译的软件的逆向工程至关重要。为帮助逆向工程师和安全研究人员更好地理解逆向工程,本书深入介绍了逆向工程的各个方面,具体包括: ?? Arm架构的AArch32和AArch64指令集状态,以及ELF文件格式内部结构; ?? Arm汇编内部机制的详细信息,可供逆向工程师分析恶意软件和审计软件安全漏洞使用,以及寻求Arm汇编语言详细知识的开发人员使用; ?? Armv8-A架构支持的A32/T32和A64指令集,以及常见的指令和控制流模式; ?? 用于静态和动态二进制分析的已知逆向工程工具; ?? 在Linux上对Arm二进制文件进行反汇编和调试的过程,以及常用的反汇编和调试工具。

目录

译者序前言致谢作者简介**部分 Arm汇编内部机制第1章 逆向工程简介  21.1 汇编简介  21.1.1 位和字节  21.1.2 字符编码  31.1.3 机器码和汇编  41.1.4 汇编  61.2 高级语言  111.3 反汇编  121.4 反编译  13第2章 ELF文件格式的内部结构  152.1 程序结构  152.2 高级语言与低级语言  162.3 编译过程  172.3.1 不同架构的交叉编译  182.3.2 汇编和链接   202.4 ELF文件概述  222.5 ELF文件头  232.5.1 ELF文件头信息字段  242.5.2 目标平台字段  242.5.3 程序入口点字段  252.5.4 表位置字段  252.6 ELF程序头   262.6.1 PHDR 程序头  272.6.2 INTERP程序头  272.6.3 LOAD程序头  272.6.4 DYNAMIC程序头  282.6.5 NOTE程序头  282.6.6 TLS程序头  292.6.7 GNU_EH_FRAME程序头  292.6.8 GNU_STACK程序头  292.6.9 GNU_RELRO程序头  312.7 ELF节头  332.7.1 ELF meta节  352.7.2 主要的ELF节  362.7.3 ELF符号  372.8 .dynamic节和动态加载  402.8.1 依赖项加载  412.8.2 程序重定位  412.8.3 ELF程序的初始化和终止节  442.9 线程本地存储  472.9.1 local-exec TLS访问模型  502.9.2 initial-exec TLS访问模型  502.9.3 general-dynamic TLS访问模型  512.9.4 local-dynamic TLS访问模型  52第3章 操作系统基本原理  543.1 操作系统架构概述  543.1.1 用户模式与内核模式  543.1.2 进程  553.1.3 系统调用  563.1.4 线程  623.2 进程内存管理  633.2.1 内存页  643.2.2 内存保护  653.2.3 匿名内存和内存映射  653.2.4 地址空间布局随机化  693.2.5 栈的实现  713.2.6 共享内存  72第4章 Arm架构  744.1 架构和配置文件  744.2 Armv8-A架构  754.2.1 异常级别  764.2.2 Armv8-A执行状态  814.3 AArch64执行状态  824.3.1 A64指令集  824.3.2 AArch64寄存器  834.3.3 PSTATE  894.4 AArch32执行状态  904.4.1 A32和T32指令集  914.4.2 AArch32寄存器  944.4.3 当前程序状态寄存器  964.4.4 执行状态寄存器  99第5章 数据处理指令  1035.1 移位和循环移位  1055.1.1 逻辑左移  1055.1.2 逻辑右移  1065.1.3 算术右移  1065.1.4 循环右移  1075.1.5 带扩展的循环右移  1075.1.6 指令形式  1075.1.7 位域操作  1125.2 逻辑运算  1205.2.1 位与  1215.2.2 位或  1225.2.3 位异或  1245.3 算术运算  1255.3.1 加法和减法  1255.3.2 比较  1275.4 乘法运算  1305.4.1 A64中的乘法运算  1305.4.2 A32/T32中的乘法运算  1315.5 除法运算  1455.6 移动操作  1465.6.1 移动常量立即数  1465.6.2 移动寄存器  1495.6.3 移动取反  150第6章 内存访问指令  1516.1 指令概述  1516.2 寻址模式和偏移形式  1526.2.1 偏移寻址  1556.2.2 前索引寻址  1626.2.3 后索引寻址  1646.2.4 字面值寻址  1666.3 加载和存储指令  1726.3.1 加载和存储字或双字  1726.3.2 加载和存储半字或字节  1746.3.3 A32多重加载和存储  1776.3.4 A64加载和存储对  186第7章 条件执行  1897.1 条件执行概述  1897.2 条件码  1907.2.1 NZCV条件标志  1907.2.2 条件码  1937.3 条件指令  1947.4 标志设置指令  1977.4.1 指令的S后缀  1977.4.2 测试和比较指令  2017.5 条件选择指令  2077.6 条件比较指令  2097.6.1 使用CCMP的布尔与条件  2107.6.2 使用CCMP的布尔或条件  212第8章 控制流  2158.1 分支指令  2158.1.1 条件分支和循环  2168.1.2 测试和比较分支  2198.1.3 表分支  2208.1.4 分支和切换  2228.1.5 子程序分支  2258.2 函数和子程序  2278.2.1 程序调用标准  2278.2.2 易失性和非易失性寄存器  2288.2.3 参数和返回值  2298.2.4 传递较大值  2308.2.5 叶子函数和非叶子函数  233第二部分 逆向工程第9章 Arm环境  2409.1 Arm板  2419.2 使用QEMU模拟虚拟环境  2429.2.1 QEMU用户模式模拟  2439.2.2 QEMU系统模式模拟  246第10章 静态分析  25210.1 静态分析工具  25210.1.1 命令行工具  25310.1.2 反汇编器和反编译器  25310.1.3 Binary Ninja Cloud  25410.2 引用调用示例  25810.3 控制流分析  26310.3.1 main函数  26410.3.2 子程序  26510.3.3 转换为字符  26910.3.4 if语句  27010.3.5 商除法  27210.3.6 
展开全部

作者简介

玛丽亚·马克斯特德(Maria Markstedter)是 Azeria Labs 的创始人兼首席执行官,该公司提供 Arm 逆向工程和漏洞利用的培训课程。在此之前,她在渗透测试和威胁情报领域工作,并担任虚拟化初创公司 Corellium 的首席产品官。她拥有企业安全学士学位和企业安全硕士学位,并在剑桥依托 ARM 公司从事漏洞利用缓解研究工作。她因在该领域的贡献而受到认可,曾入选《福布斯》2018 年欧洲科技界“30 位 30 岁以下技术精英”名单,并被评为 2020 年《福布斯》网络安全年度人物。自 2017 年以来,她还是欧洲 Black Hat 和美国培训与简报审核委员会(Trainings and Briefi ngs Review Board)的成员。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航