[发明专利]一种基于PE Loader的软件加壳保护方法无效
申请号: | 201010280090.6 | 申请日: | 2010-09-10 |
公开(公告)号: | CN101964040A | 公开(公告)日: | 2011-02-02 |
发明(设计)人: | 孙钦东;王倩;马哲 | 申请(专利权)人: | 西安理工大学 |
主分类号: | G06F21/22 | 分类号: | G06F21/22 |
代理公司: | 西安弘理专利事务所 61214 | 代理人: | 罗笛 |
地址: | 710048*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pe loader 软件 保护 方法 | ||
技术领域
本发明属于计算机软件程序保护技术领域,针对软件被非法篡改和破解问题,具体涉及一种基于PE Loader的软件加壳保护方法。
背景技术
软件保护是软件开发中一个不可忽视的环节,由于软件开发后要面对众多逆向分析人员的研究,要给发布的软件加一层保护壳几乎成了保护软件的一个必要步骤。现有的加壳保护技术一般是把可执行文件(这里主要指Win32平台的PE文件)的入口点(Entry Point)指向壳的shellcode,并把原来的可执行文件压缩或者加密,然后把壳的shellcode作为目标程序一个新的段添加进去,运行时壳shellcode首先执行,在内存中解密或者解压,解密或者解压完成后跳到被保护程序的原始入口点(OEP),执行被保护程序。因此,在现有的传统壳保护下,攻击者很容易能找到被保护程序的原始入口点(OEP),这时壳已经把被保护的程序解压缩,解密,攻击者就可以通过内存中的明文数据,分析甚至还原目标程序,从而达到逆向的目的。
发明内容
本发明的目的是提供一种基于PE Loader的软件加壳保护方法,解决现有技术中的传统加壳保护后的软件易于被攻击者破解及非法篡改的问题。
本发明所采用的技术方案是,一种基于PE Loader的软件加壳保护方法,该方法按照以下步骤实施:
步骤1、将壳模板映射到内存中,模拟Windows的PE加载器对壳模板进行基址重定位,计算出壳模板入口点所在区段的RVA和该区段的大小,用计算出的区段的RVA和该区段的大小值作为参数,通过SHA算法计算出的散列值作为AES加密算法的密钥;
步骤2、将被保护软件映射到内存中并利用上步计算出的密钥,将被保护的软件用AES加密算法加密;
步骤3、将加密过的数据添加到壳模板的Reloc段中;
步骤4、处理将要保护软件中的特殊资源以及其附加数据提取,分别附加到壳模板文件的结尾处,并修改壳模板的PE结构中关于特殊资源的相应数据项;
步骤5、将修改好的壳模板从内存中转存到磁盘上,作为被保护后的软件即成。
本发明的基于PE Loader的软件加壳保护方法,其特征还在于:所述步骤4中,要保护软件中的特殊资源以及其附加数据提取,选用特殊资源的新位置以及大小。
本发明的有益效果是,将被保护的程序感染到加密壳的软件保护架构,加密壳具有PEloader功能,将被保护软件在内存中加载并执行,这种加密软件保护壳的结构大大增加了攻击者在破解或者非法篡改软件的难度,甚至无法找到真正的程序的入口点,能有效的防止逆向分析人员对软件的反汇编破解及非法篡改,大大增加了软件的安全性。
附图说明
图1是未加任何保护的PE文件操作窗口示意图;
图2是将保护的PE文件加密放入壳模板的Reloc段后操作窗口示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明的方法,将要进行加壳保护的软件先经过AES加密,将加密后的内容放入外层的壳模板中的Reloc段中,加密的密钥的获取是由根据壳模板中的代码段数据通过SHA算法动态获得的,若逆向分析人员调试或者修改了壳模板代码段数据,则造成程序解密失败,不能正常执行,从而有效的达到保护软件的目的。
本发明方法按照以下步骤实施:
步骤1、将壳模板映射到内存中,模拟Windows的PE加载器对壳模板进行基址重定位,计算出壳模板入口点所在区段的RVA(Relative Virtual Addresses)和此区段的大小,用计算出的区段的RVA和区段的大小(两个)值作为参数,通过SHA算法计算出的散列值作为AES加密算法的密钥;
步骤2、将被保护软件映射到内存中并利用计算出的密钥,将被保护的软件用AES加密算法加密;
步骤3、将加密过的数据添加到壳模板的Reloc段中,如图2所示;
步骤4、处理将要保护软件中的特殊资源以及其附加数据提取,如特殊资源的新位置以及大小,分别附加到壳模板文件的结尾处,并修改壳模板的PE结构中关于特殊资源的相应数据项;
步骤5、将修改好的壳模板从内存中转存到磁盘上,作为被保护后的软件,从而完成软件的保护。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010280090.6/2.html,转载请声明来源钻瓜专利网。