CN112948232A - 一种游戏协议测试方法、装置、电子设备和存储介质 - Google Patents

一种游戏协议测试方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN112948232A
CN112948232A CN201911260982.7A CN201911260982A CN112948232A CN 112948232 A CN112948232 A CN 112948232A CN 201911260982 A CN201911260982 A CN 201911260982A CN 112948232 A CN112948232 A CN 112948232A
Authority
CN
China
Prior art keywords
protocol
target
game
target game
class
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.)
Pending
Application number
CN201911260982.7A
Other languages
English (en)
Inventor
罗德志
严明
王枭
周江
王建行
蒋洪伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911260982.7A priority Critical patent/CN112948232A/zh
Publication of CN112948232A publication Critical patent/CN112948232A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及计算机技术领域,尤其涉及一种游戏协议测试方法、装置、电子设备和存储介质,用以提高游戏协议测试的效率,其中方法包括:响应于用户通过游戏协议测试界面选择的目标游戏,启动目标游戏客户端;从目标游戏客户端中获取目标游戏的目标协议类;通过反射方法解析目标协议类,构造针对不同目标协议类的协议对象,并对协议对象进行赋值得到用于进行游戏协议测试的变异数据;将变异数据发送给目标游戏客户端,通过目标游戏客户端将变异数据发送给目标游戏服务器后,根据目标游戏服务器运行变异数据之后的状态,对目标游戏进行游戏协议测试。由于本申请中变异数据是针对游戏协议特点构造的,能通过目标游戏服务器的解包校验,测试更加高效。

Description

一种游戏协议测试方法、装置、电子设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种游戏协议测试方法、装置、电子设备和存储介质。
背景技术
协议测试是针对通信协议进行的测试,协议测试能够实现一些常规测试中无法实现的流程。在进行协议测试时,包含对协议进行拦截、解析、篡改、发送等一系列的测试过程。
随着游戏的普及,需要针对游戏协议进行测试。一种进行游戏协议测试的方法是使用历史经验数据值进行测试,但是由于历史经验值获取的渠道较少,且主观性强,测试的效果不理想;另一种进行游戏协议测试的方法是,根据网络接口,生成大量测试数据,但是该方法构造的大量测试数据无法通过游戏服务器的解包校验,导致测试数据无效,并且耗时很长。
基于上述内容,现有技术中的游戏协议测试方法测试效果较差,效率较低。
发明内容
本申请实施例提供一种游戏协议测试方法、装置、电子设备和存储介质,提高游戏协议测试的效率。
本申请实施例提供的一种游戏协议测试方法,包括:
响应于用户通过游戏协议测试界面选择的目标游戏,启动目标游戏客户端;
从所述目标游戏客户端中获取所述目标游戏的目标协议类,其中,所述目标游戏的每个游戏功能对应至少一个协议类;
通过反射方法解析所述目标协议类,构造针对不同目标协议类的协议对象,并对所述协议对象进行赋值得到用于进行游戏协议测试的变异数据;
将所述变异数据发送给所述目标游戏客户端,通过所述目标游戏客户端将所述变异数据发送给目标游戏服务器后,根据所述目标游戏服务器运行所述变异数据之后的状态,对所述目标游戏进行游戏协议测试。
本申请实施例提供的一种游戏协议测试装置,包括:
响应单元,用于响应于用户通过游戏协议测试界面选择的目标游戏,启动目标游戏客户端;
获取单元,用于从所述目标游戏客户端中获取所述目标游戏的目标协议类,其中,所述目标游戏的每个游戏功能对应至少一个协议类;
构造单元,用于通过反射方法解析所述目标协议类,构造针对不同目标协议类的协议对象,并对所述协议对象进行赋值得到用于进行游戏协议测试的变异数据;
测试单元,用于将所述变异数据发送给所述目标游戏客户端,通过所述目标游戏客户端将所述变异数据发送给目标游戏服务器后,根据所述目标游戏服务器运行所述变异数据之后的状态,对所述目标游戏进行游戏协议测试。
可选的,所述构造单元具体用于:
针对每个目标协议类,通过反射方法解析所述目标协议类,确定所述目标协议类中的协议字段;
调用所述目标协议类对应的构造函数,为所述目标协议类中的协议字段赋初始值,得到针对所述目标协议类的协议对象。
可选的,所述构造单元具体用于:
针对每个协议对象,遍历所述协议对象,获取所述协议对象中的目标协议字段;
针对每个目标协议字段,调用与所述目标协议字段的数据类型对应的变异接口,为所述目标协议字段进行赋值。
可选的,所述测试单元还用于通过下列方式确定所述目标游戏服务器运行所述变异数据之后的状态:
通过所述目标游戏客户端向所述目标游戏服务器发送心跳包,根据所述目标游戏服务器是否向所述目标游戏客户端发送心跳包反馈,确定所述目标游戏服务器运行所述变异数据之后的状态;或
根据所述目标游戏服务器与所述目标游戏客户端之间的网络接口的状态,确定所述目标游戏服务器运行所述变异数据之后的状态;或
通过监控所述目标游戏服务器的进程,确定所述目标游戏服务器运行所述变异数据之后的状态。
可选的,所述装置还包括:
确定单元,用于根据所述目标游戏服务器运行所述变异数据之后的状态,确定所述目标游戏的游戏协议测试结果;
发送单元,用于将所述游戏协议测试结果发送给游戏协议测试服务器,以使所述游戏协议测试服务器向所述用户展示所述游戏协议测试结果。
本申请实施例提供的一种电子设备,包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述一种游戏协议测试方法的步骤。
本申请实施例提供一种计算机可读存储介质,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行上述一种游戏协议测试方法的步骤。
本申请有益效果如下:
本申请实施例提供的游戏协议测试方法、装置、电子设备和存储介质,用于进行游戏协议测试的变异数据是根据目标游戏的目标协议类构造的,由于本申请实施例中的协议类主要用于定义游戏客户端以及游戏服务器之间通信的数据格式,因而根据目标游戏中的目标协议类构造的变异数据是针对游戏协议特点构造的,更加具有针对性,构造的变异数据能够通过目标游戏服务器的解包校验,可以构造海量有效的变异数据,扩大了游戏协议测试的覆盖面,更加高效准确,能够发现更多的漏洞风险。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中的一个可选的应用场景图;
图2为本申请实施例提供的一种游戏协议测试方法的流程图;
图3A为本申请实施例提供的一种游戏协议测试界面示意图;
图3B为本申请实施例提供的另一种游戏协议测试界面示意图;
图4A为本申请实施例提供的第一种模糊测试过程中游戏界面示意图;
图4B为本申请实施例提供的第二种模糊测试过程中游戏界面示意图;
图4C为本申请实施例提供的第三种模糊测试过程中游戏界面示意图;
图4D为本申请实施例提供的第四种模糊测试过程中游戏界面示意图;
图5A为本申请实施例提供的一种命名空间示意图;
图5B为本申请实施例提供的一种父类特征示意图;
图5C为本申请实施例提供的一种变异接口示意图;
图6A为本申请实施例提供的第一种漏洞测试结果展示图;
图6B为本申请实施例提供的第二种漏洞测试结果展示图;
图6C为本申请实施例提供的第三种漏洞测试结果展示图;
图7为本申请实施例提供的一种可选的交互实现时序流程示意图;
图8为本申请实施例提供的一种游戏协议测试装置的组成结构示意图;
图9为本申请实施例提供的一种电子设备的组成结构示意图;
图10为应用本申请实施例的一种计算装置的一种硬件组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
下面对本申请实施例中涉及的部分概念进行介绍。
软件测试,在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
模糊测试(Fuzz测试),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的软件测试技术,常常用于检测软件或计算机系统的安全漏洞。
变异,特指模糊测试中的按照一定策略对数据进行构造,在本申请实施例中经变异构造得到的可用于进行游戏协议测试的数据即变异数据。
反射,计算机术语,本申请实施例中特指在程序运行时获取对象的信息,例如程序集、命名空间、类、字段、属性、方法等,并且动态的创建实例化对象。
协议,本申请实施例中指的游戏客户端和游戏服务器之间通信的数据格式。
游戏协议测试界面:是一个面向用户的游戏协议测试的平台网页,通过该页面,用户可以选择需要进行协议测试的目标游戏。以游戏协议测试界面为媒介,完成对目标游戏服务器的漏洞检测。
对象:是类的一个个体,是具体的、实实在在存在的事物,它有自己的生命周期,由类(class)可以创建出对象,对象也会消亡。类一旦被建立后,就可以用这个类创建出任意个对象,然后去操作这些对象;类是抽象的,对象是具体的。另外,对象也可以称为实例,是一个真实的实体。
其中,类是指具有相同的属性和功能的事物的抽象的集合,在面向对象程序设计中,通常把一类事物的静态属性和动态可以执行的操作组合在一起就能够得到类。类是个抽象的概念,用来模拟一类事物,一旦定义了一个类,这个类就永远存在。在本申请实施例中的协议类是类中的一种,特指协议。
打包,也叫序列化,将内存协议对象处理成连续的二进制流数据,用于网络传输。
解包,也叫反序列化,将二进制数据流按照协议结构的定义,解析成内存协议对象。
发包,游戏客户端和游戏服务器直接的协议数据发送。
接口,API(Application Programming Interface,应用程序接口),提供一些封装好的功能,方便其他代码调用。本申请实施例中简称为接口。
心跳包,就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。
CS,client to server,客户端到服务器的通信。
SC,server to server,服务器到客户端的通信。
SS,server to server,服务器到服务器的通信。
命名空间,namespace,也称名称空间、名字空间。是用来组织和重用代码的编译单元。VS.NET中的各种语言使用的一种代码组织的形式,通过名称空间来分类,区别不同的代码功能,同时也是VS.NET中所有类的完全名称的一部分。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例中的实施例及实施例中的特征可以相互组合。
网络协议是指计算机网络中进行数据交换而建立的规则、标准或约定的集合。在网络游戏长期发展过程中,通过网络协议来进行服务端与客户端之间的通信是一种常用的技术手段。在对网络协议进行测试时,包含对协议进行拦截、解析、篡改、发送等一系列的测试过程。拦截过程包括在游戏客户端注入脚本代码,替换游戏端协议发送函数以及对协议内容进行持久化,然后再转发到测试设备上。而在协议解析过程中对被拦截的协议内容进行反持久化操作以及重新解包处理。篡改过程通过修改协议内容中的参数值进而执行特定的测试用例输入。发送过程通过连接到游戏客户端的测试设备,将篡改后的协议重新发送至游戏服务器以验证测试结果。
其中,篡改过程用于得到测试数据,现有技术中常见的网络协议测试方案主要有一键异常测试方案和传统的模糊测试方案。然而,现有的一键测试方案覆盖面很窄,针对协议字段的数据类型,逐个读取配置列表中的数据进行测试。配置列表中的数据都为测试经验积累的数据,比如:整型数据上下限、字符串SQL(Structured Query Language,结构化查询语言)注入等。配置表的数据量级在300+,测试数据量和深度不够,挖掘问题的能力有限。
此外,传统的模糊测试方案,根据网络接口,生成大量变异数据的方案,未对联网游戏做支持,该测试方法主要应用于单机漏洞挖掘,联机应用只对常见的网站服务器做支持,没有针对联网游戏的模糊测试方案。
基于上述问题,本申请实施例提供了一种游戏协议测试方法、装置、电子设备和存储介质,通过获取目标游戏的目标协议类可构造海量的有效测试数据,是一种改进的模糊测试方案,与现有技术相比,针对目标游戏的目标协议类,构造了与各个协议类匹配的待变异数据,构造的变异数据能够通过目标游戏服务器的解包校验,并且构造变异数据时并不仅限于配置表中的数据,可以构造海量的测试数据,更加高效,能够发现更多的漏洞风险。
参见表1所示为本申请实施例中提供的游戏协议测试方法与现有技术的测试方案在几个方面的对比表。
表1
对比项 一键异常测试方案 传统模糊测试方案 本申请实施例
测试数据量 5000+ 1000W+ 100W+
协议文件 需要开发提供 不需要 不需要
有效数据 100% <0.01% 100%
攻击面 部分CS协议 部分CS协议 CS、SC、SS、网络接口等
耗时 5/人天 0.5人/天+84h(自动化) 0.5人/天+<30h(自动化)
其中,本申请实施例中的游戏协议测试方法的攻击面是指输入程序的变异数据,涵盖了SC、CS、SS以及客户端所有网络接口的遍历覆盖。而现有技术中的测试数据是基于配置表或网络接口生成的,只涵盖了部分CS协议,因而本申请实施例中的游戏协议测试方法生成的变异数据,扩大了协议测试的覆盖面。
本申请实施例中的游戏协议测试方法可以应用于如图1所示的应用场景,在该应用场景中包括测试工具101、目标游戏客户端102以及目标游戏服务器103。其中测试工具101指测试应用或网站、平台等,可以运行在目标游戏客户端102中,也可以运行在其他终端中。测试工具101能够通过进程注入和hook(钩子,Windows系统机制)的方式与目标游戏进程交互,从目标游戏客户端102中获取目标游戏的目标协议类,并根据获取的目标协议类构造协议对象,并对协议对象进行赋值得到用于进行游戏协议测试的变异数据;测试工具101将变异数据发送给目标游戏客户端102;通过目标游戏客户端102将变异数据发送给目标游戏服务器103,由目标游戏服务器103运行变异数据,测试工具101通过检测目标游戏服务器103运行变异数据之后的运行状态,确定是否存在漏洞。
在本申请实施中,目标游戏客户端102为游戏用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本等具有一定计算能力并且运行有即时通讯类软件及网站或者社交类软件及网站的计算机设备。各目标游戏客户端102通过无线网络与游戏服务器103连接,目标游戏服务器103是一台服务器或若干台服务器组成的服务器集群或云计算中心。
值得说明的是,本申请实施例中的架构图是为了更加清楚地说明本申请实施例实施例中的技术方案,并不构成对本申请实施例提供的技术方案的限制,对于其它的应用场景架构和业务应用,本申请实施例提供的技术方案对于类似的问题,同样适用。
基于图1所示的应用场景图,本申请实施例提供了一种游戏协议测试方法,该方法的流程可以由游戏协议测试装置执行,如图2所示,包括以下步骤:
S21:响应于用户通过游戏协议测试界面选择的目标游戏,启动目标游戏客户端;
S22:从目标游戏客户端中获取目标游戏的目标协议类,其中,目标游戏的每个游戏功能对应至少一个协议类。
在本申请实施例中,协议class就是协议类,比如游戏需要创建角色,就需要定义一个创建角色的协议,在代码中的实现就是指创建角色的协议class。任何和服务器的交互都需要设计协议class,比如:说话、移动、施放技能、购买英雄等。
其中,目标协议类可以指目标游戏客户端中的所有协议类,例如:房间class、人物class、汽车class等,也可以是根据测试需求确定的部分协议类,例如人物class。
在一种可选的实施方式中,测试工具可配置包含本申请实施例的游戏协议测试方法的多种测试方式,如图3A所示,其中测试工具为安全雷达测试应用,该测试应用的游戏协议测试界面上显示了5种测试类型,分别为:协议漏洞测试、函数漏洞测试、Fuzz漏洞测试、自动化漏洞挖掘以及内存漏洞测试,本申请实施例中的测试方法为图3A中所示的Fuzz漏洞测试,是一种模糊测试方法,通过构造变异数据,将变异数据输入游戏服务器进行漏洞挖掘。
该方式下,首先响应于用户通过游戏协议测试界面选择的测试类型,若用户选择的测试类型为图3A所示的Fuzz漏洞测试,进一步,则可进入图3B所示的游戏协议测试界面,响应于用户通过游戏协议测试界面选择的目标游戏,由图3B可知,用户选择启动的目标游戏为网络游戏A,因而启动网络游戏A的游戏客户端,也就是目标游戏客户端。
其中,目标游戏客户端用于启动目标游戏,提供界面交互和检测功能,并执行自动检测。目标游戏启动后,如图4A所示,点击开始则可执行Fuzz测试,测试工具会注入一段代码到目标游戏客户端内存中执行,这段代码可以获取目标游戏客户端内存中的所有数据并且可以修改目标游戏客户端代码的执行。在本申请实施例中,测试工具通过与注入的代码交互,来获取目标游戏客户端内存数据,以及调用目标游戏客户端代码执行,进而则从目标游戏客户端获取目标游戏的目标协议类。
在一种可选的实施方式中,获取目标协议类时,可采用如下两种实施方式:
实施方式一、根据命名空间特征获取。
具体的,遍历目标游戏客户端对应的各代码模块中的类,根据类的命名空间特征,获取遍历的类中的目标协议类。
在本申请实施例中,协议class都定义在同一个命名空间下,通过游戏引擎的接口,遍历目标游戏各个代码模块,逐个打开各代码模块,遍历模块下的class,通过判断class的命名空间特征,则可筛选出目标游戏所有的协议class定义。
进一步地,从所有协议class中可进一步筛选目标协议类。
如图5A所示,其中,命名空间为CSProtocol的class都属于协议class。若目标协议类为网络游戏A所有的协议类,则目标协议类为通过命名空间特征确定的命名空间为CSProtocol的所有协议class;若目标协议类仅为部分协议class时,则可进一步从命名空间为CSProtocol的所有协议class中筛选出目标协议类,例如选取ACCEPT_AIPLAYER_RSP、ACCOUNT_OPENID_STATE_MACRO作为目标协议类。
实施方式二、根据父类特征获取。
具体的,遍历目标游戏客户端对应的各代码模块中的类,根据类的父类特征,获取遍历的类中的目标协议类。
在本申请实施例中,协议class都继承自一个相同的父类,通过游戏引擎的接口,遍历目标游戏各个代码模块,逐个打开各代码模块,遍历模块下的class,通过判断class的父类特征,也就是class之间的继承关系,则可筛选出目标游戏所有的协议class定义。
如图5B所示,其中所有的协议class都继承自同一父类AbsPacket。通过判断各个代码模块下的class是否属于AbsPacket的子类,则可确定各个代码模块下的class是否为协议class。若目标协议类为网络游戏A所有的协议类,则目标协议类为通过父类特征确定的属于同一父类AbsPacket的所有class为协议class,也就是目标协议类;若目标协议类仅为部分协议class时,则可进一步从父类AbsPacket下的所有协议class中筛选出目标协议类,例如筛选出其中的AbsRequestPacket、CGAskBagList作为目标协议类。
S23:通过反射方法解析目标协议类,构造针对不同目标协议类的协议对象,并对协议对象进行赋值得到用于进行游戏协议测试的变异数据;
S24:将变异数据发送给目标游戏客户端,通过目标游戏客户端将变异数据发送给目标游戏服务器后,根据目标游戏服务器运行变异数据之后的状态,对目标游戏进行游戏协议测试。
如图4B所示,为本申请实施例提供的一种在目标游戏服务器运行变异数据后所检测得到的Fuzz测试日志以及执行过程中的信息显示,可通过点击上传将测试结果上传给游戏协议测试服务器,其中游戏协议测试服务器为测试工具对应的服务器,通过点击下发或删除等也可对这些信息进行处理,此外通过点击停止以结束Fuzz测试,通过点击暂停以暂停Fuzz测试。
在本申请实施例中,首先需要通过反射方法构建针对不同目标协议类的协议对象;进一步,针对每个协议对象,遍历协议对象,获取协议对象中的目标协议字段;进一步,针对每个目标协议字段,调用与目标协议字段的数据类型对应的变异接口,为目标协议字段进行赋值得到变异数据。
其中,协议对象是协议class的实例化,在本申请实施例中指一个具体实现的协议,例如以目标协议类为人物class为例,则人物class定义可以表示地球人、火星人,而协议对象可以表示某个具体的人,比如地球人张三、地球人李四,还可包括具体的年龄、性别等。以目标协议类为房间class为例,房间class定义是指房间的结构,例如包括窗、门等。
在本申请实施例中,通过反射方法解析目标协议类,构造针对不同目标协议类的协议对象时,一种可选的实施方式为:
针对每个目标协议类,通过反射方法解析目标协议类,确定目标协议类中的协议字段;调用目标协议类对应的构造函数,为目标协议类中的协议字段赋初始值,得到针对目标协议类的协议对象。
其中,通过反射方法可以解析得到目标协议类中定义的各协议字段,进而则可调用目标协议类对应的构造函数,也就是默认初始化函数,为目标协议类中的协议字段赋初始值,得到针对目标协议类的协议对象,这样得到的协议对象中的协议字段都是默认的值。
其中,构造函数主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。因而通过目标协议类对应的构造函数,可则为目标协议类中的协议字段赋初始值,得到一个实例化协议对象。
在正常编程语言中,创建一个对象时必须是确定的class,即传入构造函数的参数是一个确定的class类型,但是在本申请实施例中可以传一个不确定的class类型,这是C#代码支持的反射语法之一,关键点在于Activator.CreateInstance,使用与指定参数匹配程度最高的构造函数来创建指定类型的实例。不论传入的是房间class还是人物class,都能创建出正确的房间对象或者人物对象,这就是反射方法构造协议对象的放射特性之一,可以运行时根据传入的参数做判断,动态获取传入对象的信息,例如程序集、命名空间、类等,进而可以构造出正确结构的协议对象。
然而,由于通过构造函数为赋值得到的协议对象中的协议字段都是默认的值,在用于对游戏协议进行测试时,则需进一步对其中的部分或全部协议字段再次进行赋值,得到最终用于进行游戏协议测试的变异数据。
一种可选的实施方式为,针对每个协议对象,遍历协议对象中的协议字段,获取协议对象中的目标协议字段;针对每个目标协议字段,调用与目标协议字段的数据类型对应的变异接口,为目标协议字段进行赋值。
其中,由于所有的数据类型对象、结构、字段、列表等,都是由基础数据类型构成,如:整型、字符串、布尔值、浮点等。因此,可通过反射遍历目标协议类定义的所有协议字段,遇到对象类型的字段,通过深度优先遍历方法,执行递归遍历,直至获得的数据为基础数据类型为止,也可以采用其他方法。
由于本申请实施例中所有的数据类型都是由基础的整型、浮点、字符串等构成的,因而在本申请实施例中,协议字段的数据类型对应的变异接口就是指整型数据变异接口、浮点数据变异接口、字符串数据变异接口等。
如图5C所示,为本申请实施例提供的一种数据变异接口的示意图,其中string表示字符串,bool表示布尔,byte表示字节,double表示双精度浮点,float表示浮点,int表示整型,sbyte表示有符号字节,long表示长整型,short表示短整型,uint表示无符号整型,ulong表示无符号长整型,ushort表示无符号短整型。
在对协议对象执行递归遍历时的具体过程为:读取协议对象下的第一个字段时,判断该字段是否还有嵌套有子字段,如果有就继续遍历下层字段,直到最底层字段;如果第一个字段没有嵌套其他字段,则读取对象下的第二个字段,以此类推。
以目标协议类包括:房间class为T1,汽车class为T2,人物class为T3为例,正常代码的传参只能是T1、T2、T3其中之一,由于C#的反射特性,传入构造函数的参数T表示T1、T2或T3,可以是任意类型,传入任意class都可以。比如是房间class T1,假设房间的定义是门和窗户,首先调用T1的构造函数生成一个默认值的T1,表示0个门,0个窗户的房间。
进一步,反射读取T1的结构,得到门和窗户,在给门和窗户赋值时,调用协议字段门、窗户的数据类型对应的变异接口进行赋值。例如给门赋值时,调用整型数据变异接口,生成X个门,给窗户赋值时调用整型数据变异结构生成Y个窗户。如果门上有锁,则继续遍历锁class,执行同样操作。如果门上还有名称字段,则调用字符串变异接口,生成名称的字符串。
其中,在遍历得到目标协议的所有协议字段后,可仅对其中的目标协议字段重新进行赋值,假设目标协议字段包括门、锁、门名称,则仅需对门、锁、门名称进行赋值,无需对窗户进行赋值。
假设X=2,则表示房间有两个门,假设门1名称为:xibeimen,门1上定义1个密码锁;门2名称为xinanmen,门2上定义两把铁锁。
在一种可选的实施方式中,协议字段的数据类型也可以指的是各协议字段使用的数值的具体类型的具体范围,例如单精度浮点型的数值范围或者整型的数值范围等。
在本申请实施例中,协议类用于定义协议通信的数据格式,因而还可根据各协议的通信特点对协议字段进行赋值,其中通信特点指的是在使用各协议进行通信时会产生的协议特点,例如,通过目标游戏客户端与目标游戏服务器之间的通信特点,即CS通信,SC通信等能够确定出不同的赋值数据,还可以将错误的通信连接作为赋值数据,以便检测除了正常的通信之外,是否还存在错误通信产生的漏洞,能够更全面的进行漏洞检测。
在本申请实施例中,可以并行进行各目标协议类对应的变异数据的测试,也可以逐个目标协议类对应的变异数据进行测试。执行Fuzz测试时,每次发送完变异数据后,需要判断目标游戏服务器运行状态是否异常,例如是否出现宕机、死循环、进程僵死等状况。
如图4C及图4D所示,由于目标游戏服务器运行变异数据导致服务器出现异常。例如当传给目标游戏服务器一个超大值时,可能出现死循环或者内存溢出崩溃等。
可选的,可通过下列方式确定目标游戏服务器运行变异数据之后的状态:
确定方式一、通过目标游戏客户端向目标游戏服务器发送心跳包,根据目标游戏服务器是否向目标游戏客户端发送心跳包反馈,确定目标游戏服务器运行变异数据之后的状态。
具体的,游戏客户端与游戏服务器之间有定时心跳包发送,每次变异数据发送后,强制目标游戏客户端发送心跳包,检查目标游戏服务器是否有心跳包反馈,根据是否检测到目标游戏服务器心跳包反馈确定目标游戏服务器的状态是否出现异常。
确定方式二、根据目标游戏服务器与目标游戏客户端之间的网络接口的状态,确定目标游戏服务器运行变异数据之后的状态。
在目标游戏客户端与目标游戏服务器之间建立了TCP(Transmission ControlProtocol,传输控制协议)长连接,用于目标游戏客户端和目标游戏服务器之间的数据交互。比如玩家发送聊天消息,目标游戏服务器会广播给周围玩家,这里的聊天消息和目标游戏服务器广播数据,就是通过TCP连接发送的数据。
在本申请实施例中,通过判断游戏应用层的目标游戏服务器与目标游戏可客户端之间的网络接口的连接状态是正常还是已断开,可检测目标游戏服务器的运行状态是否出现异常。通过使用游戏应用层的连接状态判断,要比使用TCP连接判断准确,可以更加高效的监控目标游戏服务器的状态。
确定方式三、通过监控目标游戏服务器的进程,确定目标游戏服务器运行变异数据之后的状态。
该方式下,可直接在目标游戏服务器部署进程监控脚本,读取目标游戏服务器进程的CPU(Central Processing unit,中央处理器)使用、内存、磁盘IO(In/output,)、网络流量等指标,以监控服务器状态。
在一种可选的实施方式中,测试工具可根据目标游戏服务器运行变异数据之后的状态,确定目标游戏的游戏协议测试结果;将游戏协议测试结果发送给游戏协议测试服务器,例如测试工具网站平台,通过游戏协议测试服务器向用户展示游戏协议测试结果。或者,测试工具直接将变异数据发生给游戏协议测试服务器,由游戏服务测试服务器进行数据报告分析、编辑等,确定测试结果并展示给用户。
如图6A至图6C所示,其中,图6A为本申请实施例提供的一种对网络游戏A进行游戏协议测试得到的宕机漏洞自动检测报告,其中网络游戏A的游戏版本为1.10.2,被检测的网络游戏A的服务器为QQ208,开始测试的时间为2018年10月22日09:04:13,结束时间为2018年10月24日19:53:21;其中,本次检测时长共21小时,共检测了506个接口,检测用了2636954个变异用例,也就是变异数据,共检测到10个宕机漏洞,分别为6例超长字符串导致的服务器宕机,3例数组越界宕机以及1个服务器高负载无响应。
如图6B所示,为针对宕机漏洞的详细报告,其中6例超长字符串导致服务器宕机体现为缓冲区溢出,在图6B中针对不同的宕机类型,分别给出了对应的异常接口以及异常类型。
如图6C所示,其为本申请实施例提供的一种检测日志,图中以条形图的形式对变异用例进行了统计,此外,还通过表格的方式对协议接口和异常类型进行了统计,十分直观地向用户展示宕机漏洞。
本申请实施例实现了一套可以对网络游戏服务器进行模糊测试的工具,不需要开发提供协议文件支持,纯黑盒的接入模糊测试。相对于传统软件行业的模糊测试,本申请实施例基于游戏协议数据的变异会更加高效,避免了大量无效数据和时间消耗。
参阅图7所示,为一种游戏协议测试的交互时序图。该方法的具体实施流程如下:
步骤700:测试工具响应于用户通过游戏协议测试界面选择的网络游戏A,启动网络游戏A客户端;
步骤701:测试工具获取网络游戏A客户端对应的目标协议类;
步骤702:网络游戏A客户端返回目标协议类;
步骤703:测试工具反射解析协议类,构造针对不同目标协议类的协议对象;
步骤704:测试工具针对协议对象,构造变异数据;
步骤705:测试工具将变异数据发送给网络游戏A客户端;
步骤706:网络游戏A客户端将变异数据发送给网络游戏A服务器;
步骤707:网络游戏A服务器运行变异数据;
步骤708:测试工具通知网络游戏A客户端向网络游戏A服务器发送心跳包;
步骤709:网络游戏A客户端向网络游戏A服务器发送心跳包;
步骤710:网络游戏A服务器向网络游戏A客户端发送心跳包响应;
步骤711:网络游戏A客户端向测试工具发送心跳包反馈;
步骤712:测试工具判断服务器状态,态确定是否存在漏洞;
步骤713:测试工具将测试结果上传至网站平台;
步骤714:网站平台根据测试结果进行报告编辑和展示。
其中,在步骤700之前,若测试工具中有多个测试类型,则用户还需进行测试类型的选择,测试工具响应于用户通过游戏协议测试界面选择的测试类型,其中用户选择的测试类型为Fuzz漏洞测试;步骤709及步骤710是根据网络游戏A服务器的运行状态决定的,不是必然的步骤;网站平台指测试工具相对应的服务器。
如图8所示,其为游戏协议测试装置800的结构示意图,可以包括:
响应单元801,用于响应于用户通过游戏协议测试界面选择的目标游戏,启动目标游戏客户端;
获取单元802,用于从目标游戏客户端中获取目标游戏的目标协议类,其中,目标游戏的每个游戏功能对应至少一个协议类;
构造单元803,用于通过反射方法解析目标协议类,构造针对不同目标协议类的协议对象,并对协议对象进行赋值得到用于进行游戏协议测试的变异数据;
测试单元804,用于将变异数据发送给目标游戏客户端,通过目标游戏客户端将变异数据发送给目标游戏服务器后,根据目标游戏服务器运行变异数据之后的状态,对目标游戏进行游戏协议测试。
可选的,获取单元802具体用于:
遍历目标游戏客户端对应的各代码模块中的类,根据类的命名空间特征,获取遍历的类中的目标协议类;或
遍历目标游戏客户端对应的各代码模块中的类,根据类的父类特征,获取遍历的类中的目标协议类。
可选的,构造单元803具体用于:
针对每个目标协议类,通过反射方法解析目标协议类,确定目标协议类中的协议字段;
调用目标协议类对应的构造函数,为目标协议类中的协议字段赋初始值,得到针对目标协议类的协议对象。
可选的,构造单元803具体用于:
针对每个协议对象,遍历协议对象,获取协议对象中的目标协议字段;
针对每个目标协议字段,调用与目标协议字段的数据类型对应的变异接口,为目标协议字段进行赋值。
可选的,测试单元804还用于通过下列方式确定目标游戏服务器运行变异数据之后的状态:
通过目标游戏客户端向目标游戏服务器发送心跳包,根据目标游戏服务器是否向目标游戏客户端发送心跳包反馈,确定目标游戏服务器运行变异数据之后的状态;或
根据目标游戏服务器与目标游戏客户端之间的网络接口的状态,确定目标游戏服务器运行变异数据之后的状态;或
通过监控目标游戏服务器的进程,确定目标游戏服务器运行变异数据之后的状态。
可选的,该装置还包括:
确定单元805,用于根据目标游戏服务器运行变异数据之后的状态,确定目标游戏的游戏协议测试结果;
发送单元806,用于将游戏协议测试结果发送给游戏协议测试服务器,以使游戏协议测试服务器向用户展示游戏协议测试结果。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本申请示例性实施方式的游戏协议测试方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的游戏协议测试装置。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
如图9所示,本申请的电子设备900可以至少包括处理器901和存储器902。其中,所述存储器902存储有程序代码,当所述程序代码被所述处理器901执行时,使得所述处理器901执行本说明书中描述的根据本申请各种示例性实施方式的游戏协议测试方法中的步骤。例如,所述处理器901可以执行如图2中所示的步骤。
下面参照图10来描述根据本申请的这种实施方式的计算装置100。图10的计算装置100仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10,计算装置100以通用计算装置的形式表现。计算装置100的组件可以包括但不限于:上述至少一个处理单元101、上述至少一个存储单元102、连接不同系统组件(包括存储单元102和处理单元101)的总线103。
总线103表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元102可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1021和/或高速缓存存储单元1022,还可以进一步包括只读存储器(ROM)1023。
存储单元102还可以包括具有一组(至少一个)程序模块1024的程序/实用工具1025,这样的程序模块1024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置100也可以与一个或多个外部设备104(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置100交互的设备通信,和/或与使得该计算装置100能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口105进行。并且,计算装置100还可以通过网络适配器106与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器106通过总线103与用于计算装置100的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的游戏协议测试方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的游戏协议测试方法中的步骤,例如,计算机设备可以执行如图2中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的游戏协议测试的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种游戏协议测试方法,其特征在于,该方法包括:
响应于用户通过游戏协议测试界面选择的目标游戏,启动目标游戏客户端;
从所述目标游戏客户端中获取所述目标游戏的目标协议类,其中,所述目标游戏的每个游戏功能对应至少一个协议类;
通过反射方法解析所述目标协议类,构造针对不同目标协议类的协议对象,并对所述协议对象进行赋值得到用于进行游戏协议测试的变异数据;
将所述变异数据发送给所述目标游戏客户端,通过所述目标游戏客户端将所述变异数据发送给目标游戏服务器后,根据所述目标游戏服务器运行所述变异数据之后的状态,对所述目标游戏进行游戏协议测试。
2.如权利要求1所述的方法,其特征在于,所述从所述目标游戏客户端中获取所述目标游戏的目标协议类,包括:
遍历所述目标游戏客户端对应的各代码模块中的类,根据类的命名空间特征,获取遍历的类中的目标协议类;或
遍历所述目标游戏客户端对应的各代码模块中的类,根据类的父类特征,获取遍历的类中的目标协议类。
3.如权利要求1所述的方法,其特征在于,所述通过反射方法解析所述目标协议类,构造针对不同目标协议类的协议对象,包括:
针对每个目标协议类,通过反射方法解析所述目标协议类,确定所述目标协议类中的协议字段;
调用所述目标协议类对应的构造函数,为所述目标协议类中的协议字段赋初始值,得到针对所述目标协议类的协议对象。
4.如权利要求1所述的方法,其特征在于,所述对所述协议对象进行赋值得到用于进行游戏协议测试的变异数据,包括:
针对每个协议对象,遍历所述协议对象,获取所述协议对象中的目标协议字段;
针对每个目标协议字段,调用与所述目标协议字段的数据类型对应的变异接口,为所述目标协议字段进行赋值。
5.如权利要求1所述的方法,其特征在于,通过下列方式确定所述目标游戏服务器运行所述变异数据之后的状态:
通过所述目标游戏客户端向所述目标游戏服务器发送心跳包,根据所述目标游戏服务器是否向所述目标游戏客户端发送心跳包反馈,确定所述目标游戏服务器运行所述变异数据之后的状态;或
根据所述目标游戏服务器与所述目标游戏客户端之间的网络接口的状态,确定所述目标游戏服务器运行所述变异数据之后的状态;或
通过监控所述目标游戏服务器的进程,确定所述目标游戏服务器运行所述变异数据之后的状态。
6.如权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
根据所述目标游戏服务器运行所述变异数据之后的状态,确定所述目标游戏的游戏协议测试结果;
将所述游戏协议测试结果发送给游戏协议测试服务器,以使所述游戏协议测试服务器向所述用户展示所述游戏协议测试结果。
7.一种游戏协议测试装置,其特征在于,包括:
响应单元,用于响应于用户通过游戏协议测试界面选择的目标游戏,启动目标游戏客户端;
获取单元,用于从所述目标游戏客户端中获取所述目标游戏的目标协议类,其中,所述目标游戏的每个游戏功能对应至少一个协议类;
构造单元,用于通过反射方法解析所述目标协议类,构造针对不同目标协议类的协议对象,并对所述协议对象进行赋值得到用于进行游戏协议测试的变异数据;
测试单元,用于将所述变异数据发送给所述目标游戏客户端,通过所述目标游戏客户端将所述变异数据发送给目标游戏服务器后,根据所述目标游戏服务器运行所述变异数据之后的状态,对所述目标游戏进行游戏协议测试。
8.如权利要求7所述的装置,其特征在于,所述获取单元具体用于:
遍历所述目标游戏客户端对应的各代码模块中的类,根据类的命名空间特征,获取遍历的类中的目标协议类;或
遍历所述目标游戏客户端对应的各代码模块中的类,根据类的父类特征,获取遍历的类中的目标协议类。
9.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1至6中任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1至6中任一所述方法的步骤。
CN201911260982.7A 2019-12-10 2019-12-10 一种游戏协议测试方法、装置、电子设备和存储介质 Pending CN112948232A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911260982.7A CN112948232A (zh) 2019-12-10 2019-12-10 一种游戏协议测试方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911260982.7A CN112948232A (zh) 2019-12-10 2019-12-10 一种游戏协议测试方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN112948232A true CN112948232A (zh) 2021-06-11

Family

ID=76225816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911260982.7A Pending CN112948232A (zh) 2019-12-10 2019-12-10 一种游戏协议测试方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN112948232A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778879A (zh) * 2021-09-13 2021-12-10 上海幻电信息科技有限公司 接口的模糊测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294094A (zh) * 2015-05-13 2017-01-04 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统
CN109634861A (zh) * 2018-12-11 2019-04-16 网易(杭州)网络有限公司 网络游戏协议的测试方法、装置、处理器及终端
CN110430184A (zh) * 2019-07-31 2019-11-08 腾讯科技(深圳)有限公司 数据模拟方法、装置、计算机可读存储介质和计算机设备
CN110474900A (zh) * 2019-08-13 2019-11-19 腾讯科技(深圳)有限公司 一种游戏协议测试方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294094A (zh) * 2015-05-13 2017-01-04 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统
CN109634861A (zh) * 2018-12-11 2019-04-16 网易(杭州)网络有限公司 网络游戏协议的测试方法、装置、处理器及终端
CN110430184A (zh) * 2019-07-31 2019-11-08 腾讯科技(深圳)有限公司 数据模拟方法、装置、计算机可读存储介质和计算机设备
CN110474900A (zh) * 2019-08-13 2019-11-19 腾讯科技(深圳)有限公司 一种游戏协议测试方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778879A (zh) * 2021-09-13 2021-12-10 上海幻电信息科技有限公司 接口的模糊测试方法及装置
CN113778879B (zh) * 2021-09-13 2024-03-08 上海幻电信息科技有限公司 接口的模糊测试方法及装置

Similar Documents

Publication Publication Date Title
EP2871574B1 (en) Analytics for application programming interfaces
US11218510B2 (en) Advanced cybersecurity threat mitigation using software supply chain analysis
US8719784B2 (en) Assigning runtime artifacts to software components
US11546380B2 (en) System and method for creation and implementation of data processing workflows using a distributed computational graph
CN111309620B (zh) 一种游戏协议测试方法、装置、电子设备和存储介质
CN109347882B (zh) 网页木马监测方法、装置、设备及存储介质
US10740164B1 (en) Application programming interface assessment
CN108595952A (zh) 一种电力移动应用软件漏洞的检测方法及系统
CN112016138A (zh) 一种车联网自动化安全建模的方法、装置和电子设备
CN115270131A (zh) 一种Java反序列化漏洞检测方法及系统
US9569335B1 (en) Exploiting software compiler outputs for release-independent remote code vulnerability analysis
CN112822210B (zh) 一种基于网络资产的漏洞管理系统
CN114491560A (zh) 一种漏洞检测方法、装置、存储介质及电子设备
CN112948232A (zh) 一种游戏协议测试方法、装置、电子设备和存储介质
Van Landuyt et al. A study of NoSQL query injection in Neo4j
CN115292178A (zh) 测试数据搜索方法、装置、存储介质以及终端
CN113032256A (zh) 自动化测试方法、装置、计算机系统和可读存储介质
CN111190813B (zh) 基于自动化测试的安卓应用网络行为信息提取系统及方法
CN116467156A (zh) 联调测试方法、装置、存储介质及电子设备
Valle‐Gómez et al. Mutation‐inspired symbolic execution for software testing
CN103294949A (zh) 一种检测木马程序的方法及装置
CN113762702A (zh) 工作流部署方法、装置、计算机系统和可读存储介质
CN113448822A (zh) 测试方法、装置、计算机可读介质及电子设备
CN117076332B (zh) 一种测试用例的测试方法、装置、电子设备及存储介质
Salman API library-based identification and documentation of usage patterns

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210611