第一部分 基础篇
第1章 微软.NET框架基本原理
1.1 什么是.NET
1.2 编写第一个.NET程序
1.2.1 .NET开发环境
1.2.2 程序的编译
1.3 逆向第一个.NET程序
1.3.1 用ildasm反编译.NET程序
1.3.2 反编译的结果:MSIL与元数据
1.3.3 用ilasm进行再编译
1.4 程序的运行:CLR与JIT
1.5 小结
第2章 MSIL中间语言
2.1 MSIL语言基础
2.1.1 IL程序基本结构
2.1.2 2.0版IL支持的新特性
2.1.3 一个完整的代码示例
2.2 MSIL的运行机制:堆栈机
2.3 MSIL指令
2.3.1 流程控制指令
2.3.2 算术指令
2.3.3 参数、局部变量与字段寻址指令
2.3.4 方法调用
2.3.5 类与值类型操作指令
2.3.6 向量操作指令
2.4 小结
第3章 PE结构扩展与元数据
3.1 .NET对PE结构的扩展
3.2 元数据及其结构
3.2.1 什么是元数据
3.2.2 元数据的存储形式(1):堆
3.2.3 元数据的存储形式(2):表
3.2.4 元数据的Signature
3.3 元数据的标识及其解码
3.4 元数据的验证
3.5 小结
第二部分 分析篇
第4章 静态分析技术
4.1 静态反编译软件
4.1.1 Reflector的使用
4.1.2 Dis#的使用
4.1.3 其他反编译软件
4.2 代码修改技术
4.3 代码复用技术
4.4 混合编译程序的静态分析
4.5 .NET程序本地化技术
4.5.1 基础知识
4.5.2 利用可视化工具的本地化
4.5.3 利用MSIL的本地化
4.6 小结
第5章 动态调试技术
5.1 .NET动态调试的分类
5.2 混合模式调试
5.2.1 GuiDbg的应用
5.2.2 PeBrowseDbg的应用
5.3 本地调试
5.3.1 OllyDbg的应用
5.3.2 WinDbg的应用
5.4 小结
第三部分 保护篇
第6章 强名称保护
第7章 名称混淆
第8章 流程混淆
第9章 辅助保护手段
第10章 壳保护
第11章 其他保护方式
第四部分 扩展篇
第12章 非托管API
第13章 MONO、SSCLI与.NET内核调试
第14章 Win64平台上的.NET
附录A 元数据表
参考文献