what01 发表于 2014-4-9 16:28

微软.NET程序的加密与解密

    最近看到blue大大的net程序破解教程后,启发很大。顺手网搜了一个关于这方面的电子书。方便大家空余时间学习。


内 容 简 介
本书是软件安全主题网站——看雪学院《加密与解密》软件安全系列丛书的第三本,主要介绍代码保护与加密解密技术在微软.NET框架中的应用。本书的层次循序渐进,难度深入浅出,且注重实例分析,是软件开发人员了解.NET内核及加密解密技术不可多得的参考书,适合.NET开发人员及加密与解密爱好者阅读。

目 录编辑
第一部分 基 础 篇
第1章 微软.NET框架基本原理 2
1.1 什么是.NET 2
1.2 编写第一个.NET程序 3
1.2.1 .NET开发环境 3
1.2.2 程序的编译 5
1.3 逆向第一个.NET程序 8
1.3.1 用ildasm反编译.NET程序 8
1.3.2 反编译的结果:MSIL与元数据 10
1.3.3 用ilasm进行再编译 11
1.4 程序的运行:CLR与JIT 12
1.5 小结 16
第2章 MSIL中间语言 17
2.1 MSIL语言基础 17
2.1.1 IL程序基本结构 17
2.1.2 2.0版IL支持的新特性 19
2.1.3 一个完整的代码示例 21
2.2 MSIL的运行机制:堆栈机 23
2.3 MSIL指令 25
2.3.1 流程控制指令 25
2.3.2 算术指令 27
2.3.3 参数、局部变量与字段寻址指令 32
2.3.4 方法调用 34
2.3.5 类与值类型操作指令 37
2.3.6 向量操作指令 39
2.4 小结 42
第3章 PE结构扩展与元数据 43
3.1 .NET对PE结构的扩展 43
3.2 元数据及其结构 46
3.2.1 什么是元数据 46
3.2.2 元数据的存储形式(1):堆 47
3.2.3 元数据的存储形式(2):表 49
3.2.4 元数据的Signature 58
3.3 元数据的标识及其解码 60
3.4 元数据的验证 63
3.5 小结 65
第二部分 分 析 篇
第4章 静态分析技术 68
4.1 静态反编译软件 68
4.1.1 Reflector的使用 68
4.1.2 Dis#的使用 72
4.1.3 其他反编译软件 75
4.2 代码修改技术 78
4.3 代码复用技术 80
4.4 混合编译程序的静态分析 82
4.5 .NET程序本地化技术 86
4.5.1 基础知识 86
4.5.2 利用可视化工具的本地化 88
4.5.3 利用MSIL的本地化 89
4.6 小结 91
第5章 动态调试技术 92
5.1 .NET动态调试的分类 92
5.2 混合模式调试 93
5.2.1 GuiDbg的应用 94
5.2.2 PeBrowseDbg的应用 99
5.3 本地调试 104
5.3.1 OllyDbg的应用 105
5.3.2 WinDbg的应用 109
5.4 小结 116
第三部分 保 护 篇
第6章 强名称保护 118
6.1 给程序签署强名称 118
6.1.1 什么是强名称 118
6.1.2 单个程序集的签署 119
6.1.3 引用有强名称的程序集 123
6.2 强名称的去除和替换 125
6.2.1 去除和替换强名称的原理 125
6.2.2 利用工具的自动实现 126
6.3 代码与强名称的结合 128
6.4 小结 131
第7章 名称混淆 132
7.1 名称混淆的基本原理 132
7.2 手动实现名称混淆 133
7.3 名称混淆的局限性 139
7.4 常见名称混淆形式 140
7.5 反名称混淆的一般方法 143
7.6 小结 145
第8章 流程混淆 146
8.1 流程混淆的基本原理 146
8.2 常见流程混淆的方式:基于跳转的混淆 148
8.2.1 代码块的易位 149
8.2.2 连续跳转 151
8.2.3 跳转表 153
8.2.4 逻辑跳转 154
8.2.5 switch跳转 157
8.3 流程混淆的扩展:语法混淆 160
8.3.1 让堆栈溢出 160
8.3.2 利用高级语言不支持的语法 161
8.3.3 利用高级语言间的语法差异 166
8.3.4 利用反编译引擎的缺陷 167
8.3.5 插入无效指令编码 170
8.4 反流程混淆的一般方法 171
8.5 小结 173
第9章 辅助保护手段 174
9.1 用户字符串编码 174
9.1.1 一般编码 175
9.1.2 使用强名称的编码 176
9.2 给程序集添加错误元数据 180
9.2.1 #GUID堆大小错误 180
9.2.2 TypeDef的Extends项错误 181
9.2.3 利用PE结构 182
9.2.4 添加多个Module 184
9.3 打包 186
9.4 特殊的.NET属性 189
9.5 利用系统特性 192
9.6 小结 193
第10章 壳保护 194
10.1 什么是程序集整体保护 194
10.2 纯.NET实现的压缩壳 195
10.3 基于Win32的壳 201
10.4 挂钩内核的壳 205
10.5 什么是基于每个方法的保护 216
10.5.1 常见的挂钩形式 217
10.5.2 更进一步的保护 222
10.5.3 实现方式 223
10.5.4 一般分析方法 225
10.6 小结 226
第11章 其他保护方式 227
11.1 许可证保护 227
11.1.1 许可证机制简介 227
11.1.2 .NET许可证机制的扩展 231
11.1.3 一般分析方法 236
11.2 算法的运用 237
11.2.1 .NET提供的算法空间 238
11.2.2 对称算法的.NET实现 239
11.2.3 非对称算法的.NET实现 243
11.2.4 数字签名的.NET实现 247
11.3 虚拟机保护 248
11.4 编译为本地代码 250
11.5 动态方法委托调用 254
11.6 小结 260
第四部分 扩 展 篇
第12章 非托管API 262
12.1 非托管API综述 262
12.2 宿主API 263
12.3 合成API 267
12.4 强名称API 271
12.5 元数据API 273
12.6 分析API 283
12.7 小结 293
第13章 MONO、SSCLI与.NET内核调试 294
13.1 MONO简介 294
13.2 SSCIL简介 300
13.3 .NET框架内核调试 306
13.4 小结 309
第14章 Win64平台上的.NET 310
14.1 64位编程的一般性问题 310
14.2 C++编程的改变 311
14.2.1 汇编级的改变 313
14.2.2 .NET编程的改变 317
14.3 64位PE结构 317
14.4 64位.NET程序调试 320
14.5 小结 327
附录A 元数据表 328
参考文献 340

http://yunpan.cn/QI7BS3ZYDZwMt (访问密码:0842)

   大家有钱的捧个钱场,没钱的,捧个气场。哈哈。

manbajie 发表于 2014-4-9 16:44

拿来用用先

q2234037172 发表于 2014-4-9 16:34

多谢楼主无私分享!!!!!!!!!!!!!!!!

dhwch 发表于 2014-4-9 16:58

谢谢分享

滴水石穿 发表于 2014-4-9 17:20

可以看看{:1_918:}

tail88 发表于 2014-4-9 18:58

感谢分享啊。

njkkx 发表于 2014-4-10 08:34


谢谢分享

blmszster 发表于 2014-4-10 09:48

呵呵!我还去图书馆,借了此书来看!!!

peter_king 发表于 2014-5-8 22:24

感謝分享!!

1c3z 发表于 2014-5-11 12:32

感谢分享。。。
页: [1] 2
查看完整版本: 微软.NET程序的加密与解密