搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
ARM汇编与逆向工程(蓝狐卷基础知识)/网络空间安全技术丛书
0.00     定价 ¥ 129.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购25本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787111744467
  • 作      者:
    作者:(美)玛丽亚·马克斯特德|责编:刘锋//张秀华|译者:ChaMd5安全团队
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2024-02-01
收藏
畅销推荐
内容介绍
本书由两部分组成。第一部分首先概述ELF文件格式和操作系统的内部结构,然后介绍Arm架构基础知识,并深入探讨A32和A64指令集;第二部分深入探讨逆向工程,包括Arm环境、静态分析和动态分析,以及固件提取和模拟分析等关键主题。本书末尾讲解在macOS中基于Arm的M1 SoC编译的二进制文件的恶意软件分析。 通过阅读本书,读者可以深入理解Arm的指令和控制流模式,这对于针对Arm架构编译的软件的逆向工程至关重要。为帮助逆向工程师和安全研究人员更好地理解逆向工程,本书深入介绍了逆向工程的各个方面,具体包括: Arm架构的AArch32和AArch64指令集状态,以及ELF文件格式内部结构; Arm汇编内部机制的详细信息,可供逆向工程师分析恶意软件和审计软件安全漏洞使用,以及寻求Arm汇编语言详细知识的开发人员使用; Armv8-A架构支持的A32/T32和A64指令集,以及常见的指令和控制流模式; 用于静态和动态二进制分析的已知逆向工程工具; 在Linux上对Arm二进制文件进行反汇编和调试的过程,以及常用的反汇编和调试工具。
展开
目录
译者序
前言
致谢
作者简介
第一部分 Arm汇编内部机制
第1章 逆向工程简介
1.1 汇编简介
1.1.1 位和字节
1.1.2 字符编码
1.1.3 机器码和汇编
1.1.4 汇编
1.2 高级语言
1.3 反汇编
1.4 反编译
第2章 ELF文件格式的内部结构
2.1 程序结构
2.2 高级语言与低级语言
2.3 编译过程
2.3.1 不同架构的交叉编译
2.3.2 汇编和链接
2.4 ELF文件概述
2.5 ELF文件头
2.5.1 ELF文件头信息字段
2.5.2 目标平台字段
2.5.3 程序入口点字段
2.5.4 表位置字段
2.6 ELF程序头
2.6.1 PHDR程序头
2.6.2 INTERP程序头
2.6.3 LOAD程序头
2.6.4 DYNAMIC程序头
2.6.5 NOTE程序头
2.6.6 TLS程序头
2.6.7 GNU_EH_FRAME程序头
2.6.8 GNU_STACK程序头
2.6.9 GNU_RELRO程序头
2.7 ELF节头
2.7.1 ELFmeta节
2.7.2 主要的ELF节
2.7.3 ELF符号
2.8 .dynamic节和动态加载
2.8.1 依赖项加载
2.8.2 程序重定位
2.8.3 ELF程序的初始化和终止节
2.9 线程本地存储
2.9.1 local-execTLS访问模型
2.9.2 initial-execTLS访问模型
2.9.3 general-dynamicTLS访问模型
2.9.4 local-dynamicTLS访问模型
第3章 操作系统基本原理
3.1 操作系统架构概述
3.1.1 用户模式与内核模式
3.1.2 进程
3.1.3 系统调用
3.1.4 线程
3.2 进程内存管理
3.2.1 内存页
3.2.2 内存保护
3.2.3 匿名内存和内存映射
3.2.4 地址空间布局随机化
3.2.5 栈的实现
3.2.6 共享内存
第4章 Arm架构
4.1 架构和配置文件
4.2 Armv8-A架构
4.2.1 异常级别
4.2.2 Armv8-A执行状态
4.3 AArch64执行状态
4.3.1 A64指令集
4.3.2 AArch64寄存器
4.3.3 PSTATE
4.4 AArch32执行状态
4.4.1 A32和T32指令集
4.4.2 AArch32寄存器
4.4.3 当前程序状态寄存器
4.4.4 执行状态寄存器
第5章 数据处理指令
5.1 移位和循环移位
5.1.1 逻辑左移
5.1.2 逻辑右移
5.1.3 算术右移
5.1.4 循环右移
5.1.5 带扩展的循环右移
5.1.6 指令形式
5.1.7 位域操作
5.2 逻辑运算
5.2.1 位与
5.2.2 位或
5.2.3 位异或
5.3 算术运算
5.3.1 加法和减法
5.3.2 比较
5.4 乘法运算
5.4.1 A64中的乘法运算
5.4.2 A32/T32中的乘法运算
5.5 除法运算
5.6 移动操作
5.6.1 移动常量立即数
5.6.2 移动寄存器
5.6.3 移动取反
第6章 内存访问指令
6.1 指令概述
6.2 寻址模式和偏移形式
6.2.1 偏移寻址
6.2.2 前索引寻址
6.2.3 后索引寻址
6.2.4 字面值寻址
6.3 加载和存储指令
6.3.1 加载和存储字或双字
6.3.2 加载和存储半字或字节
6.3.3 A32多重加载和存储
6.3.4 A64加载和存储对
第7章 条件执行
7.1 条件执行概述
7.2 条件码
7.2.1 NZCV条件标志
7.2.2 条件码
7.3 条件指令
7.4 标志设置指令
7.4.1 指令的S后缀
7.4.2 测试和比较指令
7.5 条件选择指令
7.6 条件比较指令
7.6.1 使用CCMP的布尔与条件
7.6.2 使用CCMP的布尔或条件
第8章 控制流
8.1 分支指令
8.1.1 条件分支和循环
8.1.2 测试和比较分支
8.1.3 表分支
8.1.4 分支和切换
8.1.5 子程序分支
8.2 函数和子程序
8.2.1 程序调用标准
8.2.2 易失性和非易失性寄存器
8.2.3 参数和返回值
8.2.4 传递较大值
8.2.5 叶子函数和非叶子函数
第二部分 逆向工程
第9章 Arm环境
9.1 Arm板
9.2 使用QEMU模拟虚拟环境
9.2.1 QEMU用户模式模拟
9.2.2 QEMU系统模式模拟
第10章 静态分析
10.1 静态分析工具
10.1.1 命令行工具
10.1.2 反汇编器和反编译器
10.1.3 BinaryNinjaCloud
10.2 引用调用示例
10.3 控制流分析
10.3.1 main函数
10.3.2 子程序
10.3.3 转换为字符
10.3.4 if语句
10.3.5 商除法
10.3.6 for循环
10.4 算法分析
第11章 动态分析
11.1 命令行调试
11.1.1 GDB命令
11.
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

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

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