一种基于安卓设备的apk静态分析方法和设备技术

技术编号:27974629 阅读:15 留言:0更新日期:2021-04-06 14:08
本发明专利技术属于计算机技术领域,具体涉及一种基于安卓设备的apk静态分析方法和设备。本申请实施例提供的一种基于安卓设备的apk静态分析方法和设备,使用安卓ndk工具在安卓设备上构建配置Android.mk编译工程,编码实现PC电脑端工具相应功能,使得PC电脑端工具能够移植至安卓设备上实现相应功能,解决了传统静态分析大多采用PC端后台服务器进行,无法充分利用前端设备性能,且缺乏便携性的问题。

【技术实现步骤摘要】
一种基于安卓设备的apk静态分析方法和设备
本专利技术属于计算机
,具体涉及一种基于安卓设备的apk静态分析方法和设备。
技术介绍
现如今移动操作系统市场处于苹果公司的iOS操作系统和谷歌的Android操作系统两强相争的局面,搭载iOS操作系统的便携式设备更是极其注重用户安全性,系统异常的封闭,设备本身的安全限制做得极其全面,每次系统的更新迭代时亦是在安全方面做了大量的升级,AppStore应用市场的安全审核相对全面而严谨,与之相对的Android系统则是一个自由及开放源码的系统,手机厂商众多定制系统亦是繁杂,每一个厂商的定制系统安全性良莠不齐,无法保证系统的安全性,与此同时源码开放亦存在一个问题,系统的漏洞很容易被发现及利用,这给系统的安全性带来了更多的防御压力,Android系统的应用安装亦是相对开放随意,无需通过层层审核上架应用市场,任意一个可用的apk即可调起安卓应用安装管理服务进行安装,安装应用的安全性无法保证。所以常常需要对应用程序进行检测以辨别是否含有恶意应用程序。目前针对恶意应用程序的检测方法主要有两种:动态检测方法与静态检测方法。动态检测方法主要通过修改Android模拟器内核对安装的应用程序进行实时检测或者使用符号执行的方法使应用程序按照指定的路径运行,从而得到应用程序的恶意行为。静态分析方法主要是通过分析安卓安装包(AndroidPackage,APK)中的有关文件,比如AndroidManifest.xml、Dalvik字节码文件等,从中抽取部分信息作为关键特征,采用特征匹配的方式完成检测。目前针对安卓apk应用安装包的静态分析大多采用PC端后台的云端服务器进行分析判定,Windows设备需要获取配置完善的安卓环境才可进行相应的apk静态分析,而安卓开发环境依赖模块较多,导致占用存储巨大,且配置繁琐,无法充分利用前端Android设备的性能,离线情况下亦无法进行分析。同时PC端往往体积较大,无法便携携带,使用场景非常受限。
技术实现思路
本申请实施例的目的在于提出了一种基于安卓设备的apk静态分析方法和设备,来解决以上
技术介绍
部分提到的技术问题。第一方面,本申请实施例提供了一种基于安卓设备的apk静态分析方法,该方法的步骤包括:S100、使用安卓ndk工具在安卓设备上构建配置Android.mk编译工程,编码实现PC电脑端工具相应功能,使得PC电脑端工具能够移植至安卓设备上实现相应功能,PC电脑端工具至少包括:AndroidDebugBridge、AndroidAssetPackagingTool、jadx和apktool;S200、使安卓设备与目标端建立通信连接,利用AndroidAssetPackagingTool和AndroidDebugBridge向目标端发送apk获取申请,并选择提取待分析apk;S300、运用apktool和jadx完成对待分析apk的静态分析。在一些实施例中,步骤S200中选择提取待分析apk的方法为:利用AndroidDebugBridge使用Unixshell命令获取目标端的应用安装记录,具体操作步骤如下:S201、利用AndroidDebugBridge推送AndroidAssetPackagingTool至目标端;S202、利用AndroidDebugBridge使用dumpsyspackage命令获取目标端的所有应用包名、版本号和应用最后使用时间;S203、利用AndroidDebugBridge使用pmlistpackages–f获取所述目标端的所有apk名称及apk路径;S204、基于所获取的apk路径利用AndroidAssetPackagingTool解析apk内容,以获取应用名和应用权限。运用上述选择提取待分析apk的方法能够充分提取静态分析所需的apk资源文件和源代码相关信息,为后续的静态分析奠定基础。在一些实施例中,apk静态分析方法包括步骤310,apk资源文件静态分析和步骤320,apk源代码静态分析。既进行apk资源文件静态分析也进行apk源代码静态分析保证静态分析的全面性。在一些实施例中,步骤310的具体操作方式为:使用AndroidAssetPackagingTool获取待分析apk的资源文件内容,进而静态分析判定该应用的可靠性。操作便捷,反应迅速。在一些实施例中,apk资源文件静态分析中的可靠性判定方法包括:设置预置权限库,通过将应用权限过滤匹配预置权限库,分析是否申请了大量敏感系统权限;或预置恶意url库,通过将URL信息过滤匹配恶意URL库判断是否存在访问恶意网站等。通过上述一项或者多项组合的可靠性判定方法可以有效分析apk资源文件中是否存在敏感权限问题和恶意网站。在一些实施例中,步骤320的具体步骤如下:S321、进行smali代码反编译,具体方式为:使用apktool将待分析apk解包,将二进制格式文件转为文本模式,输出smali格式代码;S322、进一步将smali格式代码反编译成java代码,具体方式为:通过Jadx将smali格式代码内的apk、dex反编译成Java代码;S323、对smali格式代码及java代码进行静态分析,判断是否包含恶意代码及过滤获取url,进而分析判定该应用源代码是否具有有害行为。通过上述步骤可以有效地完成对apk源代码的静态分析。在一些实施例中,S322步骤还包括将dex、aar和zip格式文件中的Dalvik字节码反编译为java格式代码。使apk源代码的静态分析更全面、细致。在一些实施例中,S322步骤还包括去混淆处理。使apk源代码的静态分析更全面、细致。在一些实施例中,S323步骤中对smali格式代码及java代码的分析方法包括:预置恶意行为库,通过将所述待分析apk的针对系统操作的代码行为与所述预置恶意行为库相匹配判断是否存在恶意代码行为,恶意代码行为包括:是否频繁修改系统敏感设置、是否删除系统敏感软件或是否获取其他应用信息。通过上述代码分析方法可以有效分析apk源代码中是否存在恶意代码行为。第二方面,本申请实施例提供了一种用于执行apk静态分析服务的安卓设备,该安卓设备构建配置了Android.mk编译工程,编码实现PC电脑端工具相应功能,使得PC电脑端工具能够移植至安卓设备上实现相应功能,PC电脑端工具至少包括:AndroidDebugBridge、AndroidAssetPackagingTool、jadx和apktool,安卓设备被配置为与目标端建立通信连接,利用AndroidAssetPackagingTool和AndroidDebugBridge向目标端发送apk获取申请,并选择提取待分析apk;安卓设备被配置为运用apktool和jadx完成对待分析apk的静态分析。本申请实施例提供的一种基于安卓设备的apk静态分析方法和设本文档来自技高网
...

【技术保护点】
1.一种基于安卓设备的apk静态分析方法,其特征在于:所述方法的步骤包括:/nS100、使用安卓ndk工具在安卓设备上构建配置Android.mk编译工程,编码实现PC电脑端工具相应功能,使得所述PC电脑端工具能够移植至所述安卓设备上实现相应功能,/n所述PC电脑端工具至少包括:Android Debug Bridge、Android Asset PackagingTool、jadx和apktool;/nS200、使所述安卓设备与目标端建立通信连接,利用所述Android Asset PackagingTool和所述Android Debug Bridge向所述目标端发送apk获取申请,并选择提取待分析apk;/nS300、运用所述apktool和所述jadx完成对所述待分析apk的静态分析。/n

【技术特征摘要】
1.一种基于安卓设备的apk静态分析方法,其特征在于:所述方法的步骤包括:
S100、使用安卓ndk工具在安卓设备上构建配置Android.mk编译工程,编码实现PC电脑端工具相应功能,使得所述PC电脑端工具能够移植至所述安卓设备上实现相应功能,
所述PC电脑端工具至少包括:AndroidDebugBridge、AndroidAssetPackagingTool、jadx和apktool;
S200、使所述安卓设备与目标端建立通信连接,利用所述AndroidAssetPackagingTool和所述AndroidDebugBridge向所述目标端发送apk获取申请,并选择提取待分析apk;
S300、运用所述apktool和所述jadx完成对所述待分析apk的静态分析。


2.根据权利要求1所述的方法,其特征在于:所述步骤S200中选择提取待分析apk的方法为:利用所述AndroidDebugBridge使用Unixshell命令获取所述目标端的应用安装记录,具体操作步骤如下:
S201、利用所述AndroidDebugBridge推送所述AndroidAssetPackagingTool至所述目标端;
S202、利用所述AndroidDebugBridge使用dumpsyspackage命令获取所述目标端的所有应用包名、版本号和应用最后使用时间;
S203、利用所述AndroidDebugBridge使用pmlistpackages–f命令获取所述目标端的所有apk名称及apk路径;
S204、基于所获取的apk路径利用所述AndroidAssetPackagingTool解析apk内容,以获取应用名和应用权限。


3.根据权利要求2所述的方法,其特征在于:所述apk静态分析方法包括步骤310,apk资源文件静态分析和步骤320,apk源代码静态分析。


4.根据权利要求3所述的方法,其特征在于:所述步骤310的具体操作方式为:使用所述AndroidAssetPackagingTool获取所述待分析apk的资源文件内容,进而静态分析判定该应用的可靠性。


5.根据权利要求4所述的方法,其特征在于:所述apk资源文件静态分析中的可靠性判定方法包括:
设置预置权限库...

【专利技术属性】
技术研发人员:郑志贤郑巧亮邱宗炽陈清圳
申请(专利权)人:厦门市美亚柏科信息股份有限公司
类型:发明
国别省市:福建;35

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

1