CN111158996B - 一种信息处理方法、装置和计算机可读存储介质 - Google Patents
一种信息处理方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111158996B CN111158996B CN201911301388.8A CN201911301388A CN111158996B CN 111158996 B CN111158996 B CN 111158996B CN 201911301388 A CN201911301388 A CN 201911301388A CN 111158996 B CN111158996 B CN 111158996B
- Authority
- CN
- China
- Prior art keywords
- data
- analyzed
- application program
- information
- acquiring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
Abstract
本发明实施例公开了一种信息处理方法,该方法包括:获取待分析的应用程序对应的第一数据;其中,第一数据用于表示与待分析的应用程序对应的可执行代码集合;获取待分析的应用程序对应的待分析数据;基于待分析数据,得到第二数据;其中,第二数据用于表示与待分析数据对应的可执行代码集合;基于第一数据以及第二数据,获取目标信息;其中,目标信息,用于表示待分析的应用程序运行时产生的与待分析数据对应的数据流。本发明实施例提供的信息处理方法,可以方便、灵活、快捷并且全面的获取待分析的应用程序的数据状态和操作痕迹。
Description
技术领域
本发明涉及移动电子设备领域,尤其涉及一种信息处理方法、装置及计算机可读存储介质。
背景技术
目前,在移动电子设备使用过程中,为了获取移动电子设备某一应用程序与服务器的数据交互信息,通常会使用第三方的代理工具诸如超文本传输协议(HypertextTransfer Protocol,HTTP)代理服务器Charles、HTTP协议调试代理工具Fiddler等,也会通过砸壳的方式获取应用程序的信息。但是,在实现本发明过程中,发明人发现以上两种获取应用程序与服务器数据交互信息的方式的有如下缺点:首先,由于需要借助于第三方的代理工具,就使得以上方式的灵活性不足;其次,在未获取与应用程序对应的源代码的情况下,无法获取到与应用程序向服务器发送的请求操作对应的应用程序的页面操作,也无法获取到应用程序本地操作时的数据状态和操作痕迹。因此,上述获取应用程序数据状态和操作痕迹的方式,灵活性不足,且获取的信息有限,不能满足实际对应用程序数据分析的需要。
发明内容
有鉴于此,本发明实施例期望提供一种信息处理方法,该方法可以方便、灵活、快捷并且全面的获取待分析的应用程序的数据状态和操作痕迹。
为达到上述目的,第一方面,本发明实施例提供了
一种信息处理方法,所述方法包括:
获取待分析的应用程序对应的第一数据;其中,所述第一数据用于表示与所述待分析的应用程序对应的可执行代码集合;
获取所述待分析的应用程序对应的待分析数据;
基于所述待分析数据,得到第二数据;其中,所述第二数据用于表示与所述待分析数据对应的可执行代码集合;
基于所述第一数据以及所述第二数据,获取所述目标信息;其中,所述目标信息,用于表示所述待分析的应用程序运行时产生的与所述待分析数据对应的数据流。
可选的,所述基于所述待分析数据,得到第二数据,包括:
基于所述待分析数据,确定第三数据;其中,第三数据为与所述待分析数据对应的接口数据;
基于所述第三数据以及所述待分析数据,得到所述第二数据。
可选的,所述基于所述第一数据以及所述第二数据,获取所述目标信息,包括:
基于所述第一数据以及所述第二数据,得到第四数据;其中,所述第四数据表示用于捕获所述待分析应用中与所述待分析数据对应操作的可执行代码集合;
基于所述第四数据,获取所述目标信息。
可选的,所述基于所述第四数据,获取所述目标信息,包括:
获取信息获取窗口状态;其中,所述信息获取窗口状态用于确定是否获取目标信息;
若所述信息获取窗口状态为需要获取信息状态,则基于所述第四数据,获取所述目标信息。
可选的,所述基于所述第四数据,获取所述目标信息,包括:
基于所述待分析数据,确定信息捕获操作;
加载所述第四数据,基于所述信息捕获操作,获取所述目标信息。
可选的,所述获取所述待分析的应用程序对应的待分析数据,包括:
基于所述待分析的应用程序的运行状态,获取所述待分析数据。
可选的,所述基于所述待分析的应用程序的运行状态,获取所述待分析数据,包括:
基于所述待分析应用程序的运行状态,获取所述运行异常信息;
基于所述运行异常信息,获取所述待分析数据。
可选的,所述基于所述待分析数据,确定信息捕获操作,包括:
基于所述待分析数据,确定信息捕获操作列表;
基于所述信息捕获操作列表,获取当前账户对应的信息捕获操作。
第二方面,本发明实施例提供了一种数据处理装置,其特征在于,所述装置包括获取模块和处理模块,其中,
所述获取模块,用于获取待分析的应用程序对应的第一数据;获取所述待分析的应用程序对应的待分析数据;其中,所述第一数据用于表示与所述待分析的应用程序对应的可执行代码集合;
所述确定模块,用于基于所述待分析数据,得到第二数据;基于所述第一数据以及所述第二数据,获取所述目标信息;其中,所述第二数据用于表示与所述待分析数据对应的可执行代码集合;所述目标信息,用于表示所述待分析的应用程序运行时产生的与所述待分析数据对应的数据流。
第三方面,本发明实施例提供了一种信息处理装置,其特征在于,所述装置包括:处理器、存储器和通信总线;
所述通信总线用于实现所述处理器与所述存储器之间的通信连接;
所述处理器用于执行所述存储器中的信息处理方法的程序,以实现前述任一信息处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一信息处理方法。
本发明实施例所提供的信息处理方法,获取待分析的应用程序对应的第一数据;其中,所述第一数据用于表示与所述待分析的应用程序对应的可执行代码集合;获取所述待分析的应用程序对应的待分析数据;基于所述待分析数据,得到第二数据;其中,所述第二数据用于表示与所述待分析数据对应的可执行代码集合;基于所述第一数据以及所述第二数据,获取所述目标信息;其中,所述目标信息,用于表示所述待分析的应用程序运行时产生的与所述待分析数据对应的数据流。
因此,本发明实施例提供的信息处理方法,通过获取待分析的应用程序对应的第一数据,然后获取待分析应用程序对应的待分析数据,并根据待分析数据得到第二数据,最后基于第一数据以及第二数据,获取目标数据,从而使得在获取目标数据的过程中,依靠待分析应用程序的可执行代码集合,并将待分析数据对应的数据内嵌到可执行代码集合中,进而获取目标数据,因此,本发明提供的信息处理方法,使得目标信息的获取更加方便和灵活,并且,获取的目标数据更加多样,更全面。
附图说明
图1为本发明实施例提供的第一种信息处理方法的流程图;
图2为本发明实施例提供的第二种信息处理方法的流程图;
图3为本发明实施例提供的一种信息处理方法的待分析的应用程序的信息获取窗口及其功能示意图;
图4为本发明实施例提供的第三种信息处理方法的流程图;
图5为本发明实施例提供的第一种信息处理装置的结构图;
图6为本发明实施例提供的一种信息处理装置功能组成图;
图7为本发明实施例提供的第二种信息装置方法的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
应理解,说明书通篇中提到的“本发明实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“本发明实施例中”或“在前述实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,本发明实施例中与其它实施例相同或相应步骤(或概念)的说明,可以参照其它实施例中的描述,此处不再赘述。
目前,在智能移动终端领域,主要分为两大类,第一类是基于Android的智能移动终端,第二类是苹果公司的智能移动终端。苹果公司的所有移动智能终端,搭载苹果公司自行开发的操作系统iOS,该操作系统是类Unix的商业操作系统,该操作系统主要使用的编程语言是Objective-C,该编程语言是在C语言的基础上,加入面向对象特性扩充而成的通用性高级编程语言。
Objective-C是一种动态语言,该语言会将一些工作放在代码运行阶段时才处理,而非在编译阶段时就处理,也就是说,有很多类和变量成员在编译阶段时是不知道的,而在运行阶段时,程序员编写的代码就会转换成完整的、确定的代码运行。因此,对于使用Objective-C完成的应用程序或架构而言,编译器是不够的,还需要一个运行时系统(Runtime System)来动态的创建类和对象,并进行消息传递和转发。
iOS的Runtime System基本是使用C语言和汇编语言书写的,在编程语言中,汇编语言和C语言的运行效率是最高的,因此,iOS的Runtime System的运行效率是很高的。简而言之,Runtime System就是iOS系统在运行时的一些机制,其中主要是消息机制,由此,Objective-C编写的应用程序中的函数调用就称为消息发送和传递过程,也就是说,属于动态调用过程,即在编译阶段并不能决定真正调用那个函数,而只有在运行阶段才会根据函数的名称找到对应的函数来调用。
在苹果应用市场App Store中的所有应用程序,都是基于iOS操作系统的应用程序接口(Application Programming Interface,API)而开发的,并且,为了更好的兼容iOS操作系统,基本所有的应用程序都是使用Objective-C开发的。在开发者将应用程序开发完毕之后,还要上传至App Store,在开发者将本地开发的应用程序上传至App Store的过程中,该应用程序会经历一个应用加密过程。
应用加密,是在开发者向App Store提交应用的过程中,由苹果官方进行的加密处理,以确保用户从App Store下载的应用程序都是经过审核的,并且,加密之后的应用程序,第三方开发人员无法通过二进制反编译工具如Hopper等对该应用程序进行反编译,因而也无法使用class-dump工具导出相关信息,其中,class-dump工具,是可以把Objective-C运行时的声明信息导出来的工具,即导出头文件的工具。
对于App Store中已经加密的应用程序,当用户下载之后,应用程序在磁盘中仍然是加密状态,而中央处理器(central processing unit,CPU)无法识别加密后的文件,因此,在启动应用程序之前,需要在内核中对加密应用程序的文件进行解密,这样才能提取到可执行文件,并将可执行文件放入内存中,供CPU读取和执行。
以上解密的过程即为砸壳。通常情况下,砸壳有两种类型:第一种是静态砸壳,第二种是动态砸壳。所谓静态砸壳,是在已经掌握和了解加密应用程序的加密算法和加密逻辑之后,在不运行应用程序的前提下,将加密后的应用程序进行解密处理,该方法的难度大,并且加密方发现应用程序被破解后,就有可能会改用更高级的更复杂的加密算法对应用程序加密。所谓动态砸壳,是指在运行进程内存中对应用程序对应的可执行代码映像入手,将内存中的内容进行转存储来实现砸壳,该方法相对简单,并且不需要关心应用所使用的加密技术。
随着移动电子设备,尤其是智能终端设备,比如智能手机、智能平板电脑等的功能越来越强大,性能越来越稳定,越来越多的用户希望使用移动电子设备来实现包括工作和娱乐在内的个人事务的处理。
由此,应用程序市场上各种功能强大、操作友好的应用程序应运而生,并且,各种应用程序的版本,随着用户的需求的变化、移动电子设备硬件的更新、软件的升级而不断的更新。
另一方面,由于应用程序市场,是一个开放的市场,这个市场欢迎所有可以满足用户需求的应用程序的发布,也欢迎所有的智能终端用户下载并使用这些应用程序。然而,在应用程序市场上,对于一款广受欢迎的应用程序,可能会引起第三方开发者的兴趣,这些第三方开发者,基于自己本身的某种兴趣或者目的,下载这款广受欢迎的应用程序,并在应用程序中内嵌一些与特殊功能或操作对应的代码,最后再将内嵌代码的应用程序发布至应用市场上,对于不了解以上过程的智能终端用户而言,若在偶然间选择了内嵌过特殊功能代码的应用程序,那么,该应用程序在运行的过程中,可能会表现出一些与未内嵌过的应用程序不同的行为。
当然,如果以上内嵌在应用程序中特殊代码的行为,仅限于为了让应用程序本身的功能实现更快捷、数据呈现效果更友好,对应用程序和用户而言,影响微乎其微。然而,如果上述内嵌在应用程序中特殊代码的行为,造成了应用程序运行不稳定、用户数据的泄露,甚至于,使得应用程序部分功能无法实现的后果,就会对应用程序的发布方以及用户产生非常消极的影响,此时,需要尽快确定上述问题出现的根源。并且,从通常意义上来讲,第三方对于已经发布的成熟的应用程序的下载并进行的二次开发,再将经过二次开发的应用程序上传的行为,通常会带来应用程序运行不稳定、部分功能无法实现或者用户数据泄露的风险。
另一方面,对于发布至应用市场的某一款应用程序而言,版本的稳定性至关重要,因此,在出现诸如上述情况的第三方对应用程序下载并进行二次开发的情况下,需要尽快确定出现问题的应用程序的版本,由此来降低对应用程序用户的损失,对维护应用市场的稳定性也至关重要。
相关技术中,为了定位移动电子设备的应用程序运行过程中与网络交互的的一些异常操作,通常会使用第三方的代理工具诸如超文本传输协议(HyperText TransferProtocol,HTTP)代理服务器Charles、HTTP协议调试代理工具Fiddler等,也会通过砸壳的方式获取应用程序的信息,为了定位移动电子设备的应用程序本地运行过程中的故障,通常需要一些自动化测试工具。但是,以上两种获取应用程序与服务器数据交互信息的方式的缺点非常明显:首先,由于需要借助于第三方测试工具,因此异常信息获取方法的灵活性不足;其次,在未获取与应用程序对应的源代码的情况下,无法获取到与应用程序操作对应的应用程序的页面操作,并且,也无法获取到应用程序在数据交互过程中的内存消耗等状况。
因此,上述获取应用程序异常信息的方式,灵活性不足,且获取的信息有限,不能满足实际对应用程序数据分析的需要。
基于此,本发明实施例提供了一种信息处理方法,该信息处理方法,可以基于通用集成开发环境以及软件开发工具包来实现。如图1所示:
步骤101、获取待分析的应用程序对应的第一数据;
其中,第一数据用于表示与待分析的应用程序对应的可执行代码集合。
在步骤101中,待分析的应用程序,可以是从App Store上下载的应用程序,示例性地,该应用程序可以是与官方发布在App Store上的应用程序的不同的应用程序,因此,待分析的应用程序在运行过程中的某一个或某些运行状态,与官方发布的应用程序运行过程中的某一个或某些运行状态不同;待分析的应用程序,还可以是从除了App Store之外的其他途径获取的应用程序,并且,是与官方发布在App Store上的应用程序的不同的应用程序,所以,该应用程序在运行时的状态与官方发布的对应版本号的应用程序运行时的状态不同。
在一种实施方式中,待分析的应用程序,可以是购物类别的应用程序,还可以是音频、视频播放类别的应用程序,还可以是文件编辑类别的应用程序。
在一种实施方式中,待分析的应用程序,可以是本地应用程序,即待分析的应用程序功能的实现不需要使用网络资源。
在一种实施方式中,待分析的应用程序,可以是需要使用网络资源才能完成其功能实现的应用程序。本申请对此不做限定。
在步骤101中,第一数据用于表示与待分析的应用程序对应的可执行代码集合,其中,第一数据,可以是与待分析的应用程序对应的可执行的二进制文件的集合。
第一数据,还可以是Mach-O文件。其中,Mach-O为Mach Object文件格式的缩写,它是一种用于可执行文件、目标代码、动态库、内核转储的文件格式,Mach-O提供了更强的扩展性,并提升了符号表中信息的访问速度。因此,相应地,第一数据,可以是将执行应用加密之后的应用程序通过静态砸壳或者动态砸壳的方式获得的;第一数据,还可以通过未执行应用加密的应用程序直接获得的。
步骤102、获取待分析的应用程序对应的待分析数据。
在步骤102中,待分析的应用程序对应的待分析数据,可以根据是待分析的应用程序的运行状态与官方发布的对应版本或时间的应用程序的运行状态不一致性得到的。
在一种实施方式中,如果待分析的应用程序的网络请求发送时延与官方发布的对应应用程序的网络请求发送时延不同,则可以将待分析的应用程序的网络请求方面的操作作为待分析数据。
在一种实施方式中,若待分析的应用程序的页面操作卡顿,则可以将待分析的应用程序的页面操作作为待分析数据。
在一种实施方式中,可以将待分析应用程序在运行过程中的任何一种或几种操作的集合作为待分析数据。
在一种实施方式中,可以将待分析应用程序运行过程中的本地操作和/或网络操作的集合作为待分析数据。
在步骤102中,获取待分析的应用程序对应的待分析数据,可以按照应用程序运行时的功能将待分析数据进行分类,比如,与网络请求相关的为网络类型的待分析数据,与页面操作相关的为页面操作类型的待分析数据等。
步骤103、基于待分析数据,得到第二数据;
其中,第二数据用于表示与待分析数据对应的可执行代码集合。
在步骤103中,第二数据也是可执行代码集合,第二数据可以是二进制可执行代码集合,也可以是可执行文件Mach-O文件。
在步骤103中,第二数据是与待分析数据对应的可执行代码集合,也就是说,第二数据中包括了与待分析的应用程序需要分析的参数对应的可执行代码集合。
需要说明的是,在本发明实施例中,步骤101可以在步骤102和步骤103之后执行。
步骤104、根据第一数据以及第二数据,获取目标信息;
其中,目标信息用于表示待分析的应用程序运行时产生的与待分析数据对应的数据流。
在步骤104中,第一数据,是与待分析的应用程序对应的可执行代码集合,而第二数据是与待分析数据对应的可执行代码集合,以上第一数据和第二数据,都是可执行代码集合,即都是可以在智能移动终端上直接运行的数据。
在步骤104中,数据流,是指在智能移动终端上持续操作所产生的一系列数据的集合,这些数据与待分析数据对应,比如,待分析数据为页面操作类型的数据,则该数据流中包括待分析的应用程序在页面操作过程中产生的数据集合,比如触摸屏的触摸手势识别、触摸位置识别、图片选择识别等操作;比如,待分析数据为网络请求类型的数据,则该数据流中包括待分析的应用程序的网络请求对应的数据集合,以及,收到的服务器返回的数据集合等。
目标信息,是待分析的应用程序运行时产生的与待分析数据对应的数据流,也就是说,目标信息中,包括了所有与待分析数据对应的操作产生的数据集合,或者,与待分析数据对应的部分操作产生的数据集合。
因此,本发明实施例提供的信息处理方法,获取待分析的应用程序对应的第一数据,获取待分析的应用程序对应的待分析数据,基于待分析数据,得到第二数据,再基于第一数据和第二数据,获取目标数据。由此,在本发明实施例提供的信息处理方法中,并未涉及第三方HTTP测试工具的使用,而是基于待测试应用程序本身展开目标数据的获取过程,因此,本发明实施例提供的信息处理方法,实现方式更加灵活;并且,基于待分析数据进行目标数据的获取,使得目标数据的获取针对性更强,也更全面。
基于前述实施例,本发明实施例提供了一种信息处理方法,如图2所示,其中:
步骤201、获取待分析的应用程序对应的第一数据。
步骤202、获取待分析应用对应的待分析数据。
步骤203、基于待分析数据,确定第三数据;
其中,第三数据为与所述待分析数据对应的接口数据。
在步骤203中,接口数据,可以是应用程序接口(Application ProgrammingInterface,API),API是一些预先定义的函数,或指软件系统不同组成部分衔接的约定,其目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源代码,或理解内部工作机制的细节。
在步骤203中,对于待分析的应用程序而言,在其功能完整实现过程中执行的每一步操作,都需要调用操作系统提供的API接口才能实现,例如对于iOS系统而言,待分析的应用程序的功能实现,都需要通过调用iOS系统的API,以获取iOS操作系统运行时系统的支持,即Runtime System的支持。因此,对于待分析的应用程序而言,其功能实现需要调用很多的API接口。
在步骤203中,对于待分析的应用程序而言,基于待分析数据,确定待分析数据对应的API接口数据,使得在对待分析的应用程序的信息处理过程中,就锁定了与待分析数据对应的数据流,从而使得信息处理过程的针对性更强。
步骤204、基于第三数据以及待分析数据,得到第二数据。
在步骤204中,第三数据是API接口数据,而第二数据是可执行代码集合,因此,在实际的实现过程中,需要基于待分析数据,对API接口进行整合得到第三数据,并第三数据进行编译,得到第二数据。
在一种实施方式中,基于待分析数据,对API接口进行整合得到第三数据,可以是基于待分析数据,确定与待分析数据对应的API接口,并将这些API接口汇总到一起。
比如,待分析数据为网络请求类型的数据,则可以从iOS系统的API接口中提取与网络请求相关的接口类如NSURLProtocol类接口,用于实现对网络请求,以及对数据返回的拦截和保存。
比如,待分析数据为Cookie收集类型的数据,则可以从iOS系统的API中提取WKHTTPCookieStore类的相关接口以收集Cookie。
比如,待分析数据为页面流水获取类型的数据,则可以从API中提取ViewController类的相关接口对页面视图的各种操作进行跟踪并记录。
需要说明的是,对象的hash值,是指对象的地址。在软件开发的面向对象的编程实现中,当创建任何一个对象的时候,都会为该对象分配一个唯一的地址,并且,该地址为系统所知晓,通过调用系统提供的API可以方便的获取任一有效对象的地址,在通常情况下,任一对象的生命周期结束即对象消亡时,该地址也会变为无效,即该对象的存储空间会被系统回收,因此,当对象生命周期结束时,若对象的hash值仍然有效,则说明该对象创建时申请的存储空间没有被正常回收,此时就存在内存泄露。
比如,待分析数据为需要分析待分析的应用程序的异常状态类型的数据,则可以使用NSException类接口实现崩溃监控。
其中,对第三数据进行编译,可以是基于集成开发环境(Integrated DevelopmentEnvironment,IDE)来实现的,其中,IDE是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
步骤205、基于第一数据以及第二数据,得到第四数据;
其中,第四数据表示用于捕获所述待分析应用中与待分析数据对应操作的可执行代码集合。
在步骤205中,第一数据是与待分析的应用程序对应的可执行代码集合,第二数据是与待分析数据对应的API接口代码编译后得到的可执行代码集合。在实际实现过程中,可以直接使用IDE环境打包第一数据和第二数据,得到第四数据。通常使用的IDE打包环境,如MonkeyDev等,都是非常成熟的打包其中,MonkeyDev是一个极为方便的逆向调试平台,这个平台继承了逆向调试常用的库、工具,并且还可以方便的使用pod库集成第三方库等。
在步骤205中,第四数据,也是可执行代码集合,并且,第四数据中不仅包括了与待分析的应用程序对应的可执行代码集合,而且包括了与待分析的应用程序的待分析数据对应的API接口数据对应的可执行代码集合,即第四数据这一可执行代码集合,不仅可以实现待分析的应用程序的功能,还包括了第二数据,而第二数据中包括了与待分析数据对应的API接口数据对应的可执行代码集合,即第四数据可以用于表示捕获待分析应用中与待分析数据对应操作的可执行代码集合。
步骤206、基于第四数据,获取目标信息。
在步骤206中,第四数据,是可执行代码集合,并且不但包括了待分析的应用程序功能实现,还包括了可以捕获待与待分析数据对应的API接口数据的可执行代码集合,即第四数据,可以用于捕获待分析的应用中的与待分析数据对应的操作产生的数据流。
具体地,在一种实施方式中,基于第四数据,获取目标信息,可以通过如下方式来实现:
获取信息获取窗口状态;其中,信息获取窗口状态用于确定是否获取目标信息。若信息获取窗口状态为需要获取信息状态,则基于第四数据,获取目标信息。
在实际实现中,可以在待分析的应用程序运行时设置一信息获取窗口,该窗口的优先级高于待分析的应用程序运行过程中所创建的所有其他窗口的优先级,由此,可以保证该窗口在待分析的应用程序运行时是始终位于待分析的应用程序所有窗口的最顶层的,从而可以保证该窗口可以在任何时刻获取来自触摸屏的触摸操作,并基于该触摸操作切换信息获取窗口状态。
在iOS中,对于窗口的优先级,设置了三个层级,开发人员经常使用的层级是UIWindowLevelNormal。该层级中UIWindowLevel定义为:typedef CGFloatUIWindowLevelNS_TYPED_EXTENSIBLE_ENUM;可见UIWindowLevel属于一个浮点类型,对于其他2个层级值分别为2000,1000。层级定义如下所示:
UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert;
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar;
可以将信息获取窗口的级别设置为UIKIT_EXTERN const UIWindowLevelUIWindowLevelAlert+100,也就是说,信息获取窗口的优先级比系统中窗口的最高级别还要高一些,这样可以保证在待分析的应用程序在运行过程中,不会影响该窗口与用户的随时交互。
在一种实施方式中,可以通过触摸或者滑动信息获取窗口的全部或部分区域,设定为需要获取信息状态,此时,基于第四数据,获取目标数据。
在一种实施方式中,还可以通过触摸或者滑动信息获取窗口的全部或部分区域,设定为不需要获取信息状态,此时,不执行获取目标数据的任何操作。
在一种实施方式中,该信息获取窗口,是不可见的,但是设置在待分析应用程序运行时窗口的某一指定区域。
如图3中的信息获取窗口所示。其中,图3是本发明实施例中待分析的应用程序功能实现的一个应用程序示例。在图3中左侧部分右上角的斜线区域,即为信息获取窗口,该窗口在待分析的应用程序的窗口任意切换时,均位于所有窗口的最顶端。
在一种实施方式中,用户通过触摸或者滑动图3中的信息获取窗口的全部会部分区域,设定为需要获取信息状态之后,在待分析应用程序显示界面的某一指定区域,如图3右侧部分的右侧长方形区域内,显示与待分析数据对应的待分析类型,如图3所示的网络、崩溃、用户偏好设置、页面流水以及内存泄露等选项。用户可以在该指定区域选择某一个或某几个或者全部的待分析类型,从而基于第四数据,获取目标信息。
具体地,在一种实施方式中,步骤206中的基于第四数据,获取目标数据,还可以通过如下方式来实现:
基于待分析数据,确定信息捕获操作;加载第四数据,基于信息捕获操作,获取目标信息。
在上述过程中,信息捕获操作,是在待分析的应用程序运行过程中执行的,可以获取目标信息的操作。
在上述过程中,首先基于待分析数据,确定信息捕获操作。例如,待分析数据表示网络请求类型的数据,则相应地,可以确定信息捕获操作为在待分析的应用程序运行时执行全部或部分网络请求操作;例如,待分析数据表示页面请求类型的数据,则相应地,可以确定信息捕获操作为在待分析的应用程序运行时执行全部或部分页面操作等。
在确定信息捕获操作之后,加载第四数据,并基于加载后的第四数据,即运行中的待分析的应用程序,执行确定的信息捕获操作,由此,可以产生与待分析数据对应的数据流,也就是目标数据。
在一种实施方式中,基于待分析数据,确定信息捕获操作,还可以通过如下方式来实现:
基于待分析数据,确定信息捕获操作列表;基于信息捕获操作列表,获取当前账户对应的信息捕获操作。
其中,信息捕获操作列表,是指包括至少一种信息捕获操作的列表。
在一种实施方式中,信息捕获操作的列表,可以只包括一种信息捕获操作,例如网络请求相关类别的信息捕获操作。
在一种实施方式中,信息捕获操作的列表,可以包括当信息获取窗口状态为需要获取信息状态时,在待分析的应用程序的右侧指定区域显示的所有与待分析的应用程序对应的选项中某几项或全部选项对应的信息捕获操作,如图3右侧部分的灰色长方形部分所示。
当前账户,是指可以访问或者获取待分析的应用程序的账户;还可以是可以访问或执行待分析的应用程序某一些功能模块的账户;还可以是在某一设定的时间段内可以访问待分析的应用程序的账户;还可以是在某一设定的时间段内可以访问待分析的应用程序某一个或某几个功能模块的账户。
相应地,基于确定的信息捕获操作列表中的所有信息捕获操作、以及当前账户对待分析的应用程序可知访问或执行的功能模块,加载第四数据,从而可以获取当前账户对应的第一目标数据。
更进一步地,当每一账户都根据其账户对应的信息捕获操作获取第二目标数据之后,第一目标数据与每一第二目标数据结合,即可获得最终的目标数据。
在本发明的实施方式中,通过获取待分析的应用程序对应的第一数据和待分析的应用程序对应的待分析数据,并基于待分析数据确定第三数据,再基于点数据以及待分析数据得到第二数据,最后基于第一数据和第二数据得到第四数据,进而基于第四数据获取目标数据。因此,本发明实施例提供的信息处理方法,对目标数据的获取,完全根据待分析的应用程序的自身数据执行,从而使得对目标数据的获取,可以根据待分析的应用程序进行灵活的调整,从而使得目标数据的获取过程更灵活,更全面,也更高效。
基于前述实施例,本发明提供了一种信息处理方法,如图4所示,其中
步骤401、获取待分析的应用程序对应的第一数据。
步骤402、基于待分析的应用程序的运行状态,获取待分析数据。
在步骤402中,待分析的应用程序的运行状态,是指待分析的应用程序被启动之后,相应用户操作指令时一系列的执行状态,比如,获取用户指令的速度、相应用户指令的速度、基于用户的指令向服务器发送的请求、收到来自服务器的数据响应以及加载服务器返回的数据的速度、对服务器返回数据的渲染效果等等。
在一种实施方式中,步骤401是通过如下方式来实现的:
基于待分析应用程序的运行状态,获取运行异常信息;基于运行异常信息,获取待分析数据。
获取的运行异常信息,可以是待分析的应用程序在运行过程中的非正常状态,比如,无法正常获取用户的指令,无法正确获取用户在触摸屏上的触摸位置,无法在给定时间内将用户对服务器的请求发送至服务器,对服务器返回的数据无法正常加载,当服务器返回数据后待分析的应用程序的界面、或者整个应用程序的状态无法正常切换等非正常状态,那么,对应地,基于该运行异常信息,获取的待分析数据,就是待分析的应用程序的触摸响应类型、网络请求类型、以及界面切换类型。
在一种实施方式中,待分析的应用程序的运行状态,可以是待分析的应用程序在运行过程中某一类别的非正常状态,比如,该非正常状态可以是网络请求的非正常状态,比如无法正确发送请求至服务器;还可以是待分析的应用程序频繁发生崩溃异常的非正常状态,比如,在运行过程中,待分析的应用程序多次出现非正常卡顿、退出的非正常现象;还可以是页面无法切换的非正常状态,比如用户选择点击某一图片,或者某一选项,但是页面无法正常切换和跳转;那么,对应地,基于该运行异常信息,获取的待分析数据,就是待分析的应用程序对应的网络请求类型、崩溃类型、页面类型。
在一种实施方式中,待分析的应用程序的非正常状态,还可以是待分析的应用程序启动和运行而导致的内存泄露等严重问题导致的非正常状态。此时,内存泄露主要包括两种,第一种内存泄露,是待分析的应用程序自身对象对应的内存泄露,此时,待分析的应用程序的启动时,创建了一个对象,可以为第一对象,并且系统为该第一对象分配了第一hash值,该第一hash值对应于待分析的应用程序本身,当待分析的应用程序退出时,正常情况下,第一hash值变为无效值,但是当内存泄露情况发生时,当待分析的应用程序退出时,第一hash值仍然为有效值;第二中内存泄露,是待分析的应用程序在运行过程中为了实现其功能而创建的一系列对象,比如为了向用户呈现图片,需要创建窗口对象,即第二对象,为了向网络发送请求,需要创建消息对象,即第三对象,也就是说,待测试的应用程序在实现其功能的过程中,需要创建大量的第二对象和第三对象,以及,其他类型的第四对象、第五对象等,当这些对象创建时,系统也会为这些对象分配对应的第二hash值、第三hash值、第四hash值以及第五hash值等,当这些对象生命周期结束时,若任一对象对应的hash值如果仍然有效,那么就意味着,存在该任一对象对应的内存泄露。那么,对应地,基于该运行异常信息,获取的待分析数据,就是内存泄露类型。
步骤403、基于待分析数据,得到第二数据。
步骤404、基于第一数据以及第二数据,获取目标信息。
在本发明实施例提供的信息处理方法中,基于待分析的应用程序的运行状态中的异常状态确定待分析数据,并根据第一数据和与待分析数据确定的第二数据,获取目标信息,由此,在获取目标信息的过程中,充分考虑了待分析的应用程序对应实际运行时的运行状态,从而使得对待分析的应用程序的分析过程可以根据待分析的应用程序的运行状态随时调整,从而使得上述信息处理方法更加灵活,获取的目标信息也更能全面而客观的反应出待分析的应用程序的运行状态,从而可以实现异常运行状态原因的快速准确定位。
基于前述实施例,本发明实施例提供了一种信息处理装置,如图5所示,信息处理装置5包括:获取模块51和确定模块52。
在本实施例中,将通过图6来说明信息处理装置5的具体实现,其中,图6是本发明实施例所保护的数据处理装置对应的数据处理流程图。在图6中,包括A-D这4个主要的组成部分,这五个部分的功能和作用将在下文中做详细的说明。
获取模块51,用于获取待分析的应用程序对应的第一数据;获取待分析的应用程序对应的待分析数据;基于待分析数据,得到第二数据;
其中,第一数据用于表示与待分析的应用程序对应的可执行代码集合;第二数据用于表示与待分析数据对应的可执行代码集合。
获取模块51的上述功能,可以通过IDE来实现。
在一种实施方式中,获取模块51,获取待分析的应用程序对应的第一数据,可以是使用带有反编译功能的IDE来实现的。这种方式主要是针对于未经过应用加密的待分析应用程序而言的,如图6的A中所示,即未经应用加密的应用程序。将未经过应用加密的待分析应用程序加载至获取模块中,即可获取第一数据。
在一种实施方式中,获取模块51获取待分析的应用程序对应的第一数据,还可以是通过砸壳的方式实现的,其中,可以通过在前文中提到的动态砸壳和静态砸壳的方式来获取第一数据,如图6的A中所示,即为从App Store下载应用程序。这种方式主要针对已经经过应用加密的待分析应用程序而言的,此时,由于待分析的应用程序已经经过加密,因此,必须首先执行砸壳操作才能进一步获取对应的可执行代码集合。
当用户从App Store下载待分析的应用程序,或者通过其他途径获取到待分析的应用程序之后,获取模块51,如图6中的B所示,可以通过IDE或者,通过动态砸壳、静态砸壳的方式,获取待测试的应用程序对应的可执行代码集合,即第一数据。
获取模块51,获取待分析的应用程序对应的待分析数据,可以是通过具备测试功能的IDE来实现的,比如一些自动化测试工具LoadRunner,其中,LoadRunner,是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。当然,在本发明实施例中,自动化测试工具的选用,并不限定于LoadRunner一种。
在一种实施方式中,可以根据自动化测试工具的测试结果和测试报告,确定出待分析的应用程序在运行过程中的异常状态,从而确定出对应的待分析数据,如图6的C中所示,待分析数据可以包括待分析的应用程序的(1)网络类型、(2)崩溃类型、(3)用户偏好设置类型、(4)丢帧类型、(5)页面切换类型、(6)页面流水类型、(7)内存泄露类型以及待分析的应用程序的(8)更新类型等。
在一种实施方式中,用户偏好设置类型的数据,可以是用户针对待分析的应用程序执行的个性化设置,在待分析的应用程序运行过程中未体现或未完全体现,或者,待分析的应用程序的运行结果与用户的个性化设置完全相反的结果。也就是说,用户偏好设置类型,用于表示与用户针对待分析的应用程序的个性化设置不符的运行结果。比如,用户设定在待分析的应用程序的运行过程中,不能自动弹出广告,但是在待分析的应用程序运行过程中弹出了广告,即时只有一次弹出,也应确认为异常结果。
在一种实施方式中,丢帧类型的数据,是指待分析的应用程序在运行过程中,向服务器发送的数据帧丢失的情况。
在一种实施方式中,页面流水类型的数据,用于表示待分析的应用程序在运行过程中产生的与页面操作对应的异常结果的数据流,比如,用户在浏览待分析的应用程序中的商品浏览、加入购物车、订单提交以及订单结算等操作。相应地,与页面流水类型对应的待分析数据,可以是商品无法正常添加至购物车、订单无法递交、订单金额异常、订单无法结算、订单无法正常支付等异常结果中的一个,或者,若干异常结果的组合。
在一种实施方式中,更新类型的数据,可以是待分析的应用程序无法正常更新的异常结果。比如,官方发布的待分析的应用程序正常更新的流程应该是,从用户接收官方推送的更新通知,将当前使用的版本更新到官方发布的待分析的应用程序的最新版本,或者,用户自行选择动App Store下载的指定版本,那么,相应地,更新类型,可以是用户接收一种更新通知执行更新,但是更新后的版本并非官方发布的任何一种版本;还可以是,用户从App Store下载的指定版本并不是官方发布的任何一种待分析的应用程序的版本。
在一种实施方式中,更新类型的数据,还可以是发布待分析的应用程序的开发人员,为了对待分析的应用程序进行分析而设定的开发并更新的方式。比如,对于某一组或某一个开发人员,可以对待分析的应用程序中的某一模块或若干模块进行开发并更新,而其他组或其他开发人员无此权限。
在一种实施方式中,更新类型的数据,还可以是测试待分析的应用程序的测试人员,为了对待分析的应用程序进行测试而设定的测试并更新测试结果的方式。比如,某一组或某一个测试人员,可以对待分析的应用程序中的某一模块或若干模块进行测试,并实时发布测试结果,而其他组会其他测试人员无此权限。
在一种实施方式中,更新类型的数据,还可以是开发和测试待分析的应用程序的开发人员和测试人员相对于待分析的应用程序的权限集合,各个开发人员和测试人员根据各自的权限执行对应的操作。
在一种实施方式中,待分析数据还可以包括网页cookie类型的数据等。
在一种实施方式中,还可以预先设定开发人员和测试人员对待分析的应用程序的权限关系,从而使得在分析和开发过程中,开发人员和测试人员可以快速的确定自身的职责,并根据自身自责迅速开展工作,以及,在工作开展过程中,及时透明的共享数据信息,做到故障快速定位,版本快速稳定。
获取模块51,基于待分析数据,得到第二数据,可以是基于带有编辑、编译功能的IDE来实现的。
在一种实施方式中,当待分析数据确定之后,IDE可以加载与待分析的应用程序运行的目标系统对应的API文件包,并解析该文件包中的每一API文件。还可以响应开发人员的选择,从该API文件包以及API文件中搜索对应的API文件以及对应的方法或者函数,并且,更进一步地,还可以列举出该方法或函数对于输入参数和输出参数的要求,以及,简单的方法或函数的功能解释。
在一种实施方式中,与前文的说明以及图6中的C相对应地,通过IDE,可以确定与C中任一待分析数据对应的API接口集合,如图7的D中得到第二数据所述,再对每一API接口方法或函数传递其所需要的输入参数,接收其对应的输出参数,通过以上过程,再借助于IDE的编译功能,即可得到与待分析数据对应的第二数据。
在一种实施方式中,第二数据,可以是与图6中的C对应的一种或几种类型的待分析数据对应的可执行代码集合。
在一种实施方式中,第二数据,还可以是开发人员和/或测试人员根据需要选择图6中C对应的一种或几种类型的待分析数据,在此基础上,再得到第二数据的。
确定模块52,用于基于第一数据以及所述第二数据,获取目标信息;所述目标信息,用于表示待分析的应用程序运行时产生的与待分析数据对应的数据流。
具体地,确定模块52,可以通过具备打包功能的第三方应用以及具备测试功能的IDE来实现的。
在一种实施方式中,确定模块52,如图6中D所示,可以是通过具备逆向调试功能的第三方应用,如MonkeyDev,以及具备测试功能的IDE,或者智能终端设备来实现的。
在一种实施方式中,通过具备逆向调试功能的第三方工具,将第一数据和第二数据进行打包,得到第四数据。其中,第四数据为与待分析的应用程序对应的可执行代码集合。
在一种实施方式中,确定模块52,还可以基于第一数据和第二数据,得到第四数据。其中,基于第一数据和第二数据,得到第四数据,可以是开发人员基于软件开发工具包(Software Development Kit,SDK)来实现的。开发人员基于第一数据和第四数据中的相同接口,通过SDK对接口进行适配和耦合,并对适配和耦合之后的第一数据和第二数据进行编译,从而得到第四数据。
在一种实施方式中,将第四数据安装至智能终端设备中,并运行该第四数据,即与待分析的应用程序对应的,添加了与待分析数据对应的第二数据的可执行代码集合,并在第四数据运行的过程中,获取目标信息。
在一种实施方式中,加载第四数据,并获取目标信息,可以是基于具备测试功能的IDE来实现的。其中,具备测试功能的IDE可以包括一些自动化测试工具。
本发明实施例公布的信息处理装置,包括获取模块,获取待分析的应用程序对应的第一数据以及待分析数据,并基于待分析数据得到第二数据,还包括确定模块,基于第一数据和第二数据,获取目标数据。因此,本发明实施例公布的信息处理装置,可以根据待分析的应用程序的运行状态确定第二数据,并根据第一数据和第二数据获取目标数据,从而使得目标数据的获取更精准,更全面,并且,可以根据实际的需要调整第二数据,因此,目标数据的获取就更加灵活。
基于前述实施例,本发明实施例还公布了一种信息处理装置7,如图7所示,该信息处理装置7包括:处理器71、存储器72和通信总线73。其中:
通信总线73,用于实现处理器71和存储器72之间的通信连接。
处理器71用于执行存储器72中存储的信息处理方法程序,以实现图1至图2或图4至图5任一所示的信息处理方法。
在本发明实施例公布的信息处理装置,获取待分析的应用程序对应的第一数据以及待分析数据,并基于待分析数据得到第二数据,基于第一数据和第二数据,获取目标数据。因此,本发明实施例公布的信息处理装置,可以根据待分析的应用程序的运行状态确定第二数据,并根据第一数据和第二数据获取目标数据,从而使得目标数据的获取更精准,更全面,并且,可以根据实际的需要调整第二数据,因此,目标数据的获取就更加灵活。
基于前述实施例,本申请提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如图1至图2以及图4任一所示的信息处理方法的步骤。
需要说明的是,上述计算机可读存储介质可以是只读存储器(Read OnlyMemory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所描述的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种信息处理方法,其特征在于,所述方法包括:
获取待分析的应用程序对应的第一数据;其中,所述第一数据用于表示与所述待分析的应用程序对应的可执行代码集合;
获取所述待分析的应用程序对应的待分析数据;
基于所述待分析数据,得到第二数据;其中,所述第二数据用于表示与所述待分析数据对应的可执行代码集合;
基于所述第一数据以及所述第二数据,得到第四数据;其中,所述第四数据表示用于捕获所述待分析的应用程序中与所述待分析数据对应操作的可执行代码集合;基于所述第四数据,获取目标信息;其中,所述目标信息,用于表示所述待分析的应用程序运行时产生的与所述待分析数据对应的数据流。
2.根据权利要求1所述的方法,其特征在于,所述基于所述待分析数据,得到第二数据,包括:
基于所述待分析数据,确定第三数据;其中,第三数据为与所述待分析数据对应的接口数据;
基于所述第三数据以及所述待分析数据,得到所述第二数据。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第四数据,获取所述目标信息,包括:
获取信息获取窗口状态;其中,所述信息获取窗口状态用于确定是否获取目标信息;
若所述信息获取窗口状态为需要获取信息状态,则基于所述第四数据,获取所述目标信息。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第四数据,获取所述目标信息,包括:
基于所述待分析数据,确定信息捕获操作;
加载所述第四数据,基于所述信息捕获操作,获取所述目标信息。
5.根据权利要求4所述的方法,其特征在于,所述基于所述待分析数据,确定信息捕获操作,包括:
基于所述待分析数据,确定信息捕获操作列表;
基于所述信息捕获操作列表,获取当前账户对应的信息捕获操作。
6.根据权利要求1所述的方法,其特征在于,所述获取所述待分析的应用程序对应的待分析数据,包括:
基于所述待分析的应用程序的运行状态,获取所述待分析数据。
7.根据权利要求6所述的方法,其特征在于,所述基于所述待分析的应用程序的运行状态,获取所述待分析数据,包括:
基于所述待分析的应用程序的运行状态,获取运行异常信息;
基于所述运行异常信息,获取所述待分析数据。
8.一种信息处理装置,其特征在于,所述装置包括获取模块和处理模块,其中,
所述获取模块,用于获取待分析的应用程序对应的第一数据;获取所述待分析的应用程序对应的待分析数据;基于所述待分析数据,得到第二数据;
其中,所述第一数据用于表示与所述待分析的应用程序对应的可执行代码集合;所述第二数据用于表示与所述待分析数据对应的可执行代码集合;
确定模块,用于基于所述第一数据以及所述第二数据,得到第四数据;其中,所述第四数据表示用于捕获所述待分析的应用程序中与所述待分析数据对应操作的可执行代码集合;基于所述第四数据,获取目标信息;所述目标信息,用于表示所述待分析的应用程序运行时产生的与所述待分析数据对应的数据流。
9.一种信息处理装置,其特征在于,所述装置包括:处理器、存储器和通信总线;
所述通信总线用于实现所述处理器与所述存储器之间的通信连接;
所述处理器用于执行所述存储器中的信息处理方法的程序,以实现权利要求1至7中任一项所述的信息处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至7中任一项所述的信息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911301388.8A CN111158996B (zh) | 2019-12-17 | 2019-12-17 | 一种信息处理方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911301388.8A CN111158996B (zh) | 2019-12-17 | 2019-12-17 | 一种信息处理方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111158996A CN111158996A (zh) | 2020-05-15 |
CN111158996B true CN111158996B (zh) | 2022-01-07 |
Family
ID=70557580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911301388.8A Active CN111158996B (zh) | 2019-12-17 | 2019-12-17 | 一种信息处理方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111158996B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110121183A (zh) * | 2018-02-07 | 2019-08-13 | 中国移动通信有限公司研究院 | 一种信息处理方法、装置和计算机可读存储介质 |
CN110287700A (zh) * | 2019-05-14 | 2019-09-27 | 北京邮电大学 | 一种iOS应用安全分析方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101393521B (zh) * | 2008-11-13 | 2012-04-25 | 上海交通大学 | Windows应用程序内部固化数据的提取系统 |
CN108268356A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团浙江有限公司 | 基于字节码覆写的反向web插桩分析方法和web服务器 |
US10644980B2 (en) * | 2017-03-29 | 2020-05-05 | Ca, Inc. | Automated enforcement of architecture guidelines for application programming interfaces |
-
2019
- 2019-12-17 CN CN201911301388.8A patent/CN111158996B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110121183A (zh) * | 2018-02-07 | 2019-08-13 | 中国移动通信有限公司研究院 | 一种信息处理方法、装置和计算机可读存储介质 |
CN110287700A (zh) * | 2019-05-14 | 2019-09-27 | 北京邮电大学 | 一种iOS应用安全分析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111158996A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8434068B2 (en) | Development system | |
US8726255B2 (en) | Recompiling with generic to specific replacement | |
US6539501B1 (en) | Method, system, and program for logging statements to monitor execution of a program | |
US11694299B2 (en) | Methods and apparatus to emulate graphics processing unit instructions | |
US20180260199A1 (en) | Method and apparatus for intermediate representation of applications | |
CN108319460B (zh) | 应用程序安装包的生成方法、装置、电子设备及存储介质 | |
US7069474B2 (en) | System and method for assessing compatibility risk | |
Shahriar et al. | Testing of memory leak in android applications | |
KR20070062606A (ko) | 플랫폼 독립적인 동적 링킹 | |
US9118679B2 (en) | Analytics data collection with low integration cost for dynamic message passing systems | |
US20060161898A1 (en) | Method and system for project library dependency management | |
US20150248343A1 (en) | Method and apparatus for implementing instrumentation code | |
KR20070067207A (ko) | 런타임 동적 링킹 | |
US20080127119A1 (en) | Method and system for dynamic debugging of software | |
US20080127118A1 (en) | Method and system for dynamic patching of software | |
Adamsen et al. | Practical initialization race detection for JavaScript web applications | |
WO2019237239A1 (zh) | 数据测试方法、装置、设备/终端/服务器及计算机可读存储介质 | |
CN110688198B (zh) | 系统调用方法、装置和电子设备 | |
US9244672B2 (en) | Optimization utility for developing embedded systems | |
CN110597496B (zh) | 应用程序的字节码文件获取方法及装置 | |
CN111158996B (zh) | 一种信息处理方法、装置和计算机可读存储介质 | |
KR20130020135A (ko) | 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법 | |
Ruprecht et al. | Automatic feature selection in large-scale system-software product lines | |
CN110334031A (zh) | 内存分配代码检测方法、装置、计算机设备及存储介质 | |
Wu et al. | CydiOS: A Model-Based Testing Framework for iOS Apps |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2nd floor, Block C, 18 Kechuang 11th Street, Daxing Economic and Technological Development Zone, Beijing, 100176 Applicant before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |