admin管理员组

文章数量:1535259

2024年1月7日发(作者:)

本技术公开了一种APP网络行为的监控方法、智能终端及存储介质,所述方法包括:在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码;使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为;在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置。本技术通过分析日志即可知道APP触发的网络行为,最终达到不受任何限制的应用的网络行为,有效监控APP网络行为,提高网络安全。技术要求1.一种APP网络行为的监控方法,其特征在于,所述APP网络行为的监控方法包括:在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码;使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为;在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置。

2.根据权利要求1所述的APP网络行为的监控方法,其特征在于,所述监控数据包括:触发时间、UID、url和方法调用栈;所述触发时间为网络请求行为开始的时间;所述UID作为APP标识,在应用安装时由Android系统分配;所述url为应用在运行过程中网络行为的请求地址;所述方法调用栈用于定位函数在APP代码中的位置。3.根据权利要求1所述的APP网络行为的监控方法,其特征在于,所述在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码,包括:修改Android源码,在所述Android源码中定位到执行网络请求的网络行为函数,所述网络行为函数对应系统源码位置进行定位;编写系统日志输出代码,在Android系统日志中添加触发时间、触发者、url和调用栈的数据。4.根据权利要求3所述的APP网络行为的监控方法,其特征在于,所述网络行为函数对应系统源码位置进行定位包括:类文件位置和对应函数。5.根据权利要求3所述的APP网络行为的监控方法,其特征在于,所述使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统,包括:使用make-j命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;使用快速启动将所述沙箱系统刷入手机。6.根据权利要求5所述的APP网络行为的监控方法,其特征在于,所述使用快速启动将所述沙箱系统刷入手机,包括:所述手机连接电脑,cmd窗口输入命令adb reboot bootloader,控制所述手机进入刷机模式;

输入命令fastboot flash命令刷入所述沙箱系统;输入命令fastboot reboot重启所述手机;重启后,所述手机中的系统变更为修改后的所述沙箱系统。7.根据权利要求5所述的APP网络行为的监控方法,其特征在于,所述当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为,包括:在所述沙箱系统中运行需要检测的APP;运行时使用命令adb logcat实时获取对应的系统日志。8.根据权利要求7所述的APP网络行为的监控方法,其特征在于,所述在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置,包括:在系统日志中输出触发时间、UID、url和方法调用栈;使用grep+UID命令单独输出UID对应的APP的网络行为日志;分析对应日志,获取所述APP触发的网络行为,并根据所述网络行为定位所述APP内网络行为的函数位置。9.一种智能终端,其特征在于,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的APP网络行为的监控程序,所述APP网络行为的监控程序被所述处理器执行时实现如权利要求1-8任一项所述的APP网络行为的监控方法的步骤。10.一种存储介质,其特征在于,所述存储介质存储有APP网络行为的监控程序,所述APP网络行为的监控程序被处理器执行时实现如权利要求1-8任一项所述的APP网络行为的监控方法的步骤。技术说明书一种APP网络行为的监控方法、智能终端及存储介质

技术领域本技术涉及计算机应用技术领域,尤其涉及一种APP网络行为的监控方法、智能终端及存储介质。背景技术现有技术中监控APP网络行为有如下方案:逆向静态扫描,反编译apk(AndroidPackage,安卓程序安装包)文件,扫描反编译之后的代码,匹配代码中出现的所有url(Uniform Resource Locator,统一资源定位符),匹配出的url就认为是应用在运行过程中网络行为的请求地址;缺点是容易误报,无法模拟真实场景的数据请求,且对加固应用无法操作。使用PC(电脑)抓包工具(抓包,就是通过软件检测网卡所流通的数据)对手机端数据抓包,抓包工具的原理是通过代理网络,通过拦截、读取、转发代理中的请求来实现抓包。当手机连上WIFI并且和PC在同一局域网时,手机端设置WIFI代理为手动,并填上PC的IP地址后,抓包工具就可以对手机端网络数据进行抓包。在手机端安装运行应用,抓包工具上每显示一条的抓取到的url,表示APP产生了网络行为。缺点是操作繁琐,耗时长,有一定技术门槛,而且不能批量操作。使用Android自带服务VPNService来实现抓包:VPNService是一个Android自带的vpn(虚拟专用网络)服务类,它可以在不root(指安卓系统的最高权限用户)手机的情况下,实现对手机流量控制。基于VPNService开发一个流量监控应用,首先需要申请特殊权限:“_VPN_SERVICE”,然后的关键是继承自vice类,VpnService类封装了建立VPN连接所必须的所有函数,调用ish函数建立tun0虚拟网络接口,之后,就可以通过读写r返回的ParcelFileDescriptor实例来获得设备上所有向外发送的数据包。这些产生的数据包中的url,可表示APP的网络行为。缺点是需要人工参与,无法全自动化。现有技术的缺点是存在误报、操作繁琐以及无法自动化。因此,现有技术还有待于改进和发展。

技术内容本技术的主要目的在于提供一种APP网络行为的监控方法、智能终端及存储介质,旨在解决现有技术中APP网络行为监控存在误报、操作繁琐以及无法自动化的问题。为实现上述目的,本技术提供一种APP网络行为的监控方法,所述APP网络行为的监控方法包括如下步骤:在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码;使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为;在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置。可选地,所述的APP网络行为的监控方法,其中,所述监控数据包括:触发时间、UID、url和方法调用栈;所述触发时间为网络请求行为开始的时间;所述UID作为APP标识,在应用安装时由Android系统分配;所述url为应用在运行过程中网络行为的请求地址;所述方法调用栈用于定位函数在APP代码中的位置。可选地,所述的APP网络行为的监控方法,其中,所述在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码,包括:修改Android源码,在所述Android源码中定位到执行网络请求的网络行为函数,所述网络行为函数对应系统源码位置进行定位;编写系统日志输出代码,在Android系统日志中添加触发时间、触发者、url和调用栈的数据。

可选地,所述的APP网络行为的监控方法,其中,所述网络行为函数对应系统源码位置进行定位包括:类文件位置和对应函数。可选地,所述的APP网络行为的监控方法,其中,所述使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统,包括:使用make-j命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;使用快速启动将所述沙箱系统刷入手机。可选地,所述的APP网络行为的监控方法,其中,所述使用快速启动将所述沙箱系统刷入手机,包括:所述手机连接电脑,cmd窗口输入命令adb reboot bootloader,控制所述手机进入刷机模式;输入命令fastboot flash命令刷入所述沙箱系统;输入命令fastboot reboot重启所述手机;重启后,所述手机中的系统变更为修改后的所述沙箱系统。可选地,所述的APP网络行为的监控方法,其中,所述当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为,包括:在所述沙箱系统中运行需要检测的APP;运行时使用命令adb logcat实时获取对应的系统日志。可选地,所述的APP网络行为的监控方法,其中,所述在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置,包括:在系统日志中输出触发时间、UID、url和方法调用栈;

使用grep+UID命令单独输出UID对应的APP的网络行为日志;分析对应日志,获取所述APP触发的网络行为,并根据所述网络行为定位所述APP内网络行为的函数位置。此外,为实现上述目的,本技术还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的APP网络行为的监控程序,所述APP网络行为的监控程序被所述处理器执行时实现如上所述的APP网络行为的监控方法的步骤。此外,为实现上述目的,本技术还提供一种存储介质,其中,所述存储介质存储有APP网络行为的监控程序,所述APP网络行为的监控程序被处理器执行时实现如上所述的APP网络行为的监控方法的步骤。本技术中,在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码;使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为;在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置。本技术通过分析日志即可知道APP触发的网络行为,最终达到不受任何限制的应用的网络行为,有效监控APP网络行为,提高网络安全。附图说明图1是本技术APP网络行为的监控方法的较佳实施例的流程图;图2为本技术智能终端的较佳实施例的运行环境示意图。具体实施方式为使本技术的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。本技术较佳实施例所述的APP网络行为的监控方法,如图1所示,所述APP网络行为的监控方法包括以下步骤:

步骤S10、在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码。具体地,修改Android源码,在所述Android源码中定位到执行网络请求的网络行为函数,所述网络行为函数对应系统源码位置进行定位;编写系统日志输出代码,在Android系统日志中添加触发时间、触发者、url和调用栈的数据。采用修改Android源码,在所述Android源码中定位到执行网络请求的函数,并且插入输出系统日志的代码,输出内容为:触发时间(网络请求行为开始的时间)、UID(UID:可作为APP标识,它在应用安装时由Android系统分配)、url、方法调用栈(Java语言程序中每次调用一个方法会产生一个方法栈,当前方法调用另外一个方法时会使用栈将当前方法的现场信息保存在此方法栈当中,获取这个栈就可以得到方法调用的详细过程,这个过程中就包含执行这个网络请求的函数的详情,可定位到函数在APP代码中的位置)。其中,所述网络行为函数对应系统源码位置进行定位包括:类文件位置和对应函数,例如:类文件位置:libcore/ojluni/src/main/java/java/net/;对应函数:connect(SocketAddress remoteAddr,int timeout);类文件位置:libcore/ojluni/src/main/java/java/net/;对应函数:public URL(String protocol,String host,int port,String file;URLStreamHandler handler)类文件位置:libcore/ojluni/src/main/java/java/net/;对应函数:public URI(String scheme,String authority,String path,Stringquery,String fragment)。步骤S20、使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统。具体地,使用make-j命令(加速Linux程序编译)编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;使用快速启动(fastboot,在安卓手机中fastboot是一种比recovery更底层的刷机模式)将所述沙箱系统刷入手机。

其中,所述使用快速启动将所述沙箱系统刷入手机,包括:所述手机连接电脑,cmd(Command Prompt,命令提示符,在操作系统中,提示进行命令输入的一种工作提示符)窗口输入命令adb reboot bootloader,控制所述手机进入刷机模式;输入命令fastboot flash命令刷入所述沙箱系统;输入命令fastboot reboot重启所述手机;重启后,所述手机中的系统变更为修改后的所述沙箱系统。沙箱(Sandbox)的定义是:Sandboxie(又叫沙箱、沙盘)即是一个虚拟系统程序,允许在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。步骤S30、当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为。具体地,在所述沙箱系统中运行需要检测的APP;运行时使用命令adb logcat实时获取对应的系统日志。APP在所述沙箱系统(沙箱系统是修改后的Android系统,操作上与普通android系统完全一样)中安装运行时,所述沙箱系统可监控到应用的网络行为,在系统日志中输出触发时间、UID、url、方法调用栈等数据。步骤S40、在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置。具体地,在系统日志中输出触发时间、UID、url和方法调用栈;使用grep+UID命令单独输出UID对应的APP的网络行为日志,由于日志中包含了UID分析日志生成结果,达到监控的目的;分析对应日志,获取所述APP触发的网络行为,并根据所述网络行为定位所述APP内网络行为的函数位置。沙箱使用者(用户)只需分析对应日志,即可知道应用触发的网络行为,最终达到不受任何限制的应用的网络行为,并且定位apk内网络行为的函数位置。本技术不用考虑其他的APK保护机制,可100%准确高效的监控App中的网络行为

进一步地,如图2所示,基于上述APP网络行为的监控方法,本技术还相应提供了一种智能终端,所述智能终端包括:处理器10、存储器20及显示器30。图2仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有APP网络行为的监控程序40,该APP网络行为的监控程序40可被处理器10所执行,从而实现本申请中APP网络行为的监控方法。所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述APP网络行为的监控方法等。所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化的用户界面。所述智能终端的部件10-30通过系统总线相互通信。在一实施例中,当处理器10执行所述存储器20中APP网络行为的监控程序40时实现以下步骤:在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码;使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为;

在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置。所述监控数据包括:触发时间、UID、url和方法调用栈;所述触发时间为网络请求行为开始的时间;所述UID作为APP标识,在应用安装时由Android系统分配;所述url为应用在运行过程中网络行为的请求地址;所述方法调用栈用于定位函数在APP代码中的位置。所述在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码,包括:修改Android源码,在所述Android源码中定位到执行网络请求的网络行为函数,所述网络行为函数对应系统源码位置进行定位;编写系统日志输出代码,在Android系统日志中添加触发时间、触发者、url和调用栈的数据。所述网络行为函数对应系统源码位置进行定位包括:类文件位置和对应函数。所述使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统,包括:使用make-j命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;使用快速启动将所述沙箱系统刷入手机。所述使用快速启动将所述沙箱系统刷入手机,包括:所述手机连接电脑,cmd窗口输入命令adb reboot bootloader,控制所述手机进入刷机模式;输入命令fastboot flash命令刷入所述沙箱系统;

输入命令fastboot reboot重启所述手机;重启后,所述手机中的系统变更为修改后的所述沙箱系统。所述当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为,包括:在所述沙箱系统中运行需要检测的APP;运行时使用命令adb logcat实时获取对应的系统日志。所述在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置,包括:在系统日志中输出触发时间、UID、url和方法调用栈;使用grep+UID命令单独输出UID对应的APP的网络行为日志;分析对应日志,获取所述APP触发的网络行为,并根据所述网络行为定位所述APP内网络行为的函数位置。进一步地,本技术还提供一种存储介质,其中,所述存储介质存储有APP网络行为的监控程序,所述APP网络行为的监控程序被处理器执行时实现如上所述的APP网络行为的监控方法的步骤。综上所述,本技术提供一种APP网络行为的监控方法、智能终端及存储介质,所述方法包括:在Android源码中定位到执行网络请求的函数,并插入输出系统日志的代码;使用预设命令编译所述Android源码,编译生成的Android系统为监控APP网络行为的沙箱系统;当APP在所述沙箱系统中安装运行时,所述沙箱系统监控所述APP的网络行为;在系统日志中输出监控数据,分析所述监控数据获取所述APP触发的网络行为,并定位所述APP内网络行为的函数位置。本技术通过分析日志即可知道APP触发的网络行为,最终达到不受任何限制的应用的网络行为,有效监控APP网络行为,提高网络安全。

当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。应当理解的是,本技术的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本技术所附权利要求的保护范围。

本文标签: 网络行为监控系统方法