网站大量收购独家精品文档,联系QQ:2885784924

dotNET程序加解密技术.pdf

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
dotNET程序加解密技术.pdf

单海波 C l i c k t o e d i t c o m p a n y s l o g a n . 主要内容 一、.NET程序加解密技术基础 二、主流的.NET程序加解密技术 三、对.NET加解密技术的一些看法 一、.NET程序加解密技术基础 1、什么是.NET .NET Framework 是支持生成和运行下一代应 用程序和XML Web Services 的内部Windows 组件。 符合ECMA-335 (欧洲计算机制造商协会)规 定的公共语言基础(CLI )的平台:MONO、 SSCLI等。 .NET的目标: 一个一致的面向对象的编程环境。 一个将软件部署和版本控制冲突最小化的代码 执行环境。 一个可提高代码执行安全性的代码执行环境。 一个可消除脚本环境或解释环境的性能问题的 代码执行环境。 使开发人员的经验在面对类型大不相同的应用 程序时保持一致。 确保基于.NET Framework 的代码可与任何其 他代码集成。 从加解密的角度看,.NET就是构建于操作系 统(Windows )之上的虚拟机。 包含两个部分 CLR (通用语言运行时,也就是.NET程序的执 行环境) .NET类库 Windows系统上的.NET框架结构 2、加解密所关注的.NET带来的改变 (1)PE结构上的改变 普通PE文件存储x86/x64机器指令 .NET下PE文件(程序集)中保存的是元数据和 MSIL,但不限于此。 .NET下PE文件.text节的典型结构 元数据:描述数据的数据。 在.NET中,元数据: a) 本身就是一段数据。 b) 描述了一个.NET程序的全部信息。(.NET 程序是自描述的) 程序集的这种自描述性质使得反编译时信息更加丰富,结合 MSIL的特性,使得反编译结果近似原代码。 元数据的基本结构 元数据是以数据流(stream )的形式保存在文 件中,这些流被分别命名,并有各自不同的含 义。在.NET中,保存元数据的流被分为两大类 :堆(heap)和表(table )。因此,流是一个 统称,而堆和表则是流的两种存储形式。 .NET中的六个元数据堆 名称 含义 UTF8格式的字符串堆,包含各种元数据的名称(比如类名、方法名、成员名、参数名等 #Strings 等)。堆的首部总有一个0作为空字符串,各字符串以0表示结尾。CLR 中这些名称的最大长 度是1024。 二进制数据堆,存储程序中的非字符串信息,比如常量值、方法的签名、强名称等。每个 #Blob 数据的长度由该数据的前1至3位决定:0表示长度1字节,10表示长度2字节,110表示长度4 字节。 #GUID 存储所有的全局唯一标识(Global Unique Identifier )。 #US 以Unicode格式存放的IL代码中使用的用户字符串(User String ),比如ldstr调用的字符串。 元数据中最重要的堆,几乎所有的元数据信息都以表的形式保存于此。每个.NET程序都必 #~ 须包含。 #- #~ 的未压缩(或称为未优化)存储,不常见。 元数据表 00 – Module 01 – TypeRef 02 - TypeDef 03 – FieldPtr 04 – Field 05 – MethodPtr 06 – MethodDef 07 – ParamPtr 08 - Param 09 – InterfaceImpl 10 – MemberRef 11 - Constant 12 – CustomAttribute 13 – FieldMarshal 14 - D

文档评论(0)

zhoujiahao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档