当前位置: 首页 > 专利查询>四川大学专利>正文

一种通用的DEX自动脱壳方法与系统技术方案

技术编号:17363938 阅读:547 留言:0更新日期:2018-02-28 14:12
本发明专利技术涉及Android应用加固保护技术领域和DEX脱壳技术领域,旨在提供一种通用的DEX文件自动脱壳方法与系统。该技术采用了将脱壳代码插入到Android Dalvik虚拟机的portable解释器中,具体内容包括:利用对比分析,比较AndroidManifest.xml配置文件中的所有类和反编译得到的所有类,判断应用是否加固,并通过同源性分析识别出该应用使用的加固服务;以应用的MainActivity作为DEX脱壳开始的标志,使用模拟运行恢复出应用真正的字节码,将这些恢复出来的真正的数据提取出来,最后把这些数据重组成一个新的DEX文件,重组过程中还涉及到相应指针的修改。该系统通用性好,能够绕过所有的Anti‑debugging保护技术,脱壳过程中不需要人工分析,也不需要了解加固服务的加固策略,都可以提取出加固应用的原始DEX文件。本发明专利技术为加固应用的DEX自动脱壳提供了新的解决方案。

A universal method and system for automatic DEX shelling

The invention relates to the field of Android application strengthening and protection technology and the field of DEX shelling, which aims to provide a universal method and system for automatic DEX file shelling. The technology uses the shell code into the Android Dalvik virtual machine portable interpreter, the specific contents include: the use of comparative analysis, comparison of the AndroidManifest.xml configuration file in all classes and get all kinds of decompilation, determine whether the application of reinforcement, and the homology analysis to identify the application of reinforcement services; application MainActivity DEX began as a sign of shelling, using simulation run recovery application of true byte code, the recovered real data is extracted, and finally put these data into a new DEX file, the restructuring process also involves the corresponding pointer modification. This system has good versatility, can bypass the Anti debugging protection technology, artificial analysis without shelling process, also do not need to understand the strategy of reinforcement reinforcement services, can be extracted from the original DEX file reinforcement application. The invention provides a new solution for the reinforcement of the application of DEX automatic shelling.

【技术实现步骤摘要】
一种通用的DEX自动脱壳方法与系统
本专利技术涉及Android应用加固
和DEX文件脱壳
,尤其涉及一种通用的DEX自动脱壳方法与系统。
技术介绍
从2008年Android系统诞生以来,便迅速占领了智能手机操作系统的市场,成为当今最受欢迎的手机操作系统。由于其本身的开源性,受到了安全界的广泛关注。相比于封闭的IOS操作系统,Android系统的安全问题更容易被发现和补救,因此安全性也更值得信赖。然而随着操作系统的不断发展,Android应用的开发也盛况空前,种类之多,涉及到人们生活的方方面面。在各种应用给我们带来便利的同时,安全问题也频频出现,许多恶意应用如木马等,也越来越多。而且Android系统的碎片化问题严重,不同厂商有自己定制的系统固件和自己的应用市场,不像IOS,只有苹果一家公司和唯一的APPstore。Android除了GooglePlay以外,还有其他的应用市场,这也给恶意应用以可趁之机。Android应用同时还支持web下载,这样使得恶意应用传播方式更多样化。虽然也有很多相应的恶意应用检测工具和相关研究,但是还是不能做到对于恶意应用的全面检测。特别是对本文档来自技高网...
一种通用的DEX自动脱壳方法与系统

【技术保护点】
一种通用的DEX自动脱壳方法,其特征在于,所述方法包括如下步骤:A、通过对Android DEX文件自动脱壳技术的研究,找到了一个通用的零知识脱壳方法,在Dalvik虚拟机的解释器中进行脱壳操作;B、加固识别对应用是否使用加固服务进行判断与识别;C、使用模拟运行恢复出DEX文件真正的字节码;D、dump出dex或者odex文件的所有数据;E、最后进行dex或者odex文件的重组和相应指针的修改。

【技术特征摘要】
1.一种通用的DEX自动脱壳方法,其特征在于,所述方法包括如下步骤:A、通过对AndroidDEX文件自动脱壳技术的研究,找到了一个通用的零知识脱壳方法,在Dalvik虚拟机的解释器中进行脱壳操作;B、加固识别对应用是否使用加固服务进行判断与识别;C、使用模拟运行恢复出DEX文件真正的字节码;D、dump出dex或者odex文件的所有数据;E、最后进行dex或者odex文件的重组和相应指针的修改。2.根据权利要求1所述的一种通用的DEX自动脱壳方法,其特征在于,所述的步骤A进一步包括如下步骤:A1、将AndroidDalvik虚拟机的解释器指定为portable解释器,让程序运行时所有方法都使用同一个解释器解释执行;A2、找到portable解释器中解释执行应用程序方法的函数:dvmInterpretPortable(),在该函数中插入DEX文件自动脱壳代码;A3、以应用程序的MainActivity是否启动作为DEX文件脱壳开始的标志,如果MainActivity启动了,就开始脱壳,反之则不进行脱壳操作。3.根据权利要求2所述的一种通用的DEX自动脱壳方法,其特征在于,步骤A1中所述的解释器指定为portable解释器具体是指:AndroidDalvik虚拟机中有三种解释器,分别为portable解释器、fast解释器和JIT解释器。其中portable解释器是C语言实现的,可以用在不同的设备上,而其余两种是汇编实现的,并且是根据相应的设备进行优化过的,移植到其他设备上的性能差,因此该工具选择portable解释器插入DEX文件脱壳代码,可以应用于不同的设备上。指定只使用这一个解释器也使得应用程序的所有方法的执行都会经过该解释器,以便之后的脱壳开始标志的定位。4.根据权利要求2所述的一种通用的DEX自动脱壳方法,其特征在于,步骤A3中所述的脱壳开始的标志具体是指:无论程序怎么加固,始终都会在解释器中执行MainActivity中的方法,因为程序运行的入口函数为MainActivity的onCreate()函数,所以选择应用程序的MainActivity是否启动作为DEX文件脱壳开始的标志。这时的DEX文件是被加固服务解密释放到内存中的,只是可能存在部分数据没恢复的情况。5.根据权利要求1所述的一种通用的DEX自动脱壳方法,其特征在于,所述的步骤B进一步包括如下步骤:B1、解析出加固应用中AndroidManifest.xml配置文件中所有的类;B2、反编译加固应用,得到反编译出来的所有类;B3、将B1、B2中得到的类进行对比,判断应用是否加固;B4、使用同源性分析识别加固服务。6.根据权利要求5所述的一种通用的DEX自动脱壳方法,其特征在于,步骤B3中所述的加固判断具体是指:如果B1中的类包括B2中的类,而B2中的类只是B1中的类的一小部分,那么就判定应用是加固应...

【专利技术属性】
技术研发人员:刘亮蒋钟庆刘露平
申请(专利权)人:四川大学
类型:发明
国别省市:四川,51

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

1