1.一种基于art模式的脱壳方法,其特征在于,包括:
在利用转换程序将dex字节码转换成oat格式之前,确定当前所述转换程序的目标存储位置;
从所述目标存储位置上获取相应的解密后加固程序;
获取所述解密后加固程序中相应的所有dex文件名,从所述所有dex文件名中确定出目标dex文件名,并提取所述目标dex文件名的特征值;
从所述解密后加固程序的所有dex文件中确定出与所述特征值对应的dex文件,得到目标dex文件;
获取所述目标dex文件的文件参数;
根据所述文件参数从内存中将所述目标dex文件中的相应数据dump下来,以完成脱壳操作。
2.根据权利要求1所述的基于art模式的脱壳方法,其特征在于,所述获取所述解密后加固程序中相应的所有dex文件名的步骤,包括:
获取预设的dex文件解析加载指针,然后调用相应的dex文件解析函数,以获取所述解密后加固程序中相应的所有dex文件名。
3.根据权利要求2所述的基于art模式的脱壳方法,其特征在于,所述dex文件解析函数包括DexFile::GetLocation。
4.根据权利要求1至3任意一项所述的基于art模式的脱壳方法,其特征在于,所述在利用转换程序将dex字节码转换成oat格式之前,确定当前所述转换程序的目标存储位置的步骤,包括:
在Android 4.4及以上版本的源码中,查找dex2oat模块;
在所述dex2oat模块中的转换程序将dex字节码转换成oat格式之前,确定当前所述转换程序的目标存储位置。
5.根据权利要求4所述的基于art模式的脱壳方法,其特征在于,所述获取所述解密后加固程序中相应的所有dex文件名,从所述所有dex文件名中确定出目标dex文件名,并提取所述目标dex文件名的特征值的步骤,包括:
调用Android的Log日志函数,在DDMS打印出获取到的所述解密后加固程序中相应的所有dex文件名;
从所述所有dex文件名中确定出目标dex文件名,并提取所述目标dex文件名的特征值。
6.根据权利要求4所述的基于art模式的脱壳方法,其特征在于,所述获取所述目标dex文件的文件参数的步骤,包括:
获取所述目标dex文件的长度和所述目标dex文件在内存中的起始地址。
7.根据权利要求6所述的基于art模式的脱壳方法,其特征在于,所述根据所述文件参数从内存中将所述目标dex文件中的相应数据dump下来,以完成脱壳操作的步骤,包括:
根据获取到的所述目标dex文件的长度和所述目标dex文件在内存中的起始地址,调用open函数将该dex文件中的相应数据从所述内存中dump下来,以完成脱壳操作。
8.一种基于art模式的脱壳系统,其特征在于,包括:
目标存储位置确定模块,用于在利用转换程序将dex字节码转换成oat格式之前,确定当前所述转换程序的目标存储位置;
解密后加固程序获取模块,用于从所述目标存储位置上获取相应的解密后加固程序;
特征值获取模块,用于获取所述解密后加固程序中相应的所有dex文件名,从所述所有dex文件名中确定出目标dex文件名,并提取所述目标dex文件名的特征值;
目标dex文件确定模块,用于从所述解密后加固程序的所有dex文件中确定出与所述特征值对应的dex文件,得到目标dex文件;
文件参数获取模块,用于获取所述目标dex文件的文件参数;
脱壳模块,用于根据所述文件参数从内存中将所述目标dex文件中的相应数据dump下来,以完成脱壳操作。
9.一种基于art模式的脱壳设备,其特征在于,包括存储器和处理器,其中,所述处理器用于执行所述存储器中存储的计算机程序以实现如权利要求1至7任意一项所述基于art模式的脱壳方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于art模式的脱壳方法的步骤。