- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种NET软件加壳技术的设计与实现
引言
为了保护自己的软件的技术内核不被他人轻易盗用,软件开发人员使用了各种加密技术来保障软件的版权不被侵犯,壳便是我们常用的一种软件保护手段。对于Win32 中软件加壳技术已经有非常成熟的商业产品,然而,对于.NET环境下软件,由于.NET程序的编译结果不是机器语言代码,而是一种MSIL中间代码,因此不能使用传统的加壳技术。目前,专门对.NET软件实施加壳的商业软件主要有MaxtoCode,另外,SafeNet公司也推出了其软件保护产品圣天狗最新的外壳工具,满足了软件开发商的一大愿望。圣天狗外壳加密工具可以自动完成对可执行文件的加密过程,从而让开发商快速方便地完成软件加密和授权管理的工作。
本文介绍了.NET环境下一种简单的软件加壳技术,该技术使用了数字签名、MSIL代码混淆、加密等技术,可达到高强度的软件保护。与MaxtoCode相比,这种技术的优点是:可以防止软件非法拷贝,针对计算机硬件“指纹”授权(指纹:即硬件信息中终身不变的识别号,如CPU和硬盘的序列号等,下同),对于网络版,可以防止非本服务器的客户端访问服务。
2 认识“壳”
壳是对加密软件的一个形象的比喻,顾名思义,壳是软件外部的一件“外衣”,是软件的保护屏障。有了它,恶意攻击者就无法在对软件反汇编后,直接找到软件的核心代码。
壳是一段程序,它先于程序运行,壳在运行后就获得了该软件控制权,利用其保护功能对软件进行安全保护。
壳的工作原理大致是:先运行壳程序,壳将加密的主程序(主程序即原来的待加壳的程序,下同)代码解密到内存中,运行其中相应功能,并将程序的控制权交还给主程序。
本文中研究的加壳技术正是基于这种原理,只是壳也是用.NET编写的,加密与解密密钥与用户的机器硬件指纹有关,而不是固定的密钥,所以可以防止软件非法拷贝,达到更高的保护强度。
3 本加壳技术的原理
先将原来的主程序编译成DLL,再编写一个壳程序,编译成EXE,并将程序的运行入口(即main函数)移到壳中来,由壳开始执行整个程序。首先,可以用自编的加密工具,在软件发布前将所有DLL文件分别进行加密(输入特定的密钥),在壳加载DLL时临时将其解密到内存中,并加载运行。由于解密DLL的结果只存在于内存,所以攻击者无法获得解密后的DLL,除非他能找到DLL的解密密钥。同时,为了避免攻击者分析外壳程序的逻辑,从中寻找解密密钥,还可以将壳编译成EXE文件后,再用第三方软件进行混淆(如:XenoCode)或加密(如:MaxtoCode),这样攻击者将无法了解DLL加密的算法及处理逻辑。从而,更有效地保护主程序DLL。加壳与脱壳的原理如图1所示。
图 1 NET软件加密型加壳的原理
4 软件发布与用户注册流程
为了推广软件,开发商一般会将软件的试用版放在网上,让用户自由下载试用,用户基本满意后再注册正式版。
软件发布与用户注册的流程如图2所示。
5 软件发布与用户注册的实现
5.1 注册申请
为了达到软件防拷贝的功能,开发商必须为不同的用户制作不同的安装文件,一套程序只能在一台机器上运行。为此,开发商在制作安装文件时,必须取得软件将要运行的目标机器的指纹和用户的单位名称,对于有应用程序服务器的网络版软件,只需要取得应用服务器的指纹。指纹数据可以由用户使用特定的程序取得,并通过短信或邮件的方式告知开发商。
指纹的提取有两种方法:其一,通过软件的试用版。试用版中设计申请注册的模块,用户通过此模块提取本机的指纹数据。软件的试用版文件的制作不是针对目标机器的指纹制作的,可以在任何机器上运行。为了防止Cracker找到DLL的解密密钥后,将试用版破解。通常可以对试用版软件设置功能限制(如:去掉部分关键代码),这样即使试用版被破解,也无法投入正式的应用。
方法二:使用专用于注册申请的程序。对于网络版的应用服务程序,如果没有用户界面,或无须试用的用户,只能使用由开发商提供的专用注册程序来提取机器指纹。
5.2 计算注册码
这种加壳技术本来可以省去输入注册码手工注册这个过程,因为每一个发布的版本只能在指定的机器上运行,但为了定制用户单位信息以及对用户数进行限制,还是要有注册过程的。注册码是由用户单位、机器指纹及用户数限制等信息经过加密处理后得到的,处理可以用自制的注册码计算工具来实现。
5.3 加密DLL文件
本加壳技术的核心之一是加密DLL文件,加密过程可以用自制的加密工具完成。加密算法可以选择.NET框架中提供任何加密算法或者自行设计加密算法。算法可以不用公开的算法,因为加密解密都是在自己的程序中进行。因此,此方案的安全性完全可以由开发商自己保证,而不依赖于第三方。
5.4
您可能关注的文档
- 2015年黑龙江省对口高职数学二轮复习考试试题一(含答案).doc
- 2015广州中职对口升学语文二轮复习模拟试题八(含答案).doc
- 2015广州中职对口升学语文二轮复习模拟试题(含答案)十三.doc
- 2015广州天河职中对口升学数学高考专题复习题:立体几何.doc
- 2015江苏对口升学语文二轮复习模拟试题八(含答案).doc
- 2015延庆第一职中对口升学数学解析几何专题课件:第1讲.ppt
- 2015江苏职高对口升学语文二轮复习模拟试题七(含答案).doc
- 2015江西青年职中数学人教版基础模块选择题基础练习题三十一(含答案).doc
- 2015河北徐水职教中心对口升学语文专题训练:语言表达.doc
- 2015河北衡水市对口高职数学二轮复习考试试题二(含答案).doc
最近下载
- 角色场景设计游戏原画设计2.5直接又感性的语言光影64课件.pptx VIP
- 电气人防图集07FD02.docx VIP
- 郑杭生-社会学概论第一章.pptx VIP
- 关于对班子的评价.docx VIP
- 角色场景设计游戏原画设计2.6最快速的视觉表现色彩44课件.pptx VIP
- 15万吨年聚乙烯醇(PVA)装置可行性研究报告.docx VIP
- 危险化学品企业八大危险作业危害分析及安全交底表.doc VIP
- 一种高冲击、长效耐黄变的PBT增强阻燃复合材料及其制备方法和应用.pdf VIP
- 近代光信息处理第4章光学图像识别.ppt VIP
- 2024年“万名党员进党校”结业测试卷附答案.doc VIP
文档评论(0)