The invention discloses a heavy package detection method of Android application of Java file directory structure based on, for each known APK applications, Java class files with a specific directory structure through decompression, the directory structure can be seen as a tree structure, then each Java package name and class name Java hash the operation will be improved, the hash value as node signature, using depth first traversal algorithm node connected to get the final application signature signature. The signatures of all known applications are computed and a signature library is formed. For the APK application to be detected, the signature is obtained in a similar way, and the edit distance and similarity of the signature in the signature and signature library are calculated, and the detection results are obtained. The invention can effectively avoid the influence of the code obfuscation technology and the insertion of the malicious code, thereby having better robustness and accuracy.
【技术实现步骤摘要】
一种基于Java文件目录结构的Android应用重打包检测方法
本专利技术属于Android应用重打包检测
,尤其涉及一种基于Java文件目录结构的Android应用重打包检测方法。
技术介绍
目前Android应用重打包检测方法主要有基于代码或者行为的检测方法。基于代码或者行为的检测方法采用反编译工具或者动态行为分析工具得到代码文件或应用行为序列,然后进行预处理得到序列特征,通过计算序列特征的距离得到应用相似性的量化数据。该方法可以检测应用代码的改变,解决包括代码重用、剽窃和重打包等问题,但是序列特征的提取容易受到代码混淆技术的影响,因而在针对实际问题进行分析时具有一定的局限性。
技术实现思路
专利技术目的:为解决现有技术中存在的问题,本专利技术提出一种能有效避免代码混淆技术以及恶意代码的插入带来的影响的基于Java文件目录结构的Android应用重打包检测方法。技术方案:一种基于Java文件目录结构的Android应用重打包检测方法,包括如下步骤:(1)建立应用签名库:对于已知的每一个APK应用程序进行处理,得到应用签名,并建立应用签名库,具体过程为:1.1 ...
【技术保护点】
一种基于Java文件目录结构的Android应用重打包检测方法,其特征在于,包括如下步骤:(1)建立应用签名库:对于已知的每一个APK应用程序进行处理,得到应用签名,并建立应用签名库,具体过程为:1.1对APK应用程序进行解压缩等处理后得到具有特定目录结构的Java类文件;1.2对其中每一个Java的包名和Java类名进行改进的哈希运算,将所得字符串作为节点签名,构成以应用签名为节点的树形结构;1.3对步骤1.2中得到的树形结构进行深度优先遍历,将遍历过的节点签名进行连接,得到最后的应用签名,建立应用签名库;(2)检测应用程序,得到检测结果:对于待检测APK应用程序,使用步 ...
【技术特征摘要】
1.一种基于Java文件目录结构的Android应用重打包检测方法,其特征在于,包括如下步骤:(1)建立应用签名库:对于已知的每一个APK应用程序进行处理,得到应用签名,并建立应用签名库,具体过程为:1.1对APK应用程序进行解压缩等处理后得到具有特定目录结构的Java类文件;1.2对其中每一个Java的包名和Java类名进行改进的哈希运算,将所得字符串作为节点签名,构成以应用签名为节点的树形结构;1.3对步骤1.2中得到的树形结构进行深度优先遍历,将遍历过的节点签名进行连接,得到最后的应用签名,建立应用签名库;(2)检测应用程序,得到检测结果:对于待检测APK应用程序,使用步骤(1)中的方法计算出应用签名后,再计算待检测应用签名和应用签名库中应用签名之间的编辑距离以及应用相似度,将所得应用相似度与阈值进行比较,判断是否为应用签名库中APK应用程序的重打包应用,得到检测结果;如果所得应用相似度大于阈值,则为APK应用程序的重打包应用。2.如权利要求1所述的基于Java文件目录结构的Android应用重打包检测方法,其特征在于,所述步骤1.1中对APK应用程序进行解压缩等处理后得到具有特定目录结构的Java类文件,具体为:将APK应用程序后缀名改为zip,然后解压缩,得到可执行字节码文件classe...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。