程序漏洞的上报方法、装置、设备及存储介质与流程

文档序号:27188710发布日期:2021-11-03 11:30阅读:170来源:国知局
程序漏洞的上报方法、装置、设备及存储介质与流程

1.本技术涉及计算机程序领域,特别涉及一种程序漏洞的上报方法、装置、设备及存储介质。


背景技术:

2.在一款软件发布之前,需要对软件客户端进行程序测试,以保证发布后的软件客户端的稳定性。
3.在测试选用的终端上安装并运行需要测试的软件客户端,且在上述软件客户端中植入漏洞监控组件,比如bugly控件;若在运行软件客户端的过程中出现程序漏洞错误,漏洞监控组件采集出现程序漏洞时的运行数据并上报至漏洞管理平台,由软件开发人员根据运行数据查找程序漏洞,之后进行程序漏洞的修复。
4.在程序漏洞的修复过程中,软件开发人员还需要了解软件客户端出现程序漏洞时显示界面的变化,因此,软件开发人员需要重新运行软件客户端,同时对显示界面进行录屏,匹配出现程序漏洞时的一段视频,进而根据上述运行数据和其匹配的视频分析程序漏洞,进行程序漏洞的修复。上述程序漏洞的修复过程繁琐,需要花费大量时间进行程序漏洞的定位,即获取上述运行数据与其匹配的视频,降低了程序漏洞的修复效率。


技术实现要素:

5.本技术实施例提供了一种程序漏洞的上报方法、装置、设备及存储介质,可以将第二客户端中程序漏洞对应的日志信息与用户界面的录屏片段同时上报至漏洞管理平台,以在漏洞修复过程中使得程序开发人员能够高效的定位第二客户端中的程序漏洞,从而进行漏洞修复。所述技术方案如下:
6.根据本技术的一方面,提供了一种程序漏洞的上报方法,该方法包括:
7.通过第一客户端监控第二客户端的程序运行,且对第二客户端运行时的用户界面进行录屏;
8.响应于监控到第二客户端的程序运行出现程序漏洞,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段,且从程序崩溃日志中获取第一时刻对应的日志信息,第一时刻是指第一客户端监控到程序漏洞的时刻;
9.通过第一客户端将视频片段与程序崩溃日志上报至漏洞管理平台,漏洞管理平台用于提供视频片段与程序崩溃日志以对程序漏洞进行准确定位。
10.根据本技术的另一方面,提供了一种程序漏洞的上报装置,该装置包括:
11.运行模块,用于通过第一客户端监控第二客户端的程序运行,且对第二客户端运行时的用户界面进行录屏;
12.获取模块,用于响应于监控到第二客户端的程序运行出现程序漏洞,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段,且从程序崩溃日志中获取第一时刻对应的日志信息,第一时刻是指第一客户端监控到程序漏洞的时刻;
13.上报模块,用于通过第一客户端将视频片段与程序崩溃日志上报至漏洞管理平台,漏洞管理平台用于提供视频片段与程序崩溃日志以对程序漏洞进行准确定位。
14.根据本技术的另一方面,提供了一种终端,该终端包括:
15.存储器;
16.与存储器相连的处理器;
17.其中,处理器被配置为加载并执行可执行指令以实现如上一个方面及其可选实施例所述的程序漏洞的上报方法。
18.根据本技术的另一方面,提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,上述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如上一个方面及其可选实施例所述的程序漏洞的上报方法。
19.本技术实施例提供的技术方案带来的有益效果至少包括:
20.在终端中同时运行有第一客户端与第二客户端,该方法通过第一客户端监控第二客户端的程序进程,且同时对第二客户端运行时的用户界面进行录屏;在第一客户端检测到第二客户端的程序运行出现程序漏洞时,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段,且从程序崩溃日志中获取第一时刻对应的日志信息,第一时刻是指第一客户端监控到程序漏洞的时刻;之后通过第一客户端将截取到的视频片段与日志信息上报至漏洞管理平台,以使得程序开发人员能够在漏洞管理平台上同时获得上述视频片段与日志信息,无需重新运行第二客户端、且对程序漏洞出现时刻前后一段时间内第二客户端的用户界面进行录屏,即可得到上述视频片段,进而将视频片段上的界面变化与触发的操作匹配日志信息,迅速的定位第二客户端的程序漏洞,进行漏洞修复,大大地节省了漏洞修复所花费的时间,提高了漏洞修复的效率。
附图说明
21.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
22.图1是本技术一个示例性实施例提供的计算机系统的结构示意图;
23.图2是本技术一个示例性实施例提供的程序漏洞的上报方法的流程图;
24.图3是本技术另一个示例性实施例提供的程序漏洞的上报方法的流程图;
25.图4是本技术一个示例性实施例提供的录屏视频的播放方法的流程图;
26.图5是本技术一个示例性实施例提供的程序漏洞的查看方法的流程图;
27.图6是本技术一个示例性实施例提供的程序漏洞的上报系统的结构示意图;
28.图7是本技术另一个示例性实施例提供的程序漏洞的上报方法的流程图;
29.图8是本技术另一个示例性实施例提供的程序漏洞的上报方法的流程图;
30.图9是本技术另一个示例性实施例提供的程序漏洞的上报方法的流程图;
31.图10是本技术另一个示例性实施例提供的程序漏洞的上报方法的流程图;
32.图11是本技术一个示例性实施例提供的第一客户端的用户界面的示意图;
33.图12是本技术一个示例性实施例提供的程序漏洞的上报装置的框图;
34.图13是本技术一个示例性实施例提供的终端的结构示意图;
35.图14是本技术一个示例性实施例提供的服务器的结构示意图。
具体实施方式
36.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
37.对本技术中涉及的名词进行解释如下:
38.漏洞管理平台:是指用于管理客户端研发的流程、需求、缺陷的平台。比如,在客户端的运行过程中,终端监控到程序运行出现程序漏洞,并将程序漏洞上报至漏洞管理平台;程序开发人员可以在漏洞管理平台上查看上报的程序漏洞,对应修复程序漏洞。又比如,上述需求可以是指客户端的功能需求,程序开发人员可以在漏洞管理平台上构建客户端的功能需求的框架。又比如,漏洞平台上包括了客户端的研发流程,程序开发人员需要按照上述研发流程进行线上操作,一步一步地完成客户端的研发。
39.日志管理平台:是指用于管理日志的平台;日志可以包括终端日志与服务器日志中的至少一种。示例性的,终端在运行过程中生成日志信息,并将上述日志信息上传至日志管理平台,由日志管理平台对应存储上述终端的日志信息。程序开发人员还可以在日志管理平台上对日志信息进行查看。示例性的,在日志管理平台上输入描述信息来查看相关的日志信息,比如,描述信息可以为时间、关键词等。
40.请参考图1,示出了本技术一个示例性实施例提供的计算机系统100的结构框图。计算机系统100包括:第一终端120、服务器140和第二终端160。
41.第一终端120上安装有操作系统;该操作系统上安装有第一客户端和第二客户端。其中,上述第一客户端是用于监控第一终端120中第二客户端的程序运行的客户端。上述第二客户端可以任意类型的客户端,比如,即时通讯软件、金融软件、游戏软件、购物软件、视频播放软件、社区服务软件、音频软件、教育软件、支付软件等。
42.第一终端120通过无线网络或有线网络与服务器140相连。服务器140包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。服务器140用于为第一客户端提供后台服务。可选地,服务器140承担主要计算工作,终端承担次要计算工作;或者,服务器140承担次要计算工作,终端承担主要计算工作;或者,服务器140和终端二者之间采用分布式计算架构进行协同计算。
43.示例性的,服务器140包括处理器144和存储器142,其中,存储器142中存储有计算机程序,处理器读取并执行上述计算机程序可以实现本技术提供的程序漏洞的上报方法中服务器侧所执行的步骤。
44.服务器140还通过无线网络或有线网络与第二终端160相连。第二终端160上安装有操作系统;该操作系统上安装有第一客户端。可选地,第一客户端还用于提供对第二客户端的运行程序的监控结果的查看服务。该操作系统上还安装有第二客户端。
45.示例性的,服务器140上承载了漏洞管理平台。在第一终端120中同时运行第一客户端与第二客户端;第一终端120通过第一客户端监控第二客户端的程序运行,且对第二客户端运行时的用户界面进行录屏;在第二客户端的程序运行出现程序漏洞时,第一终端120
通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段,且从程序崩溃日志中获取第一时刻对应的日志信息,上述第一时刻是指第一客户端监控到程序漏洞的时刻;第一终端120通过第一客户端将上述视频片段与日志信息上报至漏洞管理平台。
46.示例性的,服务器140上还承载了日志管理平台,日志管理平台为第一客户端提供平台服务。第一终端120将自己运行客户端产生的日志信息上传至日志管理平台,并存储至程序漏洞日志中。可选地,第一终端120还通过第一客户端将用户界面录屏得到的录屏视频实时发送至日志管理平台,由日志管理平台为录屏视频分配统一资源定位符(uniform resource locator,url),该url用于被请求时对录屏视频进行直播。
47.示例性的,上述漏洞管理平台与日志管理平台设置在相同或者不同的服务器上。可选地,服务器140还为第二客户端提供后台服务;比如,第二客户端为购物软件,服务器140为购物软件提供产品信息查询服务、订单生成服务、订单支付服务等。可选地,由不同或者相同的服务器为上述第一客户端与第二客户端提供后台服务。
48.第一客户端还提供上述视频片段与日志信息的查看功能,程序开发人员可以在第一终端120或者第二终端160中运行的第一客户端上查看上述视频片段与日志信息。可选地。第一客户端上还提供录屏视频的直播间的url,程序开发人员可以通过上述url点击进入直播间,观看录屏视频。
49.第一终端120可以泛指多个终端中的一个,第二终端160也可以泛指多个终端中的一个,本实施例仅以第一终端120与第二终端160来举例说明。终端可以包括:智能手机、平板电脑、电子书阅读器、动态影像专家压缩标准音频层面3(moving picture experts group audio layer iii,mp3)播放器、动态影像专家压缩标准音频层面4(moving picture experts group audio layer iv,mp4)播放器、膝上型便携计算机和台式计算机中、笔记本电脑的至少一种。以下实施例以终端包括智能手机和个人计算机来举例说明。
50.本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为一个,或者上述终端为几十个或几百个,或者更多数量。本技术实施例对终端的数量和设备类型不加以限定。
51.请参考图2,示出了本技术一个示例性实施例提供的程序漏洞的上报方法的流程图,以该方法应用于图1所示的第一终端中为例进行说明,该方法包括:
52.步骤201,通过第一客户端监控第二客户端的程序运行,且对第二客户端运行时的用户界面进行录屏。
53.终端中安装有第一客户端和第二客户端,其中,第一客户端与第二客户端是不同的客户端,第一客户端是用于监控第二客户端运行时的程序运行的客户端,第一客户端还可以用于对第二客户端运行时的用户界面进行录屏。
54.可选地,在第一客户端中植入有程序进程的监控控件,终端调用第一客户端的监控控件对第二客户端的程序运行进行监控。上述监控控件可以用于监控第二客户端的程序进程;终端通过第一客户端中的监控控件对第二客户端的程序进程进行监控。示例性的,监控控件可以包括bugly控件,终端通过第一客户端的bugly控件对第二客户端的程序进程进行监控。
55.可选地,在第一客户端中还植入有软件开发工具包(software development kit,sdk),终端通过第一客户端中的sdk对第二客户端的用户界面进行录屏。
56.需要说明的是,在需要对第二客户端的程序运行进行监控的场景下,为了从程序运行开始至程序进程结束对第二客户端进行全程地程序运行监控,首先,在终端上运行第一客户端,且将第一客户端置于后台运行;之后,在终端上运行第二客户端,且将第二客户端在前台运行;即在第一客户端对第二客户端的运行程序进行监控的时间段内,终端上不显示第一客户端的用户界面且显示第二客户端的用户界面。在第一客户端对第二客户端的程序运行进行监控的开始,同时开始对终端上显示的用户界面进行录屏。
57.步骤202,响应于监控到第二客户端的程序运行出现程序漏洞,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段。
58.第一客户端还具备视频剪切功能;在第一客户端监控到第二客户端的程序运行出现程序漏洞时,终端对录屏得到的录屏视频进行剪切,截取第一时刻所在第一时间段内录屏的视频片段;其中,第一时刻是指第一客户端监控到程序漏洞的时刻。
59.可选地,在第二客户端运行的过程中,终端通过第一客户端监控到第二客户端的程序进程终止时,确定第二客户端的程序运行出现漏洞,之后通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段。示例性的,上述程序进程终止可以是指第二客户端的程序进程运行过程中突然终止,也即在没有人为控制的情况下程序运行突然中断。
60.示例性的,终端通过第一客户端监控到第二客户端在12:00这一时刻出现了程序漏洞,终端通过第一客户端截取11:55至12:05这一时间段内的录屏的视频片段。
61.步骤203,响应于监控到第二客户端的程序运行出现程序漏洞,从程序崩溃日志中获取第一时刻对应的日志信息。
62.在第一客户端监控到第二客户端的程序运行出程序漏洞时,终端通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段;同时还从程序崩溃日志中获取第一时刻对应的日志信息。
63.可选地,程序崩溃日志是存储在日志管理平台上的;终端通过第一客户端从日志管理平台上请求得到程序崩溃日志中存储的第一时刻对应的该终端的日志信息。
64.可选地,终端中缓存该终端的程序崩溃日志;终端通过第一客户端从缓存的程序崩溃日志中获取第一时刻对应的该终端的日志信息。
65.示例性的,若第一时刻为9:00,终端通过第一客户端从程序崩溃日志中获取9:00这一时刻的终端的日志信息。
66.步骤204,通过第一客户端将视频片段与日志信息上传至漏洞管理平台。
67.上述漏洞管理平台用于提供视频片段与日志信息以对程序漏洞进行准确定位。第一客户端是日志管理平台的客户端,第一客户端中植入有交互控件;终端上第一客户端通过上述交互控件实现与漏洞管理平台之间的信息交互。示例性的,终端调用第一客户端的交互控件将视频片段与日志信息上传至漏洞管理平台,由漏洞管理平台对上述视频片段与日志信息进行对应存储。示例性的,终端将视频片段与日志信息上传至漏洞管理平台,漏洞管理平台对上述视频片段与日志信息对应生成提单;在漏洞管理平台上请求查看上述提单,则可以查看到上述视频片段与日志信息。
68.综上所述,本实施例提供的程序漏洞的上报方法,在终端中同时运行有第一客户端与第二客户端,该方法通过第一客户端监控第二客户端的程序进程,且同时对第二客户端运行时的用户界面进行录屏;在第一客户端检测到第二客户端的程序运行出现程序漏洞
时,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段,且从程序崩溃日志中获取第一时刻对应的日志信息,第一时刻是指第一客户端监控到程序漏洞的时刻;之后通过第一客户端将截取到的视频片段与日志信息上报至漏洞管理平台,以使得程序开发人员能够在漏洞管理平台上同时获得上述视频片段与日志信息,无需重新运行第二客户端、且对程序漏洞出现时刻前后一段时间内第二客户端的用户界面进行录屏,即可得到上述视频片段,进而将视频片段上的界面变化与触发的操作匹配日志信息,迅速的定位第二客户端的程序漏洞,进行漏洞修复,大大地节省了漏洞修复所花费的时间,提高了漏洞修复的效率。该方法还通过第一客户端对第二客户端运行时的程序进程的实时监控,避免了对无感知的程序漏洞的遗漏。
69.为了避免向漏洞管理平台上报的程序漏洞中出现误报的情形,本技术中还提供了一种程序漏洞的验证方法,示意性的,如图3,上述图2中步骤202可以包括步骤2021至步骤2022,步骤如下:
70.步骤2021,响应于监控到第二客户端的程序进程终止,通过第一客户端查询程序崩溃日志。
71.若终端中客户端在运行过程中出现程序漏洞,终端会对应生成程序漏洞的日志信息,且将上述日志信息存储至程序漏洞日志中。也就是说,第二客户端的程序运行出现程序漏洞,则终端会对应生成第二客户端的程序漏洞对应的日志信息,且将第二客户端对应的上述日志信息上传至程序漏洞日志;因此,终端可以通过第一客户端查询程序崩溃日志来确定是否是存在程序漏洞导致的第二客户端的程序进程消息。
72.若在程序崩溃日志中查询到第一时刻存在第二客户端对应的日志信息,表示第二客户端在运行过程中出现程序漏洞,非是人为控制实现的第二客户端的程序进程结束;也就是说,终端确定是由程序漏洞导致的第二客户端的程序进程终止。否则,终端确定并非是由程序漏洞导致的第二客户端的程序进程终止。
73.可选地,上述程序漏洞可以是程序崩溃或者crash导致的程序问题,其中,程序崩溃与crash即是客户端在运行过程中由于代码缺陷、系统强制杀死等情况导致的程序进程异常关闭的两种现象。
74.示例性的,终端通过第一客户端向日志管理平台发送查询请求,该查询请求用于请求在程序崩溃日志中是否存在第一时刻的第二客户端对应的日志信息;由日志管理平台在程序崩溃日志中查询是否存在上述日志信息,并将查询结果返回至终端的第一客户端中。
75.或者,终端通过第一客户端在缓存的程序崩溃日志中查询是否存在上述日志信息,得到查询结果。其中,查询结果包括日志信息存在或者不存在。
76.需要说明的是,终端也可以是响应于监控到第二客户端的程序进程阻塞,通过第一客户端查询程序崩溃日志。
77.步骤2022,响应于程序崩溃日志中存在日志信息,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段。
78.终端确定程序崩溃日志中存在日志信息,比如,日志管理平台返回的查询结果是日志信息存在,或者,从程序崩溃日志中查询得到的查询结果是日志信息存在,则终端通过第一客户端截取第一时刻所在第一时间段内录屏视频片段。
79.可选地,在通过第一客户端截取第一时刻所在第一时间段所在第一时间段内录屏的视频片段之前,终端还通过第一客户端计算第一时间段的起始时刻与结束时刻;其中,起始时刻是与第一时刻距离第一时长且位于第一时刻之前的时刻,结束时刻是与第一时刻距离第二时长且位于第一时刻之后的时刻。
80.也就是说,终端中设置有第一客户端对应的第一时长与第二时长,第一时长是程序漏洞出现时刻之前所需截取的时长,第二时长是程序漏洞出现时刻之后所需截取的时长。可选地,第一时长与第二时长可以相同或者不同。
81.示例性的,若第一时长为8分钟、第二时长为7分钟、以及第一时刻为14:30,终端通过第一客户端计算得到第一时间段的起始时刻为14:22、结束时刻为14:37,则第一时间段的时长为15分钟。
82.示例性的,若第一时长与第二时长均为6分钟、第一时刻为8:00,终端通过第一客户端计算得到第一时间段的起始时刻为7:54、结束时刻为8:06,则第一时间段的时长为12分钟。
83.还需要说明的是,在本实施例中,在第一客户端监控到第二客户端的程序进程终止,终端还可以通过第一客户端直接从程序崩溃日志中获取第二客户端对应的第一时刻的日志信息,也即在截取第一时刻所在第一时间段内录屏的视频片段之前执行步骤203;若终端通过第一客户端从程序崩溃日志中获取得到上述日志信息,则确定存在程序漏洞,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段;若终端未能从程序崩溃日志中获取得到上述日志信息,则确定不存在程序漏洞,则继续通过第一客户端对第二客户端的监控。
84.综上所述,本实施例提供的程序漏洞的上报方法,在第一客户端监控到第二客户端的程序进程终止之后,还通过第一客户端查询程序崩溃日志,确定是否真实存在程序漏洞;若程序崩溃日志中存在第二客户端对应的日志信息,确定真实存在程序漏洞,则终端通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段,以向漏洞管理平台上报视频片段与日志信息,避免了向漏洞管理平台上报的程序漏洞中出现误报的情形,且在确定不存在程序漏洞的情形下,无需对录屏视频进行剪切,减少了终端上视频截取这一过程所占用的运算量。
85.其次,该方法中是对第二客户端的用户界面在一段时间内录屏的视频片段进行截取,上述一段时间包括了程序漏洞出现之前的一个子时间段与之后的一个子时间段,通过上述视频片段能够获知程序漏洞出现前后第二客户端的用户界面上的界面变化与触发的控制操作,匹配对应的日志信息使程序开发人员能够更准确的定位第二客户端的程序漏洞。
86.在本技术中终端还可以对第二客户端的用户界面的录屏视频进行直播,示意性的,如图4,示出了本技术一个示例性实施例提供的录屏视频的播放方法,以该方法应用于如图1所示的第一终端中为例进行说明,该方法包括:
87.步骤301,通过第一客户端对第二客户端运行时的用户界面进行录屏。
88.在终端中同时运行第一客户端与第二客户端,在终端中第一客户端置于后台运行,第二客户端置于前台运行。第一客户端具备录屏功能;终端通过第一客户端的录屏功能对第二客户端运行时的用户界面进行录屏。
89.步骤302,通过第一客户端将对第二客户端的用户界面录屏得到的录屏视频实时发送至日志管理平台。
90.上述日志管理平台用于为录屏视频分配url,url用于被请求时对上述录屏视频进行直播。
91.可选地,第一客户端中植入有云直播的sdk;终端通过第一客户端中植入的云直播的sdk将录屏视频实时发送至日志管理平台。示例性的,在终端通过第一客户端实时向日志管理平台发送录播视屏之后,日志管理平台在接收第一客户端发送的录屏视频,为第一客户端的录屏视频分配url;在终端上点击url进入直播间,以查看第二客户端的录屏视频的直播。
92.综上所述,本实施例通过的录屏视频的直播方法,在日志管理平台上还提供了第二客户端的录屏视频的直播服务,在运行有第二客户端的终端不在身边的情况下,程序开发人员可以通过安装有第一客户端的另一终端查看第二客户端的录播视频,实现对第二客户端的程序运行进行实时进度跟踪;也无需对安装第二客户端的终端或者与该终端相同的另一终端进行借调,以对程序漏洞进行复现,节省了人力资源与时间成本。
93.第一客户端还提供有程序漏洞的相关内容的查看功能,也即程序开发人员可以通过第一客户端查看程序漏洞对应的视频片段与日志信息,示意性的,如图5,示出了本技术一个示例性实施例提供的程序漏洞的查看方法,以该方法应用于如图1所示的第二终端中为例进行说明,该方法包括:
94.步骤401,通过第一客户端显示信息展示界面,信息展示界面中包括提示信息。
95.上述提示信息是漏洞管理平台在接收到第二客户端对应的视频片段与日志信息之后发送至第一客户端的。即漏洞管理平台接收到上报的上述视频片段与日志信息之后,生成程序漏洞对应的提示信息;向第一客户端发送上述提示信息,该提示信息用于提示程序开发人员第二客户端的程序运行过程中出现程序漏洞。
96.终端将第一客户端置于前台运行,在终端上显示第一客户端的信息展示界面,信息展示界面中包括提示信息。
97.步骤402,接收到第一客户端展示的提示信息上触发的查看请求。
98.示例性的,终端接收到提示信息上的第一触发操作时,生成查看请求;通过第一客户端向漏洞管理平台发送上述查看请求,该查看请求用于请求查看该提示信息对应的第二客户端出现程序漏洞的视频片段与日志信息。示例性的,上述第一触发操作可以包括单击操作、多次点击操作、滑动操作中的至少一种,本实施例对触发操作的类型不加以限定。
99.示例性的,信息展示界面上包括至少两条提示信息;终端接收到至少两条提示信息中目标提示信息上的触发请求,生成对目标提示信息的查看请求。
100.步骤403,通过第一客户端显示漏洞查看界面,漏洞查看界面上包括视频播放控件与日志信息。
101.上述视频播放控件用于播放视频片段,视频片段与日志信息是从漏洞管理平台上获取得到的。
102.示例性的,在终端的第一客户端中显示提示信息对应的漏洞查看界面,漏洞查看界面上包括了提示信息对应的视频播放控件与日志信息,视频播放控件上设置了提示信息对应的视频片段的播放地址;在终端上接收到视频播放控件上的第二触发操作时,终端对
上述视频片段进行播放;上述第二触发操作可以是点击操作。
103.可选地,视频播放控件还用于在悬浮窗口播放上述视频片段。示例性的,在终端上接收到视频播放控件上的第二触发操作时,终端在悬浮窗口中对上述视频片段进行播放。
104.综上所述,本实施例提供的程序漏洞的查看方法,可以通过第一客户端直接对程序漏洞对应的视频片段与日志信息进行查看,无需对程序漏洞出现时第二客户端的运行情况进行复现,也无需对视频片段与日志信息进行分别查看,提高了程序开发人员对程序漏洞对应的视频片段与日志信息的查看效率。
105.请参考图6,示出了本技术一个示例性实施例提供的程序漏洞的上报系统结构框图,该系统包括第一客户端501、第二客户端502、日志管理平台503、数据库504与漏洞管理平台505。
106.该系统包括以下三个功能:
107.1)第二客户端的程序进程监控。
108.终端中安装有第一客户端501和第二客户端502,第一客户端501对第二客户端502的程序运行进行监控。示例性的,以终端中系统为ios系统为例,如图7,第一客户端501中设置有iokitbrowser这一第三方库;终端通过第一客户端501中的iokitbrowser可以监控ios系统中的所有进程,在监控到第二客户端502的程序进程终止后,终端还通过第一客户端501判断终端内程序崩溃日志中是否在程序进程终止的第一时刻产生了日志信息,若是则终端通过第一客户端501根据第一时刻截取视频片段,将上述视频片段与日志信息上报至漏洞管理平台505。
109.2)第二客户端的用户界面的录屏视频直播。
110.如图8,第一客户端501中内置了云直播的sdk;在第一终端51中第一客户端501置于后台运行,通过云直播的sdk将第二客户端501的用户界面的录屏视频实时发送至日志管理平台,由日志管理平台为上述录屏视频分配url;在第二终端52将第一客户端501置于前台运行,在第一客户端501中通过url进入直播间,可以实时观看上述录播视频。日志管理平台503还将日志信息与录播视频存储至数据库504中。
111.3)程序漏洞的提单生成。
112.如图9,在第一客户端501监控到第二客户端502在第一时刻出现程序漏洞时,终端通过第一客户端501中视频剪切的sdk对第一时刻所在第一时间段内的视频片段进行截取,且从程序崩溃日志中拉取第一时刻对应的第二客户端502的日志信息;终端通过第一客户端501对应的应用程序编辑接口(application programming interface,api)将上述视频片段与日志信息上报至漏洞管理平台,由漏洞管理平台生成提单,该提单中包括上述视频片段与日志信息;程序开发人员可以在漏洞管理平台上提取该提单,进而查看程序漏洞对应的视频片段与日志信息。
113.综上所述,本实施例提供的程序漏洞的上报系统,能够同时实现第二客户端的程序进程监控、第二客户端的用户界面的录屏视频直播、以及程序漏洞的提单生成这三大功能,从而使得程序开发人员能够在漏洞管理平台上同时获得上述视频片段与日志信息,无需重新运行第二客户端、且对程序漏洞出现时刻前后一段时间内第二客户端的用户界面进行录屏,即可得到上述视频片段,进而将视频片段上的界面变化与触发的操作匹配日志信息,迅速的定位第二客户端的程序漏洞,进行漏洞修复,大大地节省了漏洞修复所花费的时
间,提高了漏洞修复的效率。
114.该方法还通过直播的方式还在运行有第二客户端的终端不在身边的情况下,使程序开发人员可以通过安装有第一客户端的另一终端查看第二客户端的录播视频,实现对第二客户端的程序运行进行实时进度跟踪。
115.示例性的,以第二客户端为游戏客户端为例对程序漏洞的上报方法进行说明,如图10,步骤如下:
116.步骤601,通过第一客户端监控游戏客户端的程序运行,且对游戏客户端运行时的用户界面进行录屏。
117.第一客户端具有对其他客户端的监控功能,第一客户端还具有对终端的显示界面的录屏功能。在终端上运行第一客户端,启动第一客户端对终端中安装且运行的其他客户端的监控功能;且在终端的显示界面上显示第一客户端的录屏开启界面61,如图11,录屏开启界面61上包括录屏开启控件62;终端接收录屏开启控件62上触发的录屏操作,开启第一客户端的录屏功能;返回终端的桌面,将第一客户端置于后台运行,之后在终端上运行游戏客户端,此时,终端通过第一客户端监控游戏客户端的运行的同时,还对位于前台运行的游戏客户端的用户界面进行录屏。
118.步骤602,响应于监控到游戏客户端的游戏进程终止,通过第一客户端查询程序崩溃日志。
119.若第一客户端监控到游戏客户端的游戏进程终止,终端通过第一客户端查询程序崩溃日志,来确定游戏客户端是否出现程序漏洞。需要说明的是,游戏客户端的程序运行出现漏洞时,则终端会生成与游戏客户端的程序漏洞对应的日志信息,将上述日志信息存储至程序崩溃日志中;终端通过第一客户端查询游戏进程终止的第一时刻是否存在日志信息,来确定游戏客户端是否存在程序漏洞。若终端确定游戏客户端存在程序漏洞,执行步骤603;若终端确定游戏客户端不存在程序漏洞,则通过第一客户端继续监控游戏客户端的程序运行、以及执行步骤606。
120.步骤603,响应于程序崩溃日志中存在日志信息,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段。
121.终端响应于程序崩溃日志中存在第一时刻对应游戏客户端的日志信息,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段;比如,终端确定第一时刻10:00存在游戏客户端的日志信息,即游戏客户端在第一时刻10:00出现程序漏洞,则通过第一客户端从录屏视频中截取9:52至10:01这一时间段内的视频片段。示例性的,上述视频片段中包括了第一时间段内游戏画面的变化,比如,在游戏画面中虚拟角色的移动、游戏技能的释放等,也就是说,上述视频片段中体现了玩家在第一时间段内所使用的控制操作。
122.步骤604,响应于监控到游戏客户端的游戏进程终止,从程序崩溃日志中获取第一时刻对应的日志信息。
123.步骤605,通过第一客户端将视频片段与日志信息上传至漏洞管理平台。
124.示例性的,上述第一客户端是日志管理平台对应的客户端,上述日志管理平台与漏洞管理平台是相互独立的两个服务平台;第一客户端中设置有交互控件,第一客户端通过上述交互控件与漏洞管理平台之间进行通信。因此,终端通过第一客户端的交互控件将视频片段与日志信息上传至漏洞管理平台。
125.步骤606,通过第一客户端将对游戏客户端的用户界面录屏得到的录屏视频实时发送至日志管理平台。
126.终端通过第一客户端将对游戏客户端的用户界面录屏得到的录屏视频实时发送至日志管理平台,在日志管理平台对上述录屏视频进行直播,还对上述录屏视频进行存储。
127.综上所述,本实施例提供的程序漏洞的上报方法,在第一客户端监控到游戏客户端的程序进程终止时,查询程序崩溃日志中是否存在程序进程终止的第一时刻是否存在日志信息,若存在,则确定游戏客户端运行时出现程序漏洞,获取第一时刻对应的视频片段与日志信息,向漏洞管理平台上报视频片段与日志信息,使程序开发人员可以通过视频片段与日志信息来定位游戏客户端的程序漏洞,对上述程序漏洞进行修复。该方法还对游戏客户端运行时的用户界面进行直播,使程序开发人员可以通过第一客户端对游戏客户端的程序运行进行实时进度跟踪。
128.请参考图12,示出了本技术一个示例性实施例提供的程序漏洞的上报装置的框图,该装置通过软件、硬件或者二者的结合实现成为服务器的部分或者全部,该装置包括:
129.运行模块701,用于通过第一客户端监控第二客户端的程序运行,且对第二客户端运行时的用户界面进行录屏;
130.获取模块702,用于响应于监控到第二客户端的程序运行出现程序漏洞,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段,且从程序崩溃日志中获取第一时刻对应的日志信息,第一时刻是指第一客户端监控到程序漏洞的时刻;
131.上报模块703,用于通过第一客户端将视频片段与程序崩溃日志上报至漏洞管理平台,漏洞管理平台用于提供视频片段与程序崩溃日志以对程序漏洞进行准确定位。
132.在一些实施例中,获取模块702,用于响应于监控到第二客户端的程序进程终止,通过第一客户端查询程序崩溃日志;响应于程序崩溃日志中存在日志信息,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段。
133.在一些实施例中,该装置还包括:
134.计算模块704,用于通过第一客户端计算第一时间段的起始时刻与结束时刻;
135.其中,起始时刻是与第一时刻距离第一时长且位于第一时刻之前的时刻,结束时刻是与第一时刻距离第二时长且位于第一时刻之后的时刻。
136.在一些实施例中,该装置还包括:
137.发送模块705,用于通过第一客户端将对用户界面录屏得到的录屏视频实时发送至日志管理平台,日志管理平台用于为录屏视频分配统一资源定位符,统一资源定位符用于被请求时对录屏视频进行直播。
138.在一些实施例中,发送模块705,用于通过第一客户端中植入的云直播的软件开发工具包将录屏视频实时发送至日志管理平台。
139.在一些实施例中,该装置还包括:
140.显示模块706,用于通过第一客户端显示信息展示界面,信息展示界面中包括提示信息,提示信息是漏洞管理平台在接收到视频片段与日志信息之后发送至第一客户端的;
141.接收模块707,用于接收到第一客户端展示的提示信息上触发的查看请求;
142.显示模块706,用于通过第一客户端显示漏洞查看界面,漏洞查看界面上包括视频播放控件与日志信息,视频播放控件用于播放视频片段,视频片段与日志信息是从漏洞管
理平台上获取得到的。
143.在一些实施例中,视频播放控件还用于在悬浮窗口播放视频片段。
144.综上所述,本实施例提供的程序漏洞的上报装置,在该装置中同时运行有第一客户端与第二客户端,该装置通过第一客户端监控第二客户端的程序进程,且同时对第二客户端运行时的用户界面进行录屏;在第一客户端检测到第二客户端的程序运行出现程序漏洞时,通过第一客户端截取第一时刻所在第一时间段内录屏的视频片段,且从程序崩溃日志中获取第一时刻对应的日志信息,第一时刻是指第一客户端监控到程序漏洞的时刻;之后通过第一客户端将截取到的视频片段与日志信息上报至漏洞管理平台,以使得程序开发人员能够在漏洞管理平台上同时获得上述视频片段与日志信息,无需重新运行第二客户端、且对程序漏洞出现时刻前后一段时间内第二客户端的用户界面进行录屏,即可得到上述视频片段,进而将视频片段上的界面变化与触发的操作匹配日志信息,迅速的定位第二客户端的程序漏洞,进行漏洞修复,大大地节省了漏洞修复所花费的时间,提高了漏洞修复的效率。
145.请参考图13,示出了本技术一个示例性实施例提供的终端800的结构框图。该终端800可以是:智能手机、平板电脑、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、mp4(moving picture experts group audio layer iv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端800还可能被称为用户设备、便携式计算机设备、膝上型计算机设备、台式计算机设备等其他名称。
146.通常,终端800包括有:处理器801和存储器802。
147.处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
148.存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本技术中方法实施例提供的程序漏洞的上报方法。
149.在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、触摸显示屏805、摄像头806、音频电路807、定位组件808和电源809中的至少一种。
150.外围设备接口803可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
151.射频电路804用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它计算机设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
152.显示屏805用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置终端800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
153.摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在计算机设备的前面板,后置摄像头设置在计算机设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
154.音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括
耳机插孔。
155.定位组件808用于定位终端800的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。定位组件808可以是基于美国的gps(global positioning system,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
156.电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
157.在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。
158.加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制触摸显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
159.陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3d动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。
160.压力传感器813可以设置在终端800的侧边框和/或触摸显示屏805的下层。当压力传感器813设置在终端800的侧边框时,可以检测用户对终端800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在触摸显示屏805的下层时,由处理器801根据用户对触摸显示屏805的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
161.指纹传感器814用于采集用户的指纹,由处理器801根据指纹传感器814采集到的指纹识别用户的身份,或者,由指纹传感器814根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器814可以被设置终端800的正面、背面或侧面。当终端800上设置有物理按键或厂商logo时,指纹传感器814可以与物理按键或厂商logo集成在一起。
162.光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制触摸显示屏805的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏805的显示亮度;当环境光强度较低时,调低触摸显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。
163.接近传感器816,也称距离传感器,通常设置在终端800的前面板。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用
户与终端800的正面之间的距离逐渐变小时,由处理器801控制触摸显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制触摸显示屏805从息屏状态切换为亮屏状态。
164.本领域技术人员可以理解,图13中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
165.请参考图14,示出了本技术一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的程序漏洞的上报方法中服务器侧执行的步骤。具体来讲:
166.所述服务器900包括cpu(central processing unit,中央处理器)901、包括ram(random access memory,随机存取存储器)902和rom(read-only memory,只读存储器)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述服务器900还包括帮助计算机内的各个器件之间传输信息的基本i/o(input/output,输入/输出)系统906,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备907。
167.所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。
168.所述大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备907及其相关联的计算机可读介质为服务器900提供非易失性存储。也就是说,所述大容量存储设备907可以包括诸如硬盘或者cd-rom(compact disc read-only memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
169.不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom(erasable programmable read-only memory,可擦除可编程只读存储器)、eeprom(electrically erasable programmable read-only memory,电可擦可编程只读存储器)、闪存(flash memory)或其他固态存储其技术,cd-rom、dvd(digital versatile disc,数字通用光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。
170.根据本技术的各种实施例,所述服务器900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器900可以通过连接在所述系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。
171.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
172.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读
存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
173.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1