电子科技大学

基于IAT加密的加壳程序研究

作者:
秦杰

关键词:
软件保护软件开发逆向分析软件加壳

摘要:
软件保护是软件开发中一个不可忽视的环节,由于软件发布后要面对众多逆向分析人员的研究,给要发布的软件加一层壳现在几乎成了保护软件的一个必要的步骤,加壳软件的目的就是为软件穿上一层“盔甲”以阻碍对其逆向分析,随着各种逆向分析工具和技术的不断发展,壳对抗逆向分析的能力就直接反映出了它的保护强度。 现有的壳主要是用于保护Win32环境下的可执行程序、动态链接库、驱动程序等PE格式的文件,由于PE文件头中包含了很多重要的信息,为了尽量减少暴露在逆向分析人员面前的信息,加壳程序通常需要生成自己的PE文件头,并模拟操作系统对被保护的程序进行加载。逆向分析人员在对加壳保护后的程序进行分析时,会采用各种动态、静态的逆向分析工具,壳里就需要加入一些反逆向的手段来给他们增加一定的难度。壳除了对软件进行保护外,对自身也需要隐藏,由于常见的壳识别工具采用的是特征码检测的方式,所以在壳中加入多态变形技术来对抗特征码检测也是加壳程序编写过程中的一个重要步骤。 本文首先论述了软件保护技术的发展及对软件进行加壳的重要性,阐明了本研究课题的特点及实用价值;然后,对加壳程序开发所需的基础知识及关键技术需要的理论进行了全面的介绍;壳的核心技术是反调试,它直接影响到壳的保护强度,强度高的壳通常是因为采用了一些未公开的私有的反调试手段,本文接下来通过逆向跟踪几款知名的保护壳后,揭露了它们所用的反调试手段,对它们各自的优缺点进行了总结并给出了一些建议,在壳的IAT加密部分提出了完全模拟系统API的思想;最后,通过对BPE32多态变形引擎源码的详细研究,构建出一个能为壳所用的微型变形引擎框架并实现了相关部分代码,并对对抗多态变形常用的启发式代码仿真检测技术进行了介绍,总结了相应的突破方法和部分代码。 本文分析知名壳的反调试后整理出来的函数代码,可以直接用于加壳程序开发,在实际应用中可以根据具体情况灵活选择运用;实现的多态变形引擎框架经过扩充后也可以用在实际开发中。

在线下载

相关文章:
在线客服:
对外合作:
联系方式:400-6379-560
投诉建议:feedback@hanspub.org
客服号

人工客服,优惠资讯,稿件咨询
公众号

科技前沿与学术知识分享