逆向工程实战是一本涵盖x86、x64 和ARM 操作系统的逆向工程类图书,由浅入深地讲解了包括Windows内核模式代码的恶意软件和驱动程序、虚拟机保护技术等内容。作者通过大量真实案例和示例,提供了系统化的解决方案。
本书适合所有程序员和想要开始学习逆向工程的读者阅读。
特点
-探索独特的逆向工程系统化方法,包含对真实恶意软件的分析
-覆盖三个流行的处理器架构(x86、x64和ARM)
-提供针对真实后门程序的综合练习
-讲解复杂的代码混淆技术
-探索高级调试技术,实现逆向工程过程的自动化和高效化
内容简介
目录
- 第1 章 x86 与x64...........................................1
- 1.1 寄存器组与数据类型.................................1
- 1.2 指令集........................................................3
- 1.2.1 语法................................................3
- 1.2.2 数据移动........................................4
- 1.3 练习...........................................................9
- 1.3.1 算术运算........................................9
- 1.3.2 栈操作与函数调用.......................11
- 1.4 练习.........................................................14
- 1.5 系统机制..................................................21
- 1.5.1 地址转换......................................21
- 1.5.2 中断与异常..................................23
- 1.6 综合练习..................................................23
- 1.7 练习.........................................................29
- 1.8 x64 ...........................................................30
- 1.8.1 寄存器组与数据类型...................30
- 1.8.2 数据移动......................................31
- 1.8.3 规范地址......................................31
- 1.8.4 函数调用......................................31
- 1.9 练习.........................................................32
- 第2 章 ARM ...................................................33
- 2.1 基本特性..................................................34
- 2.2 数据类型与寄存器..................................35
- 2.3 系统级控制与设置..................................37
- 2.4 指令集介绍..............................................38
- 2.5 数据加载与存储......................................39
- 2.5.1 LDR 与STR...................................39
- 2.5.2 LDR 的其他用途...........................42
- 2.5.3 LDM 与STM...................................43
- 2.5.4 PUSH 与POP.................................46
- 2.6 函数与函数调用......................................48
- 2.7 算术运算..................................................50
- 2.8 分支跳转与条件执行..............................51
- 2.8.1 Thumb 状态..................................54
- 2.8.2 switch-case..............................55
- 2.9 杂项.........................................................56
- 2.9.1 JIT 与SMC ..................................56
- 2.9.2 同步原语......................................57
- 2.9.3 系统服务与机制...........................57
- 2.9.4 指令..............................................59
- 2.10 综合练习................................................59
- 2.11 下一步...................................................65
- 2.12 练习.......................................................65
- 第3 章 Windows 内核..................................73
- 3.1 Windows 基础..........................................73
- 3.1.1 内存布局......................................73
- 3.1.2 处理器初始化..............................74
- 3.1.3 系统调用......................................77
- 3.1.4 中断请求级..................................88
- 3.1.5 内存池..........................................89
- 3.1.6 MDL.............................................90
- 3.1.7 进程与线程..................................90
- 3.1.8 执行上下文..................................92
- 3.1.9 内核同步原语..............................93
- 3.2 列表.........................................................94
- 3.2.1 实现细节......................................94
- 3.2.2 综合练习....................................100
- 3.2.3 练习............................................104
- 3.3 异步与乱序执行....................................108
- 3.3.1 系统线程....................................108
- 3.3.2 work item ...................................109
- 3.3.3 APC............................................111
- 3.3.4 DPC............................................114
- 3.3.5 定时器........................................118
- 3.3.6 进程与线程回调........................120
- 3.3.7 完成例程....................................120
- 3.4 I/O 请求包.............................................122
- 3.5 驱动程序结构........................................123
- 3.5.1 入口点........................................124
- 3.5.2 驱动程序与设备对象.................125
- 3.5.3 IRP 处理.....................................126
- 3.5.4 用户?内核通信常用机制...........127
- 3.5.5 系统机制杂项............................128
- 3.6 综合练习.........................