【技术实现步骤摘要】
一种Android应用程序的描述和匹配方法
本专利技术主要涉及Android恶意APK检测和归属领域,具体是一种Android应用程序(Androidapplicationpackage,APK)的描述和匹配方法。技术背景移动互联网的发展和移动智能设备的普及,带动了移动应用程序的火爆,也同时滋生了大量移动恶意应用程序和应用攻击方法,损害了移动互联网的资源和效率,侵犯了移动用户的数据安全和隐私。目前Android恶意代码的检测方法,根据检测流程和特征描述方法不同,大致可分为静态特征检测和动态行为检测两种。常用的APK静态特征包括权限声明、代码哈希、数据依赖关系、调用关系、程序组件等,检测效率比较高的是对数据依赖关系和调用关系的分析。Android应用程序对于敏感数据、系统资源、设备状态的使用和修改,都是通过调用相应的系统应用程序编程接口(ApplicationProgrammingInterface,API)API来实现的。不同代码范围和层次的API使用情况,反映了相应模块的代码功能,更能够大致推断出该模块在运行过程中的可能行为属性和表现形式。虽然基于系统API的调用情况已经被不同的研究者所尝试和采用,但现存方法只是针对单个API的简单调用过程和调用序列,没有结合程序自身的组织结构和代码模块之间的隶属关系,缺乏从程序结构的层面、从程序功能实现的角度来分析系统API调用情况,将API的调用情况结合代码层级结构进行分析,有助于对应用程序大致的功能进行推断,而应用程序同样的功能实现可能会使用不同的API调用,这样在API层面的细粒度比较方法出现的误差会比较大。 ...
【技术保护点】
一种Android应用程序的描述和匹配方法,其特征在于包括以下步骤:1)对Android应用程序APK进行解压缩得到AndroidManifest.xml文件和classes.dex文件;2)从AndroidManifest.xml文件中获取应用程序的权限声明列表;3)反编译classes.dex文件提取应用程序的程序结构,分析得到APK中各函数和类的信息及其相关调用关系;4)用PScout将相关调用关系中的应用程序编程接口API调用映射到对应的权限中,并以权限被需求的使用次数来设定此权限的权重;5)忽略步骤(2)中有声明的却并未出现在步骤(4)的分析结果中的权限,忽略步骤(4)中有的却并未出现在步骤(2)的权限声明中的API调用;6)根据步骤(3)中提取出的应用程序的程序结构,构造“应用‑类‑函数”的三层实例描述树,用以描述各类和函数的权限需求关系;7)根据APK的三层实例描述树,计算APK的相似度,并以此达到APK的归属分类目的。
【技术特征摘要】
1.一种Android应用程序的描述和匹配方法,其特征在于包括以下步骤:1)对Android应用程序APK进行解压缩得到AndroidManifest.xml文件和classes.dex文件;2)从AndroidManifest.xml文件中获取应用程序的权限声明列表;3)反编译classes.dex文件提取应用程序的程序结构,分析得到APK中各函数和类的信息及其相关调用关系;4)用PScout将相关调用关系中的应用程序编程接口API调用映射到对应的权限中,并以权限被需求的使用次数来设定此权限的权重;5)忽略步骤(2)中有声明的却并未出现在步骤(4)的分析结果中的权限,忽略步骤(4)中有的却并未出现在步骤(2)的权限声明中的API调用;6)根据步骤(3)中提取出的应用程序的程序结构,构造“应用-类-函数”的三层实例描述树,用以描述各类和函数的权限需求关系;7)根据APK的三层实例描述树,计算APK的相似度,并以此达到APK的归属分类目的;所述步骤(3)中,读取APK在Dalvik虚拟机上运行的文件字节码,即classes.dex文件,按照字节码结构反编译classes.dex文件生成8个txt文档用以描述应用程序的详细信息,文档包括该APK包含的所有对象类、函数、权限以及它们之间的各种隶属和需要关系,生成的8个txt文档所含内容如下:meta.txt:包含当前所写反编译程序的版本号、当前反编译的APK的签名;cstrs.txt:包含类的编号classID、在此类中定义的字符串;funcMd5s.txt:包含函数的编号classID、此函数调用的API个数、此函数的MD5值;classes.txt:包括类的编号classID、父类名superclass、类名className、调用的API个数、此类中调用API的函数的个数、函数中调用的API个数的最大值;classFuncs.txt:包括类的编号classID、函数的编号funcID;funcs.txt:包括函数编号funcID、函数名称funcName、参数个数及类型parameter、返回值类型returnType;allcalls.txt:包括函数编号funcID、调用的API编号;apis.txt:包括API的编号apiID、API的名字apiNAme、调用此API的方法的参数parameter、其返回值类型returnType以及对应的所需的权限名称。2.如权利要求1中所述的Android应用程序的描述和匹配方法,其特征在于:所述步骤(5)中,对于从AndroidManifest.xml中提取的任意一个权限声明,如果应用程序中没有API映射到此权限,则将此权限忽略;如果应用程序中调用的某API映射到的权限没有在此文件中出现,则将此API忽略。3.如权利要求1所述的...
【专利技术属性】
技术研发人员:魏松杰,杨铃,吴高翔,周紫阳,
申请(专利权)人:南京理工大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。