计算机软件保护论文:用虚拟加密锁实现共享软件的版权保护_第1页
计算机软件保护论文:用虚拟加密锁实现共享软件的版权保护_第2页
计算机软件保护论文:用虚拟加密锁实现共享软件的版权保护_第3页
计算机软件保护论文:用虚拟加密锁实现共享软件的版权保护_第4页
计算机软件保护论文:用虚拟加密锁实现共享软件的版权保护_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机软件保护论文 用虚拟加密锁实现共享软件的计算机软件保护论文 用虚拟加密锁实现共享软件的 版权保护版权保护 摘 要 分析目前常见软件版权保护技术的优点和 不足 提出了一种虚拟加密锁的共享软件版权保护方法 用 动态链接库 DLL 文件代替加密锁 将软件的关键功能模块 基于用户计算机指纹的注册验证模块和反破解模块封装在 动态链接库文件中 从而模拟加密锁达到保护共享软件版权 的目的 该方法已应用于共享软件的版权保护中 关键词 计算机指纹 版权保护 虚拟加密锁 动 态链接库 反破解 1 常见的软件版权保护技术 因特网的飞速发展为共享软件的快速发展提供了前所 未有的机遇 同时 由于软件是一类特殊商品 极易复制和网 上传播 造成盗版软件泛滥 严重地损害了软件开发商的利 益 如何进行软件版权保护 防止非法用户盗版 一直是软 件开发商不断研究的课题 依据加密的原理和加密方式 目 前软件版权保护技术分为以下三大类 1 软加密 它就是不依赖特定的硬件来实现对软件加 密保护的技术 常见的保护方式包括 序列号 注册码 保护 方式 KeyFile 保护方式 功能限制保护方式和时间限制保 护方式等 它的最大优势在于加密成本低 便于在互联网上 进行软件的发布和销售 是适合共享软件的保护方式 它的 缺点在于不能防止破解者通过动态调试或静态分析技术找 到软件的关键指令 修改该指令破解软件 1 2 硬加密 它就是依赖特定的硬件 通过硬件和软件 相结合的方式来实现软件加密保护的技术 常用的方法有 磁盘加密 加密卡和加密锁等 它的优势在于利用硬件的 不可复制性达到较高强度的加密保护 其缺点是需要额外的 硬件 成本高 而且也不利于网上发布软件 3 网络加密 它就是利用网络技术对软件进行加密保 护的技术 常见的方法有网络验证等 它的优点是将软件 运行的重要数据放在服务器上 只有通过联网验证用户注册 信息后才能取得这些数据运行软件 它的加密强度较高 其 缺点是需要建立专门的服务器网站 成本高 1 通过以上介绍可以看出较为安全的共享软件版权保护 方式要同时具有以下四个特征 软件的重要数据与软件主 体分离 软件不可复制 软件要有反修改 反跟踪和反 静态分析等反破解功能 2 便于在互联网上发布和销售 软件 根据这四个特征笔者提出一种基于虚拟加密锁的共 享软件版权保护方法 2 虚拟加密锁的理论基础 2 1 软件加密锁 3 软件加密锁是为软件开发商提供的一种智能型的软件 加密工具 它包括一个安装在计算机并行口或 USB 口上的硬 件 及一套适用于各种语言的接口软件和工具软件 它具有 如下特点 加密锁据有防破解功能 可对抗各种调试工具的 跟踪 一锁一密码或一种电路 软硬件不可互换 提供各种语 言的编程和工具软件 方便开发人员在自己开发的程序中使 用 允许软件开发商将自己软件中的一部分程序或算法写进 锁中 并在锁中运行 从而使开发商的软件同加密硬件有机 地结合在一起 用户在使用软件时 必须把加密锁连接到计算机的并口 或 USB 口上 软件才能继续运行 如果没有安装加密锁或安 装的不是该软件的加密锁 则软件不能运行或功能不完整 从而达到保护软件版权的目的 2 2 DLL 动态链接库 DLL 是一个可以被其它应用程序共享的已编译的代码模 块 其中封装了一些可以被共享的代码和资源 W indows 应 用程序可根据 DLL 中的指令打开 启用 查询 禁用和关 闭驱动程序 DLL 文件还可以方便地实现对硬件资源和内存 资源的访问 它主要具有如下特点 DLL 的开发与具体的编 程语言及编译器无关 只要遵循其开发规范并安排正确的编 程接口 无论使用何种语言编制的 DLL 都具有通用性 使用 DLL 不是将其库代码拷贝 而只在程序中记录函数的入口点 和接口 程序执行时才能将代码载入内存 多个程序使用相 同的 DLL 时 内存只需要装载一次 可以高效经济地使用内 存 DLL 是基于 W indows 的程序模块 它不仅包含可执行代 码 还可以包含数据和各种资源 扩大了库文件的使用范围 3 用虚拟加密锁实现共享软件版权保护的方法 3 1 虚拟加密锁加密的原理 4 由上述 DLL 文件具有的功能和特点可知 对 DLL 文件进 行反破解处理就可以实现硬件加密锁的主要功能 完成对软 件版权的保护 另外 与加密锁的硬件价格相比 DLL 文件的 开发几乎不需要投入成本 再者 由于 DLL 文件与软件主体 在同一个文件夹下 软件主体执行时无需访问并行接口或 USB 接口 因而节约了计算机硬件开销 运行速度更快 可实 现对软件的保护 基于上述因素考虑 我们在传统的软件保 护技术的基础上 推陈出新 提出一种基于虚拟加密锁的软 件版权保护方法 虚拟加密锁是一种基于 DLL 文件的软件 保护技术 它是软加密技术的一种 DLL 文件主要是通过模拟 硬件加密锁对软件主体运行的控制来仿真加密锁的 将软 件中只有注册用户才能使用的关键功能模块 注册用户的 计算机指纹信息和基于用户计算机指纹的注册验证模块都 封装到 DLL 文件中 同时在 DLL 文件中加入文件完整性检测 反调试和反静态分析功能模块来提高 DLL 文件的反破解性 能 软件运行时 当执行到 DLL 文件中需要注册才能使用的 功能时 必须进行 DLL 文件的完整性检测 调试器的检测 只有通过检测 注册验证后才能执行软件的功能 否则退出 软件 由于 DLL 文件内置了用户计算机指纹信息 具有不可 复制性 和反破解模块 因而 DLL 文件具有类似加密锁的功 能 可以取代加密锁 达到对软件版权保护的目的 其系统 基本原理图如图 1 所示 3 2 虚拟加密锁实现的功能 3 2 1 封装软件中的关键功能使软件试用版与正 式版分离 为满足第 1 节所述特征 设计软件时将软件分成软 件主体和 DLL 文件两部分 软件主体就是软件的试用版 在网上发布 将软件的关键功能封装在 DLL 文件 虚拟加 密锁 中 在实际开发软件时 如果封装的功能多导致 DLL 文件过大 可以只封装每个功能模块中的关键数据处理部 分 如图 1 所示 它只提供给注册用户 从而实现软件试 用版与正式版 即软件主体 虚拟加密锁 文件的分离 降 低了破解者破解正式版的几率 3 2 2 采集用户计算机指纹信息并生成计算机 ID 5 所谓计算机指纹是指与计算机硬件有关的不可复制 的信息 这些信息通常包括硬盘物理序列号和主板序列号 CUP 序列号等 不同的计算机有不同的计算机指纹 因而 用户计算机指纹可以起到唯一标识计算机的作用 确保虚 拟加密锁文件具有不可复制性 将采集的用户计算机指 纹信息经过 Hash 算法 如 SHA MD5 等 处理生成用户计 算机 ID 3 2 3 注册用户的合法验证 为满足第 1 节所述特征 将根据注册用户的计算机 指纹信息生成的 ID 预置到虚拟加密锁 DLL 文件 中 保 证了该虚拟加密锁只能运行在该注册用户的计算机上 当用户运行虚拟加密锁中的关键功能时 虚拟加密锁采集 该用户计算机指纹 经过一定加密运算生成计算机 ID 与 预置的计算机 ID 比较 若两者相等 说明该用户是合法用 户 则正常运行软件功能 若不相等 说明该用户是非法用 户 则限制该功能的运行或退出软件 3 2 4 反破解 6 7 如果软件不能防止破解者的非法修改 其它保护措施 做得再好 也很容易被破解 为满足第 1 节所述特征 在对虚拟加密锁文件进行反调试 反静态分析的基础上 增加反修改功能 7 3 2 4 1 虚拟加密锁的完整性校验 1 对虚拟加密锁文件进行完整性校验 可确保其不被非 法修改 校验的方法可采用 API 函数 MapFileAndCheckSum 进行完整性校验 读取虚拟加密锁文件 DllFile 的原始的校验和 HeaderSum 并计算其校验和 CheckSum MapFileAndCheckSum DllFile if HeaderSum CheckSum 虚拟加密锁文件 DllFilename 没有被修改 执 行软件功能 else 虚拟加密锁文件 DllFilename 被修改 中止软 件 3 2 4 2 调试器检测 1 为了防止破解者用调试工具 如 OllyDbg 等 对虚拟 加密锁程序文件进行跟踪 可用 API 函数 IsDebuggerPresent 来检测 1 if IsDebuggerPresent 当前程序被调试 中止软件 Else 3 2 4 3 反静态分析 为了防止破解者通过 W32Dasm IDA Pro 等反汇编分 析工具进行反汇编分析 可在虚拟加密锁文件中增加大量 花指令 另外 用虚拟机软件 VMProtect 对虚拟加密锁文 件进行处理 可以大大增强其抗静态分析的性能 1 3 3 用户注册过程 软件试用版用户试用满意后 通过汇款或网上银行转 账等方式付款后 用户将计算机 ID 根据用户计算机指纹 经加密生成的 通过电子邮件发送给软件开发商 软件开 发商根据用户计算机 ID 重新编译程序生成虚拟加密锁文 件 再通过电子邮件发送给用户 用户接收后用该文件覆 盖软件安装文件夹下的同名文件 就可以使用软件的全部 功能 这样就可以方便地利用互联网完成软件试用版的 发布和正式版的销售 这满足了第 1 节所述特征 4 结束语 在分析当前常见的软件版权保护技术的优缺点的基 础上 提出了虚拟加密锁的共享软件版权保护方法 以 DLL 文件为载体实现了加密锁的功能 它具有开发成本低 与硬件加密锁比 软件版权保护性能强 便于网上发 布和销售共享软件等优点 本文提出的虚拟加密锁已用 于笔者开发的 C C 程序设计学习与实验系统 和 Masm forW indows 集成实验环境 共享软件中 取得 了良好的版权保护效果 参考文献 1 段刚 加密与解密 第三版 M 北京 电子工 业出版社 2008 102 103 121 126 392 395 321 323 2 俞银燕 汤帜 数字版权保护技术研究综述 J 计算机学报 2005 12 1957 1966 3 飞天诚信 软件加密原理与应用 M 北

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论