应用脱壳的方法及装置制造方法及图纸

技术编号:15437737 阅读:172 留言:0更新日期:2017-05-26 03:45
本发明专利技术公开了一种应用脱壳的方法及装置,其中,方法包括:使用自动化脚本解析加固后的应用代码,获取加固的应用的加固厂商;根据加固厂商,获取对应的加固方案;执行加固方案对应的脱壳方案,获取脱壳后的应用。利用本方案,根据加固后应用的加固厂商,获取加固方案。根据加固方案确定脱壳方案,执行对应的不同的脱壳方案进行不同的自动化脱壳,还原为加固前的应用。同时,也使得基于应用的后续程序分析、安全检测等效率更高、效果更好。

Method and apparatus for applying shelling

The invention discloses a method and a device, application of shelling method: the use of automation script after reinforcement, the reinforcement reinforcement manufacturer to obtain application; according to the reinforcement of manufacturers, get the corresponding reinforcement scheme and reinforcement scheme implementation; shell corresponding to the shell after the application for. Using this scheme, the reinforcement scheme is obtained according to the reinforcement manufacturer after reinforcement. According to the reinforcement scheme, the shelling scheme is determined, and the corresponding different shelling schemes are carried out, and different automatic shelling is carried out, and the application is reduced to the application before reinforcement. At the same time, it also makes the application based follow-up program analysis and security testing more efficient and effective.

【技术实现步骤摘要】
应用脱壳的方法及装置
本专利技术涉及软件领域,具体涉及一种应用脱壳的方法及装置。
技术介绍
目前搭载在智能操作系统上的终端设备已经得到了广泛的应用。随着终端设备的发展,基于终端设备平台的安全问题也日益突出。越来越多的开发者在开发出基于终端设备平台的应用后,会使用如第三方平台提供的加固服务进行保护,对抗逆向工程和代码注入攻击等。但对监管部门和应用市场而言,其需要对应用的安全性进行分析和评估。而加固后的应用因为加固使得对应用进行程序行为分析等过程造成极大的困难。尤其是对于应用的静态分析更加困难。对于每一个应用进行程序分析,都必须进行人工脱壳,需要极度耗费时间和精力。因此监管部门和应用市场急需一种自动脱壳的方法,以便提高脱壳和程序分析的效率和效果。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的应用脱壳的方法及装置。根据本专利技术的一个方面,提供了一种应用脱壳的方法,包括:使用自动化脚本解析加固后的应用代码,获取加固的应用的加固厂商;根据加固厂商,获取对应的加固方案;执行加固方案对应的脱壳方案,获取脱壳后的应用。根据本专利技术的另一方面,提供了一种应用脱壳的装置,包括:解析模块,用于使用自动化脚本解析加固后的应用代码,获取加固的应用的加固厂商;获取模块,用于根据加固厂商,获取对应的加固方案;脱壳模块,用于执行加固方案对应的脱壳方案,获取脱壳后的应用。根据本专利技术的应用脱壳的方法及装置,使用自动化脚本解析加固后的应用代码,获取加固的应用的加固厂商;根据加固厂商,获取对应的加固方案;执行加固方案对应的脱壳方案,获取脱壳后的应用。本专利技术根据加固后应用的加固厂商,执行对应的不同的脱壳方案进行不同的自动化脱壳,获取到的脱壳后的应用,即还原为加固前的应用。同时,也使得基于应用的后续程序分析、安全检测等效率更高、效果更好。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的应用脱壳的方法的流程示意图;图2示出了根据本专利技术另一个实施例的应用脱壳的方法的流程示意图;图3示出了根据本专利技术一个实施例的应用脱壳的装置的功能结构示意图;图4示出了根据本专利技术一个实施例的应用脱壳的装置中脱壳模块的功能结构示意图;图5示出了根据本专利技术一个实施例的应用脱壳的装置中脱壳模块的功能结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本专利技术一个实施例的应用脱壳的方法的流程示意图,如图1所示,该方法具体包括如下步骤:步骤S101,使用自动化脚本解析加固后的应用代码,获取加固的应用的加固厂商。其中,本文中所述的应用可以是移动应用,例如IOS应用,安卓应用,也可以是非移动应用,例如windows系统应用等。使用自动化脚本解析已经加固后的应用代码,从中可以查找到加固厂商的标识。不同的加固厂商均具有各自不同的标识。根据标识可以确定具体的加固厂商。如可以预先设置列表,记录不同标识与加固厂商的对应关系。具体的可以记录为如加固厂商娜迦,标识libchaosvmp.so、libddog.so、libfdog.so;加固厂商爱加密,标识libexec.so、libexecmain.so;加固厂商梆梆,标识libsecexe.so、libsecmain.so、libDexHelper.so;加固厂商360,标识libprotectClass.so、libjiagu.so;加固厂商通付盾,标识libegis.so;加固厂商网秦,标识libnqshield.so;加固厂商百度,标识libbaiduprotect.so等。查找到加固厂商的标识后,根据标识与加固厂商的对应关系,获取对应的加固的应用的加固厂商。步骤S102,根据加固厂商,获取对应的加固方案。加固方案可以分为整体加固方案和非整体加固方案。整体加固方案为将原应用加密处理,在其上添加壳文件,并将解密脱壳的代码添加到壳文件中。非整体加固方案为应用中的各部分分别进行加固,而不是将应用整体的进行加固。通常情况下,加固厂商所采用的加固方案一般都是固定的。通过如预设列表的方式,在列表中记录加固厂商及其采用的加固方案。根据具体的加固厂商,从预设列表中可以获取其对应的加固方案。步骤S103,执行加固方案对应的脱壳方案,获取脱壳后的应用。不同的加固方案需要对应不同的脱壳方案。当加固方案为整体加固方案时,脱壳方案为整体脱壳方案;加固方案为非整体加固方案时,脱壳方案为重组脱壳方案。根据加固方案,确定具体的脱壳方案后,执行该脱壳方案,可以获取到脱壳后的应用。即对加固方案进行脱壳,还原为加固前的应用。根据本专利技术的应用脱壳的方法,使用自动化脚本解析加固后的应用代码,获取加固的应用的加固厂商;根据加固厂商,获取对应的加固方案;执行加固方案对应的脱壳方案,获取脱壳后的应用。本专利技术根据加固后应用的加固厂商,获取加固方案。根据加固方案确定脱壳方案,执行对应的不同的脱壳方案进行不同的自动化脱壳,获取到的脱壳后的应用,即还原为加固前的应用。同时,也使得基于应用的后续程序分析、安全检测等效率更高、效果更好。图2示出了根据本专利技术另一个实施例的应用脱壳的方法的流程示意图,如图2所示,该方法具体包括如下步骤:步骤S201,使用自动化脚本解析加固后的应用代码,获取加固的应用的加固厂商。步骤S202,根据加固厂商,获取对应的加固方案。以上步骤可参考图1实施例中步骤S101-S102,在此不再赘述。步骤S203,根据加固方案确定脱壳方案。不同的加固方案需要对应不同的脱壳方案。根据加固方案确定对应的脱壳方案。当加固方案为整体加固方案时,脱壳方案为整体脱壳方案;加固方案为非整体加固方案时,脱壳方案为重组脱壳方案。当确定的脱壳方案为整体脱壳方案时,执行步骤S204-S206;当确定的脱壳方案为重组脱壳方案时,执行步骤S207-S214。步骤S204,安装并启动加固后的应用。步骤S205,修改整体加固方案中的解密脱壳的代码,获取解密脱壳后的应用在内存中的地址及大小。步骤S206,从内存中提取解密脱壳后的应用,存储为脱壳后的应用。整体加固方案后的应用在运行时,将添加的壳文件作为应用运行的入口点。首先运行壳文件,在其运行过程中加载壳文件中的解密脱壳的代码。执行加载的解密脱壳的代码,解密并释放出原应用至内存空间中。而后动态加载原应用,最终执行原应用的执行逻辑。针对整体加固方案本身的脱壳特征,制定整体脱壳方案。具体的执行过程如下:首先安装加固后的应用,启动所安装的应用。在启动该应用后,不需再附加其他任何调试器,运行由本文档来自技高网...
应用脱壳的方法及装置

【技术保护点】
一种应用脱壳的方法,其特征在于,包括:使用自动化脚本解析加固后的应用代码,获取所述加固的应用的加固厂商;根据所述加固厂商,获取对应的加固方案;执行所述加固方案对应的脱壳方案,获取脱壳后的应用。

【技术特征摘要】
1.一种应用脱壳的方法,其特征在于,包括:使用自动化脚本解析加固后的应用代码,获取所述加固的应用的加固厂商;根据所述加固厂商,获取对应的加固方案;执行所述加固方案对应的脱壳方案,获取脱壳后的应用。2.根据权利要求1所述的方法,其特征在于,所述脱壳方案为整体脱壳方案或重组脱壳方案。3.根据权利要求2所述的方法,其特征在于,所述加固方案为整体加固方案,所述脱壳方案为整体脱壳方案;所述执行所述加固方案对应的脱壳方案,获取脱壳后的应用进一步包括:安装并启动所述加固后的应用;修改整体加固方案的解密脱壳的代码,获取解密脱壳后的应用在内存中的地址及大小;从内存中提取所述解密脱壳后的应用,存储为脱壳后的应用。4.根据权利要求2所述的方法,其特征在于,所述加固方案为非整体加固方案,所述脱壳方案为重组脱壳方案;所述执行所述加固方案对应的脱壳方案,获取脱壳后的应用进一步包括:读取所述应用的代码,按照所述应用的文件格式划分和切割所述应用的代码;其中,将所述应用的代码划分和切割为头文件、数据文件、与所述数据文件一一对应的数据索引区;动态模拟应用运行,获取应用运行时所调用的类名称;依次根据所述类名称,从所述数据索引区中找到所述类对应的数据项的地址;根据所述地址从所述数据文件中提取所述类对应的数据项;将所述数据项重构在预设的第二数据文件中;修改所述数据索引区中该数据项的地址,将所述地址修改为该数据项在第二数据文件中的地址;重复执...

【专利技术属性】
技术研发人员:汪德嘉华保健韩洋田凯杨圣元宋超
申请(专利权)人:江苏通付盾科技有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1