逆向工程-软件加壳脱壳技术的研究

逆向工程-软件加壳脱壳技术的研究

ID:22291295

大小:114.64 KB

页数:12页

时间:2018-10-28

逆向工程-软件加壳脱壳技术的研究_第1页
逆向工程-软件加壳脱壳技术的研究_第2页
逆向工程-软件加壳脱壳技术的研究_第3页
逆向工程-软件加壳脱壳技术的研究_第4页
逆向工程-软件加壳脱壳技术的研究_第5页
资源描述:

《逆向工程-软件加壳脱壳技术的研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、逆向工程-软件加壳脱壳技术的研究1引言1.1课题背景随着计算机技术的发展,面向各个应用领域的的软件不断的发展,各种软件应运而生。但是无论哪种优秀的软件,其内部的核心技术往往是该软件的命脉,一旦被他人窃取或者非法复制,由此受到的经济损失都是巨大的。共享软件是软件行业H前来说世界上比较热门的话题,国内亦然。成千上万的程序员以极大的热情投入到软件行业,都憧憬着用辛勤的劳动来获得丰厚的回报,但实际上并不是这样。其中最大的原因就是共享软件被破解。软件防破解一直是计算机安全领域的一门重要课题,软件加密技术是软件保护的重要手段,其中的许多加密措施能给非法拷贝或者非法使用造成障碍,在某种程度上增加了

2、破解的难度,提高软件的安全性。0前的防破解技术主要冇硬件加密和软件加密两种加密方式,硬件加密依靠存储在硬件中的数据信息进行软件保护,这些硬件一般连接在计算机的并口、USB接口上,通过软件的特殊指令进行读取和校验,无法轻易进行复制,保护性能好,但是存在造价高的缺点,一般用于大型的商业软件;软件加密依靠各种复杂的加密算法来增加破解的难度,纯软件加密因为费用低廉而蓬勃发展,但是这使得程序验证耍把大量的精力放在与软件功能无关的反破解上,一般用于共享软件的保护。mm加壳其实就是利用特殊的算法,对EXE、DLL文件的代码和资源进行压缩。类似于EINZIP的效果,但是这个压缩过的文件可以独立运行,

3、解压过程也完全隐蔽,都在内存中完成。解压原理是加壳工具在文件头里加了一段指令,告诉CPU,怎么解压自己。加壳虽然增加了CPU的工作负枳,但是减少了硬盘读写吋间,实际应用时加壳以后的应用程序运行速度更快。l3jl4j加壳过的程序可以直接运行,但是不能查看源代码,要经过脱壳才可以查看源代码。当被加壳的程序被运行时,外壳程序会先被执行,然后由这个外壳程序负责将用户原有的程序在内存中解压,并把控制权交给脱壳后的真正程序。这些操作自动完成用户不知道不需耍知道壳程序是如何运行的。一般来说,加壳程序和未加壳程序的运行结果会是一样的。[5][6]使用壳的好处是可以很好的防止静态分析、文件patch。

4、充分利用加壳软件,程序员可以将更多的精力放到程序的编写中去,一些专用的外壳工具还加入了很强的反跟踪技术。加壳己经成为许多软件保护的第一道屏障。l7H8]1.2加壳技术概况加壳软件按照其加壳的S的和作用,可以分为两种:一种是压缩(Packers),另一种是保护(Protectors)。压缩这类壳的主要目的是减小程序的体积,如ASPack、UPX、PECompact等。另一类是保护程序,用上了各种反跟踪技术保护程序不会被调试,脱壳等,其加壳以后的体积大小并不是其考虑的主要因素,如:ASProtect,Armadillo^Themida等。随着加壳技术的发展,这W炎软件之间的界限越来越模糊

5、,很多加壳软件除了具有较强的压缩功能,同时也有较强的保护性能。[11[91随着加壳技术的发展,脱壳技术也在快速发展,很多加壳软件在经历了众多高手们在一段时间的研宂之后都能找到手工脱壳的方法,对于一些加壳工具还有专门的脱壳机來完成脱壳,这也促进了加壳软件的进一步发展。现在加壳发展的一个趋势是虚拟机保护技术,虚拟机设计出一套不同意普通x86的虚拟处理其和虚拟指令集,要保护的关键代码用虚拟指令利用虚拟处理器来解释执行,想要破解它需要先理解它的虚拟指令集,普通用于x86的调试和反编译工具都无法在上边使用,利用虚拟机保护后,能大大提高破解难度。[,OJU1J1.3课题研究内容使用加壳技术能很好

6、的保护软件,给软件盗版增加难度,不需要程序员话费过多的精力在软件防盗版上,可以使程序员把更多的精力放在软件功能的开发上,做出更多更好用、功能更强大的软件。而盗版难度的增加时盗版数量减少,使程序员收入增加,让程序员更有信心做好自己的软件,促使软件业的更好发展。课题研宄的主耍内容有:深入分析WindowsPE(PortableExecutabl,可移植可执行)文件格式,了解软件加壳保护的方式,并用程序实现一个可以给程序加壳的加壳软件。2关于软件保护2.1软件保护的意义计算机软件是软件研发人员智力劳动的具体体现。计算机软件的开发过程有以下三个步骤:功能确定、逻辑设计和编码。软件研发人员必须

7、具有丰富的计算机专业知识和编程能力,抽象逻辑思维,熟悉计算机软件、硬件,掌握和使用某一些常用的编程语言。研发具有一定实用价值的软件,不仅要花费大量的吋间,人力物力,还要具备丰富的经验和专、Ik技能。但是从另一方面来说,计算机软件的复制却相当容易,其成木几乎为零,因此假如人们大量使用未经授权的软件,软件开发者的收入就会大大降低,这将严重影响软件幵发者继续幵发的热情积极性,计算机软件开发人员的成就感也将遭受严重打击,从长远来讲,这将不利于软件行业的发展,并最终

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

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

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