浅谈软件加密与解密

浅谈软件加密与解密

ID:38322247

大小:271.50 KB

页数:20页

时间:2019-06-10

浅谈软件加密与解密_第1页
浅谈软件加密与解密_第2页
浅谈软件加密与解密_第3页
浅谈软件加密与解密_第4页
浅谈软件加密与解密_第5页
资源描述:

《浅谈软件加密与解密》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、浅谈软件加密与解密主讲人:刘鑫主要内容1浅谈软件加密2神秘的解密3黑客的智慧——免杀4保护我们的软件传统软件保护技术传统的软件保护技术似乎有一个通病:密码算法并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧……软盘保护即钥匙盘,在普通软盘上格式化一些非标准扇区,只有自己的程序可以读这些扇区的内容。在这些扇区上写入密钥,验证信息等,软件执行时读取这些信息并验证。近年来软盘的使用量大大下降,其实用性已经不比从前。并且,现在这种方法已经不能抵挡解密者的攻击。软件狗安装在并口、串口等接口上的硬件电路,同时有一套适用于各种语言的接口软件和工具软件

2、。当被狗保护的软件运行时,程序向插在计算机上的软件狗发出命令让它执行,根据执行结果验证软件是否合法。这种方法需要附加的硬件,成本比较高,用户使用起来也不方便。序列号保护软件要求用户输入用户名,发送给开发者,由开发者根据用户名计算出序列号,返回给用户,在用户端验证。数学原理:序列号=F(用户名)或用户名称=F逆(序列号)如果有一对(序列号,用户名)被散发,任何人都可以用这对(序列号,用户名)“注册”软件。什么是壳壳就是保护程序不被修改或反编译的一段程序加壳:其实是利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP的效果,只不过这个压缩之后

3、的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。当你加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当你执行这个程序的时候这个壳就会把原来的程序在内存中解开,以后的就交给真正的程序。所以,这些的工作只是在内存中运行的,是不可以了解具体是怎么样在内存中运行的。通常说的对外壳加密,都是指很多网上免费或者非免费的软件,被一些专门的加壳程序加壳,基本上是对程序的压缩或者不压缩。因为有的时候程序会过大,需要压缩。但是大部分的程序是因为防止反跟踪,防止程序被人跟踪调试,防

4、止算法程序不想被别人静态分析。加密代码和数据,保护你的程序数据的完整性。不被修改或者窥视你程序的内幕。壳的介绍所有压缩壳:upx、AsPacK、UPacK等,初级保护壳:yC、Softsentry、VisualProtect、PESHiELD、ArmadilloStandardProtection、tELock、PESpin等中级保护壳:ArmadilloCopyMem-II、ASProtectV1.X、NTkrnlProtector、PE-Armor、Dongles、SVKProtect、Obsidium等高级保护壳:EncryptPE、PrivateexeP

5、rotector、ArmadilloNanomites、ASProtectV2.X、EXECryptor、StarForce、SafeDisc、VMProtect、Themida等演示脱壳!神秘的解密很多人可能觉得解密很神秘,那么解密神秘吗?到底什么是解密呢?简单点且不太准确的说,就是解开密码。去掉限制。有时我们也称为破解(crack),做破解的人我们称为cracker。你见过破解的东西吗?当然,你用的Office2003是花多少钱买的?4块?10块?哇,好贵啊!可是你知道正版的多少钱吗?这里是微软提供的价格直接从Microsoft订购OfficeProfess

6、ionalEdition2003,新用户价格OfficeProfessionalEdition2003RMB3,822生活中基本所有用过的杀毒软件都是破解的!以注册码为例我们把用户名按照某种方法运算得到一个真正的注册码和用户输入的进行比较不就知道了吗?也就是真正的注册码=f(用户名)Y=f(x)然后就是很经典的比较了,为什么说经典呢?因为有60%的软件是这么做的。真正的注册码=用户输入的注册码吗?去掉所有限制,正版了提示注册错误Say88聪明的你是否想到了什么?关键就是这里的比较YN决定何去何从比较汇编比较那么上面的流程在汇编语言里面是怎么实现的呢?比较有2种方

7、式,直接和间接,直接就是用:cmpx,y(比较值或者短字符串)je(jne)label程序比较间接的呢?调用一个子程序比较,如下面的代码if(strcmp(&x,&y))//如果strcmp返回值是1printf(“right”);else……………..//当然是错误拉用汇编语言描述呢?push&x;push&y;callstrcmp;testax,ax;判断返回值(也就是出口参数)je……一个真正的Cracker必须掌握1.德;要有社会道德意识,必须遵守一些规范!2.数学;要尽可能的多学一些数学知识,必须具备扎实的数学基础!3.外语;最起码要有一定的英语阅读能

8、力,当然掌握得越多越好!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。