2022年2022年汇编语言之加密与解 .pdf

上传人:Che****ry 文档编号:34872683 上传时间:2022-08-19 格式:PDF 页数:4 大小:47.83KB
返回 下载 相关 举报
2022年2022年汇编语言之加密与解 .pdf_第1页
第1页 / 共4页
2022年2022年汇编语言之加密与解 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年2022年汇编语言之加密与解 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言之加密与解 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、汇编语言之加密与解密入门:研究解密技术有助于掌握一些系统底层知识,系统底层知识绝对是构造起大型软件的坚实基础。许多程序发展,都经历了这一锻炼过程的。而大多数人可能认为解密是一门高深的学问。造成这种原因是以前这方面的技术资料缺乏,从而将“解密”这一技能“神”化了。汇编的作用:讨论前,先了解一下计算机中的程序。高级语言编写的程序,会编译成机器语言在CPU中执行,如 Visual C+ 等。由于机器语言与汇编语言是一一对应的,因此就可将机器语言转化成汇编语言,这个过程称之为反汇编。而汇编语言可能读性是比较好的,这样就可分析程序流程, 解析其功能了, 这个过程就是解密(俗称破解)。 也就是说,解密的基

2、础是建立在汇编语言级别上的,因此想涉足这一领域的朋友, 汇编语言一定得学好。 汇编语言是大学计算机的必修课,这方面的书籍品种很多, 虽然大多书本是以DOS 汇编为讲解平台, 但对理解汇编指令功能是没影响的。学习: 等汇编学好了,建议再掌握Win32编程。Win32程序设计就是 API 方式的 Windows编程,学习 Windows API 将使您更深入地了解Windows工作方式。此类书籍有 Charles Petzold著的Windows程序设计(以 VC来讲解) 。另一本是罗云彬著的 Windows环境下 32 位汇编语言程序设计,它以 MASM 汇编为讲解平台。有了上面这些基础,你就可

3、以参考加密与解密(第二版)这本书入门了。 等你解密入门后, 建议再看看 Matt Pietrek、Jeffrey Ritcher等大师的专著 ,这些 书是每个程序 员都应 该阅读 的:Windows 95 System Programming Secrets (中文译名 Windows 95 系靳程式设计大 ?秘 ) ,windows 高级编程指南,Windows2000编程技术内幕,Win32系统编程 Windows 2000 应用程序开发指南等。这样,你就对系统底层有一定的了解了。 到了这个水平后, 就可朝软件加密这块发展了,例如编写自己的加壳软件等。这时,可以阅读本站推出的软件加密技术内

4、幕这本新书了,这本书可以让你了解PE的格式,教你如何编写PE分析工作,如何编写加壳工具等。 软件的加密与解密是一个迷人的研究领域,它几乎可以与任意一种计算机技术紧密结合密码学、程序设计语言、操作系统、数据结构。而由于这样或者那样的原因, 对于这一领域的关注程度一直还处于低温状态。而这两本书相信会为更多对知识怀有渴望的朋友多开辟一条走向这个领域的道路,并且进而推动这个领域的不断发展。早期战场:一种简单的加密思路是将被加密程序的IAT 数据保存于壳内,然后新建立一个 IAT 导入表,里面只导入壳需要使用到的函数,比如很多壳都喜欢只导入 LoadLibrary和 GetProcAddress 两个函

5、数,这样其他函数可以再通过这两个函数来动态定位 关于后来例如 Asprotect这样的每个 dll导入一个函数的做法完全是为了更好的兼容性将这些数据保存于壳内后,壳在Loader 执行的时候就手动加载每一个dll填充每一个函数, 这是一种非常简单的加密手段, 目的正如我上面所说的,隐藏信息。因为他脱起来也较简单,等壳装载完毕后,直名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 接用 REC就可以修复这导致了新加密方法的使用。中期

6、战场: 新的 IAT 加密方法和上面的加密方法基本上差不多,但是在最后填充函数地址的时候, 也就是在壳加载了函数所在DLL和获得函数地址之后并不直接填充到 IAT 跳转描述表里面, 而是保存起来, 然后将跳转描述表里面相应位置填充为指向壳的一段代码, 这段代码负责动态解密跳转到真正的函数地址形成一个代理模式 这种方法仍然是现在流行的方法,大部分的加密壳都是基于这个原理的, 只不过实现手段上不同而已有的壳是直接跳转到壳里, 然后立马又跳回真正的函数地址, 我很能理解这样做的原因, 因为我知道写一个复杂的代码连接引擎并不是很容易大部分壳这个过程是动态的,也就是在loader 的时候动态生成跳转代码

7、的, 这有一个很致命的缺点, 因为这样或多或少的会形成一个magic jmp, 因为一般并不是所有函数都能被代理,所以必须还得考虑兼容性的问题,所以很多壳只代理了一部分函数,其他函数也只是获取地址然后填充,这样一个简单的过程, 但是他们又不注意将需要代理的函数在加壳时给予区分,而是在 loader 里面判断是否加密, 所以导致 magic jmp, 这样把所有信息行为都暴露给脱壳者是很不划算的。发展: 现在加解密发展己形成2 个分支了,一个就是传统的算法,另一个就是加密壳。越来越多的软件采用了密码学相关算法,现在要做出一个软件注册机己不象前几年那么容易, 这就要求解密者必须要有一定的数学功底和

8、密码学知识,而这些在短时间内是不容易掌握的。 除了密码学的应用,越来越多的软件加壳了,因此要求解密者必须掌握一些脱壳技术,这就使得壳成了解密必须迈过的一个门槛。壳发展到今天,强度越来越高了,将许多人挡在门外,使得大家望壳兴叹。高手讨论的脱壳技术新手看不懂,很多人想学脱壳, 但看到壳这么难, 只好放弃了,造成新手与高手间一个断档。VB防破解包括如下几下方面:1、 文件完整性,防止被非法修改2、 运行时的校验,防止被LOADER 3、 反调试,防止动态跟踪和挂接4、 防静态反汇编分析5、 注册码系统(算法部分,核心内容)6、 加壳防脱壳7、 隐蔽性设计8、 另辟蹊径由于 VB天生的原因,有些功能实

9、现起来非常麻烦,比方说算法部分,如果采用大数运算的话, 缺少大数运行库。 所以,有时也可以采用第三方DLL来补充大数的不足。软件安全发展: 当前软件发展的方向主要是 软件自身的保护方式被破解,软件 bug和漏洞的 fix,以及 web程序的加密问题 , 对于 web我不多讲因为我们的主题并不是 web软件在保护方面从最早的磁盘保护, 到现在的花指令 , 反跟踪 , 解释器 , 等一系列的方法防止软件被破解漏洞方面是这里我们不谈本身功能逻辑错误的bug. 这个是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -

10、- - - - - 第 2 页,共 4 页 - - - - - - - - - 显而易见的。软件安全的分类1. 破解破解和反破解是矛与盾的事情, 软件加解密的技术 , 也是逆向和反逆向的PK ,在未来的软件安全发展方面, 应该采取的是多种应用 , 语言.net 方面 因为设计的框架和理念 , 导致很容易得到源码,对于非解释语言编译的程序, 逆向高手 , 可以很快的逆向成C代码, 而且在工具的辅助下 . 可以直接获取核心代码 . 导致软件的脆弱性增加了很多在保护方面也从反跟踪到虚拟机,核心就是把汇编指令转换成虚拟机的微指令代码!防止被时间反编译 , 增加软件逆向的时间和利益的损失减少2. 漏洞畸

11、形的文档文档本身其实只是一个数据文件, 但是当我们的解释器, 在解释文档的时候很可能就会触发漏洞变形的数据在 C/S架构的程序上 , 一般都会使用 tcp/ip 或 udp等协议进行通讯 , 在正常的数据通讯的时候不会发现什么问题, 但是当传送变形数据包的时候,C 端或者 S端就会发生错误 , 导致漏洞的产生程序本身函数的漏洞就业1. 病毒分析加壳、脱壳熟练使用 softice等调试工具;C+ 程序设计、常用算法、数据熟悉 x86 系列汇编语言。熟悉 windows API, 并有一定 C语言编程基础。对反病毒、反汇编有强烈兴趣。2. 漏洞分析丰富的网络攻防经验。熟悉漏洞利用原理。熟练使各种安

12、全工具。良好的英文阅读及理解能力。3. 保护软件开发VC或 delphi 80 x86 汇编实现虚拟机技术精通反调试常用的数据加密技术有:数据加密技术主要分为数据传输加密和数据存储加密。数据传输加密技术主要是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 对传输 中的数据流进行加密,常用的有链路加密、节点加密和端到端加密三种方式。链路加密是传输数据仅在物理层前的数据链路层进行加密,不考虑信源和信宿,它用于 保护通信节点间的数据,

13、接收方是传送路径上的各台节点机,信息在每台节点机内都要被解密和再加密,依次进行,直至到达目的地。与链路加密类似的节点加密方法 ,是在节点处采用一个与节点机相连的密码装置,密文 在该装置中被解密并被重新加密,明文不通过节点机,避免了链路加密节点处易受攻击的缺点。端到端加密是为数据从一端到另一端提供的加密方式。数据在发送端被加密,在接收端 解密,中间节点处不以明文的形式出现 。端到端加密是在应用层完成的。在端到端加密中,除报头外的的报文均以密文的形式贯穿于全部传输过程,只是在发送端和接收端才有加、解密设备,而在中间任何节点报文均不解密,因此,不需要有密码设备,同链路加密相比,可减少密码设备的数量。

14、另一方面,信息是由报头和报文组成的,报文为要传送的信息,报头为路由选择信息,由于网络传输中要涉及到路由选择,在链路加密时,报文和报头两者均须加密。而在端到端加密时,由于通道上的每一个中间节点虽不对报文解密,但为将报文传送 到目的地,必须检查路由选择信息,因此,只能加密报文,而不能对报头加密。这样就容易被某些通信分析发觉,而从中获取某些敏感信息。链路加密对用户来说比较容易,使用的密钥较少,而端到端加密比较灵活,对用户可见。在对链路加密中各节点安全状况不放心的情况下也可使用端到端加密方式。常用数据加密算法有:数据加密算法有很多种,密码算法标准化是信息化社会发展得必然趋势,是世界各国保 密通信领域得

15、一个重要课题。按照发展进程来分,经历了古典密码、对称密钥密码和公开密钥密码阶段,古典密码算法有替代加密、置换加密;对称加密算法包括和人;非对称加密算法包括、背包密码、McEliece密码、Rabin、椭圆曲线、EIigamal D-H等。 目前在数据通信中使用最普遍的算法有 DES算法、及 RSA 算法和 PGP 算法等。解密方法 :目 前的解密方法主要可分外两种:软解密和硬解密。所谓解密就是针对加密产品 ,一方面是利用软件监测分析软件在运行时向加密点写了 什么数据,从加密点返回了什么数据,然后在运行软件前先在内存驻留自编程序监视加密点,当软件向加密点写数据时,软件自动代替加密点并返回相应数据。这样,用软件模拟了加密产品。另一方面是从软件着手,寻找软件调用加密点函数部分,修改判断加密点是否存在的语句,将程序直接跳转到正常执行的部分。所谓硬解密就是针对加密产品,专门研究加密点结构与数据,而自制具有相同结构及加密点的钥匙盘或加密狗。如目前流行的一种由成都双星软件技术工作室推出的密钥盘硬解密工具KING-COPY 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁