应用程序信息获取系统、设备、装置及方法与流程

文档序号:12131725阅读:335来源:国知局
应用程序信息获取系统、设备、装置及方法与流程

本发明涉及移动互联网技术领域,具体涉及一种应用程序信息获取系统、设备、装置及方法。



背景技术:

相关技术中,安卓应用程序客户端如果输出原始网络交互请求日志,很容易被黑客利用,进而对系统发起攻击。因此,在普通用户权限下,应用程序不应输出网络交互请求日志。但是,在进行安卓应用程序测试时,一般又需要捕获及分析安卓应用程序的网络交互请求日志。

相关技术中一般通过第三方抓包软件例如tcpdump(一种Linux操作系统下的网络监控软件)实现获取安卓应用程序的网络交互请求日志,而安卓是一种基于Linux内核的操作系统,需要root(超级用户)权限才可以运行第三方抓包软件。相关技术是通过破解技术得到移动终端的超级用户权限,进而运行tcpdump等软件获取网络交互请求日志,tcpdump软件可以将网络中传送的数据包完全截获下来提供分析。但这种方案存在很严重的机型兼容性问题,而且这种侵入式的方案也存在系统安全隐患。如果无root权限的情况下,则无法获取安卓应用程序的网络交互请求日志。



技术实现要素:

为解决上述技术问题,本发明提供一种应用程序信息获取系统、设备、装置及方法,能实现获取安卓应用程序的网络交互请求日志。

根据本发明的一个方面,提供一种应用程序信息获取系统,包括:

终端,通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据,根据所述原始网络交互请求数据生成设定格式的二进制文件,向服务器发送所述二进制文件;

服务器,获取所述终端发送的设定格式的二进制文件,根据所述二进制文件进行解析获得网络交互请求日志。

根据本发明的另一个方面,提供一种终端,包括:存储器和处理器;

所述存储器,存储处理器生成的设定格式的二进制文件;

所述处理器,通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据,根据所述原始网络交互请求数据生成设定格式的二进制文件,向服务器发送所述二进制文件以使得所述服务器根据所述二进制文件进行解析获得网络交互请求日志。

根据本发明的另一个方面,提供一种服务器,包括:存储器和处理器;

所述存储器,存储处理器接收的二进制文件和解析得到的网络交互请求日志;

所述处理器,获取终端发送的设定格式的二进制文件,其中所述二进制文件是所述终端通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据后,根据所述原始网络交互请求数据所生成的设定格式的二进制文件,根据所述二进制文件进行解析获得网络交互请求日志。

根据本发明的另一个方面,提供一种应用程序信息获取装置,包括:

获取模块,用于通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据;

生成模块,用于根据所述获取模块获取的原始网络交互请求数据生成设定格式的二进制文件;

发送模块,用于向服务器发送所述生成模块生成的二进制文件以使得所述服务器根据所述二进制文件进行解析获得网络交互请求日志。

可选的,所述获取模块包括:

创建子模块,用于通过虚拟局域网服务编程接口创建虚拟网卡;

接收子模块,用于通过所述创建子模块创建的虚拟网卡获取终端的应用程序转发到所述虚拟网卡的原始网络交互请求数据。

可选的,所述生成模块是通过文件句柄将所述原始网络交互请求数据生成设定格式的二进制文件,其中所述文件句柄是在所述终端的应用程序将所述原始网络交互请求数据转发到所述虚拟网卡时生成。

可选的,所述装置还包括:

压缩模块,用于在根据所述原始网络交互请求数据生成设定格式的二进制文件之后,对所述二进制文件进行压缩。

根据本发明的另一个方面,提供一种应用程序信息获取装置,包括:

获取模块,用于获取终端发送的设定格式的二进制文件,其中所述二进制文件是所述终端通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据后,根据所述原始网络交互请求数据所生成的设定格式的二进制文件;

解析模块,用于根据所述获取模块获取的二进制文件进行解析获得网络交互请求日志。

可选的,所述解析模块是根据约定规则对所述二进制文件进行解析获得网络交互请求日志。

可选的,所述装置还包括:

解压及解密模块,用于在所述解析模块根据约定规则对所述二进制文件进行解析得到已压缩的二进制文件后,根据设定解压算法对所述已压缩的二进制文件进行解压,并根据设定解密算法对解压后的二进制文件中的原始网络交互请求数据进行解密;

所述解析模块根据所述解压及解密模块进行解密后的结果,获得解密后的网络交互请求日志。

可选的,所述解压及解密模块是根据所述二进制文件中所述原始网络交互请求数据所携带的设定标识,确定解密算法,根据确定的解密算法进行解密。

根据本发明的另一个方面,提供一种应用程序信息获取方法,包括:

通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据;

根据所述原始网络交互请求数据生成设定格式的二进制文件;

向服务器发送所述二进制文件以使得所述服务器根据所述二进制文件进行解析获得网络交互请求日志。

可选的,所述通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据,包括:

通过虚拟局域网服务编程接口创建虚拟网卡;

通过所述虚拟网卡获取终端的应用程序转发到所述虚拟网卡的原始网络交互请求数据。

可选的,所述终端的应用程序是在向物理网卡发送原始网络交互请求数据时,将所述原始网络交互请求数据转发到所述虚拟网卡。

可选的,所述根据所述原始网络交互请求数据生成设定格式的二进制文件,包括:

通过文件句柄将所述原始网络交互请求数据生成设定格式的二进制文件,其中所述文件句柄是在所述终端的应用程序将所述原始网络交互请求数据转发到所述虚拟网卡时生成。

可选的,所述方法还包括:

在根据所述原始网络交互请求数据生成设定格式的二进制文件之后,对所述二进制文件进行压缩。

根据本发明的另一个方面,提供一种应用程序信息获取方法,包括:

获取终端发送的设定格式的二进制文件,其中所述二进制文件是所述终端通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据后,根据所述原始网络交互请求数据所生成的设定格式的二进制文件;

根据所述二进制文件进行解析获得网络交互请求日志。

可选的,所述根据所述二进制文件进行解析获得网络交互请求日志,包括:

根据约定规则对所述二进制文件进行解析获得网络交互请求日志。

可选的,所述方法还包括:

在所述二进制文件进行了压缩的情况下,根据约定规则对所述二进制文件进行解析得到已压缩的二进制文件后,

根据设定解压算法对所述已压缩的二进制文件进行解压,并根据设定解密算法对解压后的二进制文件中的原始网络交互请求数据进行解密,获得解密后的网络交互请求日志。

可选的,所述根据设定解密算法对解压后的二进制文件中的原始网络交互请求数据进行解密,包括:

根据所述二进制文件中所述原始网络交互请求数据所携带的设定标识,确定解密算法,根据确定的解密算法进行解密。

可以发现,本发明实施例的技术方案,可以通过虚拟局域网服务编程接口来获取终端的应用程序所发出的原始网络交互请求数据,然后根据所述原始网络交互请求数据生成设定格式的二进制文件,再向服务器发送所述二进制文件,这样就可以使得所述服务器可以根据所述二进制文件进行解析获得网络交互请求日志,从而实现无root权限的情况下,也可以获取应用程序的网络交互请求日志,并且可以适合于各种机型,解决机型兼容性问题。

进一步的,本发明实施例可以通过虚拟局域网服务编程接口创建虚拟网卡,然后再通过所述虚拟网卡获取终端的应用程序转发到所述虚拟网卡的原始网络交互请求数据。

进一步的,本发明实施例可以是终端的应用程序在向物理网卡发送原始网络交互请求数据时,将所述原始网络交互请求数据转发到所述虚拟网卡。

进一步的,本发明实施例可以是通过文件句柄将所述原始网络交互请求数据生成设定格式的二进制文件,其中所述文件句柄是在所述终端的应用程序将所述原始网络交互请求数据转发到所述虚拟网卡时生成。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1是根据本发明的一个实施例的一种应用程序信息获取系统的示意性方框图;

图2是根据本发明的一个实施例的一种终端的示意性方框图;

图3是根据本发明的一个实施例的一种服务器的示意性方框图;

图4是根据本发明的一个实施例的一种应用程序信息获取装置的示意性方框图;

图5是根据本发明的一个实施例的一种应用程序信息获取装置的另一示意性方框图;

图6是根据本发明的一个实施例的一种应用程序信息获取装置的另一示意性方框图;

图7是根据本发明的一个实施例的一种应用程序信息获取装置的另一示意性方框图;

图8是根据本发明的一个实施例的一种应用程序信息获取方法的示意性流程图;

图9是根据本发明的一个实施例的一种应用程序信息获取方法的另一示意性流程图;

图10是根据本发明的一个实施例的一种应用程序信息获取方法的另一示意性流程图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本发明提供一种应用程序信息获取系统,能实现获取安卓应用程序的网络交互请求日志。

以下结合附图详细描述本发明实施例的技术方案。

图1是根据本发明的一个实施例的一种应用程序信息获取系统的示意性方框图。

如图1所示,在一种应用程序信息获取系统中,包括:终端11和服务器12。

终端11,通过虚拟局域网服务编程接口获取终端11的应用程序所发出的原始网络交互请求数据,根据所述原始网络交互请求数据生成设定格式的二进制文件,向服务器12发送所述二进制文件。

服务器12,获取所述终端11发送的设定格式的二进制文件,根据所述二进制文件进行解析获得网络交互请求日志。

图2是根据本发明的一个实施例的一种终端的示意性方框图。

如图2所述,在一种终端20中包括:存储器21和处理器22。

所述存储器21,存储处理器22生成的设定格式的二进制文件。

所述处理器22,通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据,根据所述原始网络交互请求数据生成设定格式的二进制文件,向服务器发送所述二进制文件以使得所述服务器根据所述二进制文件进行解析获得网络交互请求日志。

图3是根据本发明的一个实施例的一种服务器的示意性方框图。

如图3所示,在一种服务器30中包括:存储器31和处理器32。

所述存储器31,存储处理器32接收的二进制文件和解析得到的网络交互请求日志。

所述处理器32,获取终端发送的设定格式的二进制文件,其中所述二进制文件是所述终端通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据后,根据所述原始网络交互请求数据所生成的设定格式的二进制文件,根据所述二进制文件进行解析获得网络交互请求日志。

在上述设备中的处理器22或处理器32,可以作为一个独立的装置结构,该独立的装置结构可以称为一种应用程序信息获取装置,该应用程序信息获取装置可以包括多个子模块,下文将结合图4到图7对应用程序信息获取装置的结构进行详细说明。

图4是根据本发明的一个实施例的一种应用程序信息获取装置的示意性方框图。

如图4所示,在一种应用程序信息获取装置40中,包括:获取模块41、生成模块42、发送模块43。

获取模块41,用于通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据;

生成模块42,用于根据所述获取模块41获取的原始网络交互请求数据生成设定格式的二进制文件;

发送模块43,用于向服务器发送所述生成模块42生成的二进制文件以使得所述服务器根据所述二进制文件进行解析获得网络交互请求日志。

由该实施例可见,本发明实施例的技术方案,可以通过虚拟局域网服务编程接口来获取终端的应用程序所发出的原始网络交互请求数据,然后根据所述原始网络交互请求数据生成设定格式的二进制文件,再向服务器发送所述二进制文件,这样就可以使得所述服务器可以根据所述二进制文件进行解析获得网络交互请求日志,从而实现无root权限的情况下,也可以获取应用程序的网络交互请求日志,并且可以适合于各种机型,解决机型兼容性问题。

图5是根据本发明的一个实施例的一种应用程序信息获取装置的另一示意性方框图;

如图5所示,在一种应用程序信息获取装置40中,包括:获取模块41、生成模块42、发送模块43、压缩模块44。

其中,获取模块41、生成模块42、发送模块43的功能可以参见图4所示。

其中,所述获取模块41可以包括:创建子模块411、接收子模块412。

创建子模块411,用于通过虚拟局域网服务编程接口创建虚拟网卡。

接收子模块412,用于通过所述创建子模块411创建的虚拟网卡获取终端的应用程序转发到所述虚拟网卡的原始网络交互请求数据。

其中,所述生成模块42是通过文件句柄将所述原始网络交互请求数据生成设定格式的二进制文件,其中所述文件句柄是在所述终端的应用程序将所述原始网络交互请求数据转发到所述虚拟网卡时生成。

其中,压缩模块44,用于在根据所述原始网络交互请求数据生成设定格式的二进制文件之后,对所述二进制文件进行压缩。

图6是根据本发明的一个实施例的一种应用程序信息获取装置的另一示意性方框图。

如图6所示,在一种应用程序信息获取装置60中,包括:获取模块61、解析模块62。

获取模块61,用于获取终端发送的设定格式的二进制文件,其中所述二进制文件是所述终端通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据后,根据所述原始网络交互请求数据所生成的设定格式的二进制文件。

解析模块62,用于根据所述获取模块61获取的二进制文件进行解析获得网络交互请求日志。

图7是根据本发明的一个实施例的一种应用程序信息获取装置的另一示意性方框图。

如图7所示,在一种应用程序信息获取装置60中,包括:获取模块61、解析模块62、解压及解密模块63。

其中,获取模块61、解析模块62、解压及解密模块63的功能可以参见图6所示。

其中,所述解析模块62是根据约定规则对所述二进制文件进行解析获得网络交互请求日志。

解压及解密模块63,用于在所述解析模块62根据约定规则对所述二进制文件进行解析得到已压缩的二进制文件后,根据设定解压算法对所述已压缩的二进制文件进行解压,并根据设定解密算法对解压后的二进制文件中的原始网络交互请求数据进行解密。

所述解析模块62根据所述解压及解密模块63进行解密后的结果,获得解密后的网络交互请求日志。

其中,所述解压及解密模块63是根据所述二进制文件中所述原始网络交互请求数据所携带的设定标识,确定解密算法,根据确定的解密算法进行解密。

上述详细介绍了本发明的一种应用程序信息获取系统、设备及装置,以下介绍本发明对应的应用程序信息获取方法。

图8是根据本发明的一个实施例的一种应用程序信息获取方法的示意性流程图。

如图8所示,所述方法应用于终端中,包括:

在步骤801中,通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据。

在步骤802中,根据所述原始网络交互请求数据生成设定格式的二进制文件。

在步骤803中,向服务器发送所述二进制文件以使得所述服务器根据所述二进制文件进行解析获得网络交互请求日志。

由该实施例可见,本发明实施例的技术方案,可以通过虚拟局域网服务编程接口来获取终端的应用程序所发出的原始网络交互请求数据,然后根据所述原始网络交互请求数据生成设定格式的二进制文件,再向服务器发送所述二进制文件,这样就可以使得所述服务器可以根据所述二进制文件进行解析获得网络交互请求日志,从而实现无root权限的情况下,也可以获取应用程序的网络交互请求日志,并且可以适合于各种机型,解决机型兼容性问题。

图9是根据本发明的一个实施例的一种应用程序信息获取方法的另一示意性流程图。

如图9所示,所述方法应用于服务器中,包括:

在步骤901中,获取终端发送的设定格式的二进制文件,其中所述二进制文件是所述终端通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据后,根据所述原始网络交互请求数据所生成的设定格式的二进制文件。

在步骤902中,根据所述二进制文件进行解析获得网络交互请求日志。

图10是根据本发明的一个实施例的一种应用程序信息获取方法的另一示意性流程图。

图10相对于图8和图9更详细描述了本发明实施例的技术方案。

图10通过客户端例如终端与服务端例如服务器的交互描述本发明实施例方案,如图10所示,包括:

在步骤1001中,终端启动虚拟局域网服务编程接口。

该步骤中,终端启动虚拟局域网服务编程接口(在Android 4.0以后由谷歌官方提供的编程接口),也即启动一个Android VpnService(安卓虚拟专用网络服务),该服务启动时会自动在终端创建一个安卓系统虚拟网卡。

在步骤1002中,终端通过虚拟局域网服务编程接口获取终端的应用程序所发出的原始网络交互请求数据。

终端的任意应用程序发送原始网络交互请求数据到终端的物理网卡时,Android VpnService会自动将原始网络交互请求数据转发到已创建的虚拟网卡,并返回一个文件句柄。文件句柄,可以简单理解为操作系统提供的一个管道,它提供数据读、写的能力,本公开所说的文件句柄的作用,是提供一个通道,可以将网络数据写入到指定的文件中。

也就是说,终端通过虚拟局域网服务编程接口创建虚拟网卡后,可以通过所述虚拟网卡获取终端的应用程序转发到所述虚拟网卡的原始网络交互请求数据。

在步骤1003中,终端根据所述原始网络交互请求数据生成设定格式的二进制文件。

该步骤中,可以通过文件句柄将所述原始网络交互请求数据生成设定格式的二进制文件,其中所述文件句柄是在所述终端的应用程序将所述原始网络交互请求数据转发到所述虚拟网卡时生成。例如,可以通过这个文件句柄,将所述原始网络交互请求数据生成遵循libpcap(Promiscuous Capture Library,一种使用C语言编写的底层网络数据包捕获函数包,大多数网络监控软件都以它为基础)规范格式的二进制文件。

在步骤1004中,终端向服务器发送所述进行压缩的二进制文件。

该步骤中,终端将生成的二进制文件进行压缩后上传至服务器的日志收集平台。需说明的是,也可以不进行压缩。压缩算法可以采用通用的gzip算法等但不局限于此。

在步骤1005中,服务器接收获取终端发送的设定格式的二进制文件,进行解析。

该步骤中,服务器可以根据约定规则对所述二进制文件进行解析,例如可以使用tshark(一种Linux下的网络监控软件,是基于libpcap的上层软件,提供监控、分析网络日志请求的能力)软件对文件进行解析,得到压缩的原始网络交互请求数据二进制流。

该步骤中,使用tshark软件进行文件解析时,服务器事先已经知道此文件遵循libpcap规范格式。

在步骤1006中,服务器根据设定解压算法进行解压,并根据设定解密算法对解压后的二进制文件中的原始网络交互请求数据进行解密,获得解密后的网络交互请求日志。

该步骤中,服务器将原始网络交互请求数据二进制流按设定解压算法进行解压操作,该解压算法与终端的压缩算法相对应。

需说明的是,一般原始网络交互请求数据本身是加密后的数据,而不同的安卓应用程序在终端的客户端对原始网络交互请求数据所采用的加密算法有所不同,本步骤选择对解压后的二进制文件中的原始网络交互请求数据进行解密的解密算法时,可以根据经验分析不同的原始网络交互请求数据二进制流,进而选择不同的解密算法。也就是说,解压后,可以选择不同的解密算法对加密后的二进制流进行逆向解密操作,最终得到解密后的网络交互请求日志。

例如,可以根据所述二进制文件中所述原始网络交互请求数据所携带的设定标识,确定解密算法,根据确定的解密算法进行解密。所携带的设定标识,例如可以是在原始网络交互请求数据前增加四位标识,每一位标识可以设置不同的含义,或者在HTTP请求头增加一个字段标识等但不局限于此。

进一步的,还可以将得到的网络交互请求日志展现在服务器的WEB界面供相关人员使用分析。

综上所述,本发明方案可以利用终端的安卓操作系统所提供的虚拟局域网服务编程接口,实现不需要超级用户权限就可以进行网络日志捕捉分析,即可以获取安卓应用程序的网络交互请求日志,可以供相关技术人员进行网络日志分析,满足相关技术人员的测试要求。

上文中已经参考附图详细描述了根据本发明的技术方案。

此外,根据本发明的方法还可以实现为一种计算机程序,该计算机程序包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。或者,根据本发明的方法还可以实现为一种计算机程序产品,该计算机程序产品包括计算机可读介质,在该计算机可读介质上存储有用于执行本发明的上述方法中限定的上述功能的计算机程序。本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1