软件加密技术及实现毕业论文(可编辑)

上传人:cl****1 文档编号:431768005 上传时间:2022-10-10 格式:DOC 页数:29 大小:63.50KB
返回 下载 相关 举报
软件加密技术及实现毕业论文(可编辑)_第1页
第1页 / 共29页
软件加密技术及实现毕业论文(可编辑)_第2页
第2页 / 共29页
软件加密技术及实现毕业论文(可编辑)_第3页
第3页 / 共29页
软件加密技术及实现毕业论文(可编辑)_第4页
第4页 / 共29页
软件加密技术及实现毕业论文(可编辑)_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《软件加密技术及实现毕业论文(可编辑)》由会员分享,可在线阅读,更多相关《软件加密技术及实现毕业论文(可编辑)(29页珍藏版)》请在金锄头文库上搜索。

1、 软件加密技术及实现雷 鹏( 桂林电子工业学院 计算机系 ) 摘 要 当今盗版软件的泛滥成灾几乎已经成为了我们中国民族软件的灾难,为了防止软件的非法复制、盗版,保护软件开发商的利益,就必须对软件进行加密保护。现在市面上有许多反盗版软件,但这类软件多是单机处理,并且只使用简单的加密手段,很容易被解密者破解。 本文描述了一个通过Internet,集加密和电子注册于一身的完善的软件保护方案。该方案基于多种密码学意义上可靠的算法,如对称加密算法,散列算法,数字签名,密钥交换等等。通过对Windows下PE可执行文件的结构及载入机制进行深刻的剖析, 巧妙的使用这些密码学算法及多种反破解方案对PE文件进行

2、加密保护。 在该方案的实现中,使用CryptoAPI中的数字签名算法RSA,加密算法RC2和RC4,散列算法SHA,同时自己编写了使用了MD5算法用于快速计算大量数据的摘要;网络接口使用WinSocket;编程语言选用汇编语言和C+混合编程方式;反破解方案有检测文件完整性、检测代码完整性、反跟踪、反-反汇编、反Dump、代码变形等等。 由于使用了可靠的密码学算法,使软件加密的强度大大提高;由于使用了Internet在线注册方式,用户使用也非常方便。 关键词 加密 ;数字签名 ;散列;反跟踪 ;电子注册 Software Protection technique and its realizat

3、ionLEI Peng ( GuiLin Institute of Electronic TechnologyThe Department of Computing ) Abstract The flooding of pirate software has been a calamity of our national software industryIn order to prevent software from pirate , and protect the profit of the software developer , they must encrypt their sof

4、tware to get a protectionThere are several software protection tools in the market currently , but these tools were standalone nine tenths , and they only used simple encryption algorithms , so they could be cracked easily by the crackers This thesis describes a perfect software encryption and prote

5、ction scheme which integrate the encryption and electronic registerThis scheme is based on multiple reliable cryptographic algorithms such as symmetric encryption algorithm , digital signature , hashing and key exchangeThe PE file format Portable Executable File Format and its loading mechanism unde

6、r Windows are dissected thoroughly in this thesisThen these cryptographic algorithms and several anti-crack method are used gracefully to encrypt and protect the PE file Within the realization of this scheme , the RSA digital signature algorithm , RC2 and RC4 encryption algorithm , SHA hasing algori

7、thm etc in MicroSoft CryptoAPI are usedIn order to increase the performace of caculate the digest of large number of data, MD5 hashing algorithm was rewrittenWinSocket API is used as the network interfaceThe blend of C+ and assembly are used for easily contoling the bottom layer of the system and si

8、mplify the programmingThe anti-crack method consits the integralization of the file checking , the integralization of the code checking , and anti-debug , anti-disassembly , anti-dump and code metamorphose etc The reliable cyrpto algorithms guarantee the crypto strengthAs a result of online register

9、 , the retail users and the software developers get convenience Key wordsEncrypt ; Digital Signature ; Hashing ; Anti-Debug ; Electronic Register 目 录1概述12密码学简介2.1概念32.2对称密码算法62.3公开密码算法62.4单向散列函数72.5数字签名83Windows 环境下 PE 文件简介3.1WIN32 与 PE 基本概念103.2PE首部123.3PE文件的导入表144当前流行的一些软件保护技术4.1序列号保护214.2时间限制224.

10、3Key File 保护234.4CD-check234.5反跟踪技术(Anti-Debug)234.6反-反汇编技术(Anti- Disassmbly)244.7软件狗254.8Vbox 保护技术254.9SalesAgent 保护技术264.10SecuROM 保护技术264.11软盘加密264.12将软件与机器硬件信息结合264.13加壳275该软件的设计思想5.1传统保护的不足285.2网络的流行295.3我的方案295.4该方案的可行性分析296该软件的整体构架、开发工具及方法6.1需求分析326.2整体框架356.3各取所长(汇编与 C/C+ 各取所长)356.4C/C+ 与汇编语

11、言混合编程时的互调协议366.5该软件中各模块对语言特性的限制及解决方法406.6C/C+ 和汇编语言的预编译457该软件的实现及技术细节7.1CryptoAPI 简介477.2几个公共函数和宏497.3模块共用的结构体定义547.4Shield 模块567.4.1壳程序中API和库函数的处理597.4.2壳程序主体627.4.3加密壳程序637.4.4运行中修改自身代码647.4.5代码散列校验647.4.6跳转到客户程序入口657.4.7载入并销毁 Client 程序的 ImportTable667.4.8自毁壳程序代码697.4.9编译方法707.5Merge 模块717.6Regist

12、er 模块767.7Server 模块777.8软件授权协议的实现787.9Client的代码(数据)的加密/解密流程图示828使用说明及演示8.1使用说明838.2演示及效果839限制、不足与展望9.1使用该软件的限制869.2该软件的不足869.3对该软件的展望8710结束语10.1总结9110.2致谢91参考文献92概述 我引用应用密码学作者Bruce Schneier的话: 世界上有两种密码:一种是防止你的小妹妹看你的文件;另一种是防止当局者阅读你的文件资料。 如果把一封信锁在保险柜中,把保险柜藏在纽约的某个地方,然后告诉你去看这封信。这并不是安全,而是隐藏。相反,如果把一封信锁在保险

13、柜中,然后把保险柜及其设计规范和许多同样的保险柜给你,以便你和世界上最好的开保险柜的专家能够研究锁的装置。而你还是无法打开保险柜去读这封信,这样才是安全的。 意思是说,一个密码系统的安全性只在于密钥的保密性,而不在算法的保密性。 对纯数据的加密的确是这样。对于你不愿意让他看到这些数据(数据的明文)的人,用可靠的加密算法,只要破解者不知道被加密数据的密码,他就不可解读这些数据。 但是,软件的加密不同于数据的加密,它只能是“隐藏”。不管你愿意不愿意让他(合法用户,或 Cracker)看见这些数据(软件的明文),软件最终总要在机器上运行,对机器,它就必须是明文。既然机器可以“看见”这些明文,那么 C

14、racker,通过一些技术,也可以看到这些明文。 于是,从理论上,任何软件加密技术都可以破解。只是破解的难度不同而已。有的要让最高明的 Cracker 忙上几个月,有的可能不费吹灰之力,就被破解了。 所以,反盗版的任务(技术上的反盗版,而非行政上的反盗版)就是增加 Cracker 的破解难度。让他们花费在破解软件上的成本,比他破解这个软件的获利还要高。这样 Cracker 的破解变得毫无意义?谁会花比正版软件更多的钱去买盗版软件 ? 然而,要做到“难破解”,何尝容易? Sony 曾宣称的超强反盗版(Key 2 Audio音乐 CD反盗版),使用了很尖端的技术,然而最近却被一枝记号笔破解了,成为

15、人们的饭后笑料! 所以,很多看上去很好的技术,可能在 Cracker 面前的确不堪一击。就像马其诺防线一样,Cracker 不从你的防线入手,而是“绕道”。这样,让你的反盗版技术在你做梦也想不到的地方被 Crack 了。 为什么会这样呢 ?归根到底是因为软件在机器上运行,并且软件和机器是分离的?这一点是关键,如果软件和硬件完全绑定,不能分离,是可以做到象 IDEA 之类几乎不可破解的系统的。这将在后面谈传统软件保护技术时详细说明。 对我的这个解决方案,我不能保证Crack高手在几天之内不能破解它,我只能说:“在这个软件中,我尽量堵住了当前破解者普遍使用的方法以及“我想得到”的可能的缺口。”但是我相信,倾注了我三个月心血的反盗版软件,决不是一个“玩具式”的反盗版软件。密码学简介概念1 发送者和接收者 假设发送者想发送消息给接收者,且想安全地发送信息:她想确信偷听者不能阅读发送的消息。2 消息和加密

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号