微软.NET程序的加密与解密(安全技术大系)

分类: 图书,计算机与互联网,家庭与计算机,PC机,PC安全,
品牌: 单海波
基本信息·出版社:电子工业出版社
·页码:340 页
·出版日期:2008年
·ISBN:7121075520/9787121075520
·条形码:9787121075520
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:安全技术大系
产品信息有问题吗?请帮我们更新产品信息。
内容简介《微软.NET程序的加密与解密》是软件安全主题网站——看雪学院《加密与解密》软件安全系列丛书的第三本,主要介绍代码保护与加密解密技术在微软.NET框架中的应用。全书分为基出篇、分析篇、保护篇和扩展篇四大部分,内容涉及.NET框架基础、元数据与MSIL、.NET程序与内核调试、主流代码保护及其逆向技术、非托管API应用、64位NET程序调试等。
编辑推荐《微软.NET程序的加密与解密》的层次循序渐进, 难度深入浅出,且注重实例分析,是软件开发人员了解.NET内核及加密解密技术不可多得的参考书,适合NET开发人员及加密与解密爱好者阅读。基础篇:精辟地讲解了微软,NET框架的基本原理,MSIL中间语言和PE结构扩展与元数据,为进一步学习NET程序的加密与解密打好良好的理论基础。
分析篇:深入挖掘了静态分析技术、动态调试技术的技术细节,带你跨过NET程序加密与解密的技术门槛,真正步入信息安全技术的殿堂。
保护篇:全面叙述了强名称保护、名称混淆、流程混淆、辅助保护手段、壳保护和其他保护方式,使你增强从事NET程序加密与解密工作的能力和实战本领。
扩展篇:通过非托管API,MONO,SSCLI与NET内核调试和Win64平台上的NET扩展演练、使你开阔视野、远瞻安全技术的前沿动态,提升NET的逆向功力。
目录
第一部分 基础篇
第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 元数据表
参考文献
……[看更多目录]
序言自微软2000年6月宣布其.NET战略以来的八年时间内,NET技术得到了迅猛发展。越来越多的程序员选择在.NET框架上开发程序,越来越多的企业选择NET作为自己产品的平台。有商业化的产品,就必然有对其进行保护的需求,于是加密与解密的战场再一次从传统的Win32平台扩展争.NET。可以说,.NET发展的这几年,也是.NET程序加密与解密技术飞速成长的几年,其间出现了诸多很有特点的保护技术与逆向技术。但也许是受英语语言的限制及缺少资料的影响,国内许多企业和程序员对目前国内外最新的加密解密技术了解甚少,于是在选择适合自己产品的保护方式时往往无从下手;而加密与解密爱好者在学习.NET逆向技术时,也感到缺乏这方面的资料。于是,我认为很有必要写一本专注于.NET程序加密解密与内核调试的书,希望和读者互相交流,共同提高。
文摘第一部分 基础篇
第1章微软.N ET框架基本原理
了解.NET框架的程序运行原理及代码编写方法是学习.NET加密与解密的基础。本章不去长篇大论“什么是.NET”,因为大多数编程书籍已将这个问题解释得很清楚了,从加密与解密的角度帮助读者了解.NET框架才是本章的核心内容。
接下来的内容将以四步走的形式介绍:通过编译第一个.NET程序,学习SDK的基本使用,对.NET程序的运行有感性认识;通过反编译,学习ildasm的使用,掌握.NET逆向的初步技巧;通过修改IL代码并再次编译,对MSIL语言和元数据有初步认识;最后,在以上三步的基础上,理解.NET框架最重要的两个概念:CLR与JIT。
1.1什么是.NET
.NET是架构于操作系统之上的平台,它是一套虚拟机,其核心功能由一系列运行在用户层(ring3层)的DLL文件实现。相对于读者已经非常熟悉的Win32平台,或是尚未普及的、Win64平台,.NET是既有联系又有区别。联系是指,.NET框架构建在Win32/64平台之上,它的核心程序是一系列运行于用户层的DLL,这就决定了.NET的内核实现仍是基于win32/64;区别是指,传统用户层DLL(如Kernel32.dU、User32.dll等)的主要功能是提供API,而同样是由DLL实现的,NET功能要强大得多,它提供了一套完整的程序开发框架,包括新的编程语言、新的程序运行方式、新的服务等,这些都远远超过API涵盖的范围。从上述区别方面来说,可以将.NET当作一个全新的平台来学习。
如果读者熟悉Java或者虚拟机的概念,那么理解.NET会非常容易。如果读者是个新手,也不用担心,只要把握住以下三个.NET最重要的特性。
(1)统一了编程语言。过去,不同编程语言间的协作总有着或多或少的兼容性问题,使用比较麻烦。.NET则统一了编程语言:无论程序是用c#,还是c++,或是VB编写,最终都被编译为.NET中间语言MSIL(简称IL)。这种统一对程序开发的贡献不言而喻,但同时也方便了软件逆向:无须再分别为每一种语言单独编写反编译器。