第1部分 逆向
第1章 基础
1.1 什么是逆向工程
1.2 软件逆向工程:逆向
1.3 逆向应用
1.3.1 与安全相关的逆向
1.3.2 软件开发中的逆向
1.4 底层软件
1.4.1 汇编语言
1.4.2 编译器
1.4.3 虚拟机和字节码
1.4.4 操作系统
1.5 逆向过程
1.5.1 系统级逆向
1.5.2 代码级逆向
1.6 工具
1.6.1 系统监控工具
1.6.2 反汇编器
1.6.3 调试器
1.6.4 反编译器
1.7 逆向合法吗?
1.7.1 互操作性
1.7.2 竞争
1.7.3 版权法
1.7.4 商业机密和专利权
1.7.5 美国数字千禧版权法
1.7.6 DMCA案例
1.7.7 许可证协议
1.8 代码范例与工具
1.9 结论
第2章 底层软件
2.1 高阶视角
2.1.1 程序结构
2.1.2 数据管理
2.1.3 控制流
2.1.4 高级语言
2.2 低阶视角
2.2.1 底层数据管理
2.2.2 控制流
2.3 汇编语言
2.3.1 寄存器
2.3.2 标志位
2.3.3 指令格式
2.3.4 基本指令
2.3.5 范例
2.4 编译器和编译入门
2.4.1 定义编译器
2.4.2 编译器架构
2.4.3 列表文件
2.4.4 专用编译器
2.5 执行环境
2.5.1 软件执行环境(虚拟机)
2.5.2 现代处理器的硬件执行环境
2.6 结论
第3章 Windows基础知识
第4章 逆向工具
第2部分 应用逆向
第5章 未公开的技术
第6章 破译文件格式
第7章 审查程序的二进制码
第8章 逆向恶意软件
第3部分 破解
第9章 盗版与拷贝保护
第10章 反逆向技术
第11章 突破保护
第4部分 反汇编之外
第12章 逆向.NET
第13章 反编译
附录A 揭密代码结构
附录B 理解编译后的算术运算
附录C 破译程序数据
索引