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

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

Info

Publication number
CN111309620B
CN111309620B CN202010112696.2A CN202010112696A CN111309620B CN 111309620 B CN111309620 B CN 111309620B CN 202010112696 A CN202010112696 A CN 202010112696A CN 111309620 B CN111309620 B CN 111309620B
Authority
CN
China
Prior art keywords
protocol
game
test
data
tested
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
Application number
CN202010112696.2A
Other languages
English (en)
Other versions
CN111309620A (zh
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 Chengdu Co Ltd
Original Assignee
Tencent Technology Chengdu 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 Chengdu Co Ltd filed Critical Tencent Technology Chengdu Co Ltd
Priority to CN202010112696.2A priority Critical patent/CN111309620B/zh
Publication of CN111309620A publication Critical patent/CN111309620A/zh
Application granted granted Critical
Publication of CN111309620B publication Critical patent/CN111309620B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及计算机技术领域,尤其涉及一种游戏协议测试方法、装置、电子设备和存储介质,用以增加游戏协议测试的适用范围,其中方法包括:获取待测试游戏的协议文件以及协议文件的数据格式,并根据协议文件和协议文件的数据格式生成协议代码;根据协议文件的数据格式对应的环境运行库运行协议代码,生成协议对象,并通过反射技术确定协议对象的结构信息;对协议对象的结构信息进行修改,构建测试数据;通过测试数据对待测试游戏进行游戏协议测试。这样,构造的测试数据可以针对不同编程语言编写的协议文件所在的游戏进行协议测试,从而增加了游戏协议测试的适用范围。

Description

一种游戏协议测试方法、装置、电子设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种游戏协议测试方法、装置、电子设备和存储介质。
背景技术
协议测试是针对网络协议进行的测试,协议测试能够实现一些常规测试中无法实现的流程。在进行协议测试时,包含对协议进行拦截、解析、篡改、发送等一系列的测试过程。
随着游戏的普及,需要针对游戏协议进行测试。在相关技术中,通过反射技术从游戏内存获取协议结构,进行数据变异的模糊测试方案。针对游戏协议特点和游戏实现,定制的模糊测试策略,可以构造海量的测试数据;但是该方法需要游戏的协议定义是基于C#(一种编程语言)编写的,若游戏的协议文件并不是通过C#编写的,会导致无法进行测试。
基于上述内容,现有技术中的游戏协议测试方法限制较多。
发明内容
本申请实施例提供一种游戏协议测试方法、装置、电子设备和存储介质,以增加游戏协议测试的适用范围。
第一方面,本申请实施例提供的一种游戏协议测试方法,包括:
获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述协议文件和所述协议文件的数据格式生成协议代码;
根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;
对所述协议对象的结构信息进行修改,构建测试数据;
通过所述测试数据对所述待测试游戏进行游戏协议测试。
第二方面,本申请实施例提供的一种游戏协议测试装置,包括:
获取模块,用于获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述协议文件和所述协议文件的数据格式生成协议代码;
确定模块,用于根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;
构建模块,用于对所述协议对象的结构信息进行修改,构建测试数据;
测试模块,用于通过所述测试数据对所述待测试游戏进行游戏协议测试。
第三方面,本申请实施例提供一种计算装置,包括至少一个处理单元、以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述任意一种游戏协议测试方法的步骤。
在一个实施例中,计算装置可以使服务器,也可以是终端设备。
第四方面,本申请实施例提供一种计算机可读介质,其存储有可由终端设备执行的计算机程序,当程序在终端设备上运行时,使得终端设备执行上述任意一种游戏协议测试方法的步骤。
本申请有益效果如下:
本申请实施例提供的游戏协议测试方法、装置、电子设备和存储介质,用于进行游戏协议测试的测试数据是根据通过运行生成的协议代码所得到的协议对象构造得到的,由于在本申请实施例中,游戏的协议文件可能并不是通过C#编写的,因此本申请中,根据游戏的协议文件以及协议文件的数据格式来生成协议代码,并运行生成的协议代码获取协议对象,从而根据协议对象的结构信息构造测试数据。这样,构造的测试数据可以针对不同编程语言编写的协议文件所在的游戏进行协议测试,从而增加了游戏协议测试的适用范围。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一个可选的应用场景图;
图2为本申请实施例提供的一种游戏协议测试方法的流程图;
图3为本申请实施例提供的一种游戏协议测试界面示意图;
图4为本申请实施例提供的另一种游戏协议测试界面示意图;
图5为本申请实施例提供的第一种模糊测试过程中游戏界面示意图;
图6为本申请实施例提供的第二种模糊测试过程中游戏界面示意图;
图7为本申请实施例提供的第三种模糊测试过程中游戏界面示意图;
图8为本申请实施例提供的第四种模糊测试过程中游戏界面示意图;
图9为本申请实施例提供的第一种漏洞测试结果展示图;
图10为本申请实施例提供的第二种漏洞测试结果展示图;
图11为本申请实施例提供的第三种漏洞测试结果展示图;
图12为本申请实施例提供的一种可选的交互实现时序流程示意图;
图13为本申请实施例提供的一种游戏协议测试装置的组成结构示意图;
图14为本申请实施例提供的一种计算装置的一种硬件组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
下面对本申请实施例中涉及的部分概念进行介绍。
软件测试,在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
模糊测试(Fuzz测试),是一种通过向目标系统提供非预期的输入并检测异常结果来发现软件漏洞的软件测试技术,常用于检测软件或计算机系统的安全漏洞。
变异,特指模糊测试中的按照一定策略对数据进行构造,在本申请实施例中经变异构造得到的可用于进行游戏协议测试的数据;即,测试数据。
反射,计算机术语,本申请实施例中,反射即为反射技术,特指在程序运行时获取对象的信息,例如程序集、命名空间、类、字段、属性、方法等,并且动态的创建实例化对象。
协议,本申请实施例中指的游戏客户端和游戏服务器之间通信的数据格式。
游戏协议测试界面:是一个面向用户的游戏协议测试的平台网页,通过该页面,用户可以选择需要进行协议测试的目标游戏。以游戏协议测试界面为媒介,完成对目标游戏服务器的漏洞检测。
打包,也叫序列化,将内存协议对象处理成连续的二进制流数据,用于网络传输。
解包,也叫反序列化,将二进制数据流按照协议结构的定义,解析成内存协议对象。
发包,游戏客户端和游戏服务器直接的协议数据发送。
接口,API(Application Programming Interface,应用程序接口),提供一些封装好的功能,方便其他代码调用。本申请实施例中简称为接口。
心跳包,就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。
C#,一种计算机语言,常用于Unity3D引擎(一种游戏引擎)中,使用该语言进行编程。
C++,一种计算机语言,代码需要编译成二进制指令执行。
IL2cpp,一种Unity3D引擎编译技术,不再使用Mono(运行C#代码的虚拟机环境)虚拟机,将C#代码转换成C++代码进行编译和执行。
脚本,一种计算机语言,无需编译成二进制指令,通过虚拟机解释执行。
Lua,一种计算机脚本语言。
Pb,Protocol Buffer(协议缓冲区),Google(谷歌公司)开源的协议格式。
TDR:TSF4G Data Represention,腾讯公司游戏自研的协议格式。
CS,client to server,客户端到服务器的通信。
SC,server to server,服务器到客户端的通信。
SS,server to server,服务器到服务器的通信。
以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请实施例中的实施例及实施例中的特征可以相互组合。
网络协议是指计算机网络中进行数据交换而建立的规则、标准或约定的集合。协议是用来描述进程之间信息交换数据时的规则术语。在计算机网络中,两个相互通信的实体处在不同的地理位置,其上的两个进程相互通信,需要通过交换信息来协调它们的动作达到同步,而信息的交换必须按照预先共同约定好的规则进行。
而协议测试则是针对网络协议进行的测试,协议测试能够实现一些常规测试中无法实现的流程。在进行协议测试时,包含对协议进行拦截、解析、篡改、发送等一系列的测试过程。
由于网络游戏的客户端与服务器端之间同样需要通过网络协议进行通信,因此也需要对网络游戏进行协议测试。现有技术中常见的测试方案主要有一键异常测试方案和基于内存对象反射的模糊测试技术。
一键异常测试方案针对协议字段的数据类型,逐个读取配置列表中的数据进行测试。配置列表中的数据都为测试经验积累的数据,比如:整型数据上下限、字符串SQL(Structured Query Language,结构化查询语言)注入等。配置表的数据量级在300+,测试数据量和深度不够,挖掘问题的能力有限。一键异常测试方案的缺点是覆盖面较窄,变异数据局限于配置表中300+数据,数量和深度都不够,并且只能测试当前触发的协议,发现的漏洞风险有限。
基于内存对象反射的模糊测试技术是通过反射技术从游戏内存获取协议结构,进行数据变异的模糊测试方案。针对游戏协议特点和游戏实现,定制的模糊测试策略。基于内存对象反射的模糊测试技术的优点是可以构造海量的测试数据,扩大协议测试的覆盖面,并且构造的测试数据能够通过服务器的解包校验,生成海量有效测试数据,相对于传统的模糊测试方案更加高效,能够发现更多的漏洞风险。而基于内存对象反射的模糊测试技术同样存在缺点,该方法适用范围存在限制,游戏的协议文件需要通过C#代码编写,如果游戏核心逻辑在Lua脚本或者采用IL2cpp编译方式,则无法通过反射获取到协议对象,从而无法生成变异数据,无法进行测试。
基于上述问题,本申请实施例提供了一种游戏协议测试方法、装置、电子设备和存储介质,根据游戏的协议文件以及协议文件的数据格式来生成协议代码,并运行生成的协议代码获取协议对象,从而根据协议对象的结构信息构造测试数据。这样,由于无需从游戏内存获取协议结构,获取的测试数据不再受到游戏所采用的编程语言的限制,增加了游戏协议测试的适用范围。
参见表1所示为本申请实施例中提供的游戏协议测试方法与现有技术的测试方案在几个方面的对比表。
表1
对比项 一键异常测试方案 内存对象反射方案 本申请实施例
测试数据量 5000+ 100W+ 100W+
游戏限制 无限制 游戏协议定义在C#代码中 无限制
有效数据 100% 100% 100%
攻击面 部分CS协议 CS、SC、SS、网络接口等 CS、SC、SS、网络接口等
耗时 5/人天 0.5人/天+<30h(自动化) 0.5人/天+<30h(自动化)
由表1可知,基于内存对象反射的模糊测试技术与本申请实施例中游戏协议测试方法相比,基于内存对象反射的模糊测试技术受到了游戏所采用的编程语言的限制,仅能够对符合要求的游戏进行协议测试;而本申请实施例提供的游戏协议测试方法的适用范围更大,并不会因为游戏所采用的编程语言而导致无法进行测试。
本申请实施例中的游戏协议测试方法可以应用于如图1所示的应用场景,在该应用场景中包括测试工具101、游戏客户端102以及游戏服务器103。其中测试工具101指测试应用或网站、平台等,可以运行在游戏客户端102中,也可以运行在其他终端中。测试工具101能够通过进程注入和hook(钩子,Windows系统机制)的方式与游戏进程交互,从游戏客户端102中获取游戏的协议文件以及协议文件的数据格式,并根据协议文件和协议文件的数据格式生成协议代码。测试工具101通过运行协议代码生成协议对象,并通过协议对象的结构信息构建测试数据。测试工具101将构建的测试数据发送给游戏客户端102,并通过游戏客户端102将测试数据发送给游戏服务器103由于游戏服务器103对测试数据进行处理。测试工具101通过检测游戏服务器103运行测试数据之后的运行状态,确定是否存在漏洞。
在本申请实施中,游戏客户端102为游戏用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本等具有一定计算能力并且运行有即时通讯类软件及网站或者社交类软件及网站的计算机设备。各游戏客户端102通过无线网络与游戏服务器103连接,游戏服务器103是一台服务器或若干台服务器组成的服务器集群或云计算中心。
值得说明的是,本申请实施例中的架构图是为了更加清楚地说明本申请实施例中的技术方案,并不构成对本申请实施例提供的技术方案的限制,对于其它的应用场景架构和业务应用,本申请实施例提供的技术方案对于类似的问题,同样适用。
基于图1所示的应用场景图,本申请实施例提供了一种游戏协议测试方法,该方法的流程可以由游戏协议测试装置执行,如图2所示,包括以下步骤:
S21:获取待测试游戏的协议文件以及协议文件的数据格式,并根据协议文件和协议文件的数据格式生成协议代码。
其中,每个游戏功能对应至少一个协议文件。
在本申请实施例中,游戏测试工具可存在多种测试方式,并包括本申请所提供的游戏协议测试方法,如图3所示,其为游戏测试工具的界面示意图。在图3中,游戏测试工具的显示界面上显示了5种测试类型,分别为:协议漏洞测试、函数漏洞测试、Fuzz漏洞测试、自动化漏洞挖掘以及内存漏洞测试,本申请实施例中的测试方法为图3中所示的Fuzz漏洞测试,是一种模糊测试方法,通过构造测试数据,并将测试数据输入游戏服务器进行漏洞挖掘。
在图3中,用户点击Fuzz漏洞测试后,则进入选择游戏测试界面,如图4所示,其为选择游戏进行测试的显示界面示意图。在图4中,会在显示界面上显示当前终端上下载的网络游戏,如网络游戏1、网络游戏2和网络游戏3。用户通过点击网络游戏1的启动游戏按键启动游戏;网络游戏例如是王者荣耀、和平精英和火影忍者等游戏。
如图5所示,在网络游戏1(如火影忍者)启动后,进入游戏画面,并会在显示界面上悬浮显示开始测试的按键,在用户点击“开始”按键后,游戏测试工具会注入一段代码到网络游戏1客户端内存中执行,这段代码可以获取网络游戏1客户端内存中的所有数据并且可以修改网络游戏1客户端代码的执行。
在本申请实施例中,网络游戏的协议文件可能是通过C#编写、采用IL2cpp编译方式编写的或者在Lua脚本上编写。若网络游戏的协议文件是通过C#编写,则可以通过游戏测试工具直接获取游戏的协议对象,从而构造测试数据。若网络游戏的协议文件是采用IL2cpp编译方式编写或者在Lua脚本上编写的,则无法直接获取游戏的协议对象。此时需要获取游戏中协议文件以及协议文件的格式。其中,协议文件的格式包括Pb和TDR两种。
在本申请实施例中,获取了游戏中协议文件以及协议文件的格式后,可以根据各协议格式对应的官方工具将协议文件生成有常用的编程语言编写的协议代码,例如:C/C++、C#、Lua等语言。其中,各协议格式对应的官方工具存储在游戏测试工具中。
然而由于Pb格式是开源的,因此游戏的开发者在开发游戏时可能会使用一些自定义特性的协议文件,即,是由开发者自己编写的协议文件。自定义特性的协议文件是无法通过官方工具生成协议代码的,因此,在生成协议代码时不考虑自定义特性,具体可实施为:通过脚本代码屏蔽协议文件的自定义特性,并根据协议文件和协议文件的数据格式生成协议代码。
这样,可以避免因自定义特性而导致生成的协议代码报错,或者无法生成协议代码。
S22:根据协议文件的数据格式对应的环境运行库运行协议代码,生成协议对象,并通过反射技术确定协议对象的结构信息。
在本申请实施例中,若网络游戏的协议文件是采用IL2cpp编译方式编写或者在Lua脚本上编写的,但是由于生成的协议代码是由常用的编程语言编写的,因此,生成的协议代码缺少运行时的环境支持。
因此,若是Pb格式的协议文件,在运行协议代码之前需要在游戏内存中加载Pb库以支持生成的协议代码运行。
若是TDR格式的协议文件,在运行协议代码之前需要生成由编写该协议代码对应的语言编写TDR库代码,并将TDR库代码引入到工具工程编译生成,以支持协议代码的运行。
在本申请实施例中,运行协议代码生成协议对象之后,便可以通过反射技术获取协议对象的结构信息,例如:程序集、命名空间、类、字段、属性、方法等。
S23:对协议对象的结构信息进行修改,构建测试数据。
在本申请实施例中,通过对协议对象中不同部分进行赋值,构建测试数据。
S24:通过测试数据对待测试游戏进行游戏协议测试。
在本申请实施例中,若网络游戏的协议文件是采用IL2cpp编译方式编写或者在Lua脚本上编写的,那么游戏本身的协议对象可能是Lua对象或者C++对象,而通过游戏测试工具生成的协议对象为C#对象,这两者的内存结构完全不同,因此游戏测试工具向游戏客户端发送测试数据时无法直接使用游戏的发包接口。
在本申请实施例中,游戏测试工具需要对测试数据进行打包,在发送给游戏客户端,具体可实施为步骤A1-A4:
步骤A1:对测试数据进行序列化,得到二进制数据。
其中,对测试数据进行打包即对测试数据进行序列化处理。
步骤A2:将二进制数据发送给待测试游戏客户端,并通过待测试游戏客户端将二进制数据发送给待测试游戏服务器。
步骤A3:向待测试游戏客户端发送检测数据,并接收待测试游戏客户端反馈的检测响应,检测响应是待测试游戏服务器根据二进制数据的运行结果确定的。
步骤A4:根据检测响应确定游戏协议测试结果。
在本申请实施例中,游戏服务器可以并行进行各协议文件对应的测试数据的测试,也可以逐个对协议文件对应的测试数据进行测试。
如图6所示,为本申请实施例提供的一种在游戏服务器运行测试数据后所检测得到的Fuzz测试日志以及执行过程中的信息显示,可通过点击上传将测试结果上传给云端服务器,其中,云端测试服务器为游戏测试工具对应的服务器,通过点击下发或删除等也可对这些信息进行处理,此外通过点击停止以结束Fuzz测试,通过点击暂停以暂停Fuzz测试。
在本申请实施例中,执行Fuzz测试时,每次发送完测试数据后,需要判断游戏服务器运行状态是否异常,例如是否出现宕机、死循环、进程僵死等状况。
如图7及图8所示,由于游戏服务器运行测试数据导致服务器出现异常。例如当传给游戏服务器一个测试数据时,可能出现死循环或者内存溢出崩溃等。
可选的,可通过下列方式确定游戏服务器运行变异数据之后的状态:
确定方式一、通过游戏客户端向游戏服务器发送心跳包,根据游戏服务器是否向游戏客户端发送心跳包反馈,确定游戏服务器运行测试数据之后的状态。
其中,步骤A3中的检测数据即为心跳包。
具体的,游戏客户端与游戏服务器之间有定时心跳包发送,每次测试数据发送后,强制游戏客户端发送心跳包,检查游戏服务器是否有心跳包反馈,根据是否检测到游戏服务器心跳包反馈确定游戏服务器的状态是否出现异常。
确定方式二、根据游戏服务器与游戏客户端之间的网络接口的状态,确定游戏服务器运行测试数据之后的状态。
在游戏客户端与游戏服务器之间建立了TCP(Transmission Control Protocol,传输控制协议)长连接,用于游戏客户端和游戏服务器之间的数据交互。比如玩家发送聊天消息,游戏服务器会广播给周围玩家,这里的聊天消息和游戏服务器广播数据,就是通过TCP连接发送的数据。
在本申请实施例中,通过判断游戏应用层的游戏服务器与游戏客户端之间的网络接口的连接状态是正常还是已断开,可检测游戏服务器的运行状态是否出现异常。通过使用游戏应用层的连接状态判断,要比使用TCP连接判断准确,可以更加高效的检测游戏服务器的状态。
确定方式三、通过检测游戏服务器的进程,确定游戏服务器运行测试数据之后的状态。
该方式下,可直接在游戏服务器部署进程检测脚本,读取游戏服务器进程的CPU(Central Processing unit,中央处理器)使用、内存、磁盘IO(In/output,)、网络流量等指标,以检测服务器状态。
在一种可选的实施方式中,为了防止协议数据被篡改或者防重发保护,一些游戏在进行序列化处理时,会在序列化处理时填充序列号或者校验码等。例如:若一个协议数据的二进制数据为0101,然而实际序列化处理后得到的二进制数据为00110101,即在二进制数据前加入了0011。其中,保护处理可以在对协议数据进行序列化处理时执行,也可以在协议数据进行序列化处理后,得到二进制数据,对二进制数据执行。
基于上述问题,为了使游戏测试工具生成的测试数据在转为二进制数据时能够被游戏服务器所识别并处理,需要获取游戏进行序列化处理时的规则,具体的:确定待测试游戏客户端的序列化规则;根据序列化规则对测试数据进行序列化,得到二进制数据。这样,在测试数据转为二进制数据时,根据规则进行序列化,能够被游戏服务器所识别并处理。
在本申请实施例中,通过测试数据对待测试游戏进行游戏协议测试之后,将确定的游戏协议测试结果上传到云端服务器以使云端服务器对游戏协议测试结果进行展示。
其中,可以由游戏服务器发送给云端服务器以向用户展示游戏协议测试结果。或者通过游戏测试工具直接将测试数据发生给云端服务器,由云端服务器进行数据报告分析、编辑等,确定测试结果并展示给用户。
如图9至图11所示,其中,图9为本申请实施例提供的一种对网络游戏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个服务器高负载无响应。
如图10所示,为针对宕机漏洞的详细报告,其中6例超长字符串导致服务器宕机体现为缓冲区溢出,在图10中针对不同的宕机类型,分别给出了对应的异常接口以及异常类型。
如图11所示,其为本申请实施例提供的一种检测日志,图中以条形图的形式对变异用例进行了统计,此外,还通过表格的方式对协议接口和异常类型进行了统计,十分直观地向用户展示宕机漏洞。
本申请实施例实现了一套可以对网络游戏服务器进行模糊测试的工具,不需要开发提供协议文件支持,纯黑盒的接入模糊测试。且本申请实施例提供的方法,由于无需从游戏内存获取协议结构,获取的测试数据不再受到游戏所采用的编程语言的限制,增加了游戏协议测试的适用范围。
参阅图12所示,为一种游戏协议测试的交互时序图。该方法的具体实施流程如下:
步骤1201:游戏测试工具获取待测试游戏的协议文件以及协议文件的数据格式,并根据协议文件和协议文件的数据格式生成协议代码。
步骤1202:游戏测试工具根据协议文件的数据格式对应的环境运行库运行协议代码,生成协议对象,并通过反射技术确定协议对象的结构信息。
步骤1203:游戏测试工具对协议对象的结构信息进行修改,构建测试数据。
步骤1204:游戏测试工具将测试数据发送给网络游戏A客户端。
步骤1205:网络游戏A客户端将测试数据发送给网络游戏A服务器。
步骤1206:网络游戏A服务器运行测试数据。
步骤1207:游戏测试工具通知网络游戏A客户端向网络游戏A服务器发送心跳包。
步骤1208:网络游戏A客户端向网络游戏A服务器发送心跳包。
步骤1209:网络游戏A服务器向网络游戏A客户端发送心跳包响应。
步骤1210:网络游戏A客户端向测试工具发送心跳包反馈。
步骤1211:游戏测试工具判断服务器状态,并确定是否存在漏洞。
步骤1212:游戏测试工具将测试结果上传至网站平台。
步骤1213:网站平台根据测试结果进行报告编辑和展示。
其中,网站平台为云端服务器的显示平台。
基于相同的发明构思,本申请实施例还提供了一种游戏协议测试装置。如图13所示,该装置包括:
获取模块1301,用于获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述协议文件和所述协议文件的数据格式生成协议代码;
确定模块1302,用于根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;
构建模块1303,用于对所述协议对象的结构信息进行修改,构建测试数据;
测试模块1304,用于通过所述测试数据对所述待测试游戏进行游戏协议测试。
可选的,若所述协议文件的数据格式为Pb,且所述协议文件为自定义特性的协议文件,则获取模块1301具体用于通过脚本代码屏蔽所述协议文件的自定义特性,并根据所述协议文件和所述协议文件的数据格式生成协议代码。
可选的,若所述待测试游戏的协议文件为预定格式,则测试模块1304包括:
序列化单元,用于对所述测试数据进行序列化,得到二进制数据;
发送单元,用于将所述二进制数据发送给待测试游戏客户端,并通过所述待测试游戏客户端将所述二进制数据发送给待测试游戏服务器;
接收单元,用于向所述待测试游戏客户端发送检测数据,并接收所述待测试游戏客户端反馈的检测响应,所述检测响应是所述待测试游戏服务器根据所述二进制数据的运行结果确定的;
结果单元,用于根据所述检测响应确定游戏协议测试结果。
可选的,序列化单元包括:
规则子单元,用于确定所述待测试游戏客户端的序列化规则;
数据子单元,用于根据所述序列化规则对所述测试数据进行序列化,得到二进制数据。
可选的,所述装置还包括:
展示模块,用于测试模块通过所述测试数据对所述待测试游戏进行游戏协议测试之后,将确定的游戏协议测试结果上传到云端服务器以使所述云端服务器对所述游戏协议测试结果进行展示。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
基于同一技术构思,本申请实施例还提供了一种终端设备1400,参照图14所示,终端设备1400用于实施上述各个方法实施例记载的方法,例如实施图2所示的实施例,终端设备1400可以包括存储器1401、处理器1402、输入单元1403和显示面板1404。
存储器1401,用于存储处理器1402执行的计算机程序。存储器1401可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端设备1400的使用所创建的数据等。处理器1402,可以是一个中央处理单元(central processing unit,CPU),或者为数字处理单元等。输入单元1403,可以用于获取用户输入的用户指令。显示面板1404,用于显示由用户输入的信息或提供给用户的信息,本申请实施例中,显示面板1404主要用于显示终端设备中各应用程序的显示界面以及各显示界面中显示的控件实体。可选的,显示面板1404可以采用液晶显示器(liquid crystal display,LCD)或OLED(organic light-emitting diode,有机发光二极管)等形式来配置显示面板1404。
本申请实施例中不限定上述存储器1401、处理器1402、输入单元1403和显示面板1404之间的具体连接介质。本申请实施例在图14中以存储器1401、处理器1402、输入单元1403、显示面板1404之间通过总线1405连接,总线1405在图14中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1405可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1401可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1401也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1401是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1401可以是上述存储器的组合。
处理器1402,用于实现如图2所示的实施例,包括:
处理器1402,用于调用存储器1401中存储的计算机程序执行如实施图2所示的实施例。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本申请提供的一种游戏协议测试方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种游戏协议测试方法中的步骤。例如,终端设备可以执行如实施图2所示的实施例。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于一种游戏协议测试程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向实体的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程游戏协议测试设备的处理器以产生一个机器,使得通过计算机或其他可编程游戏协议测试设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程游戏协议测试设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程游戏协议测试设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (12)

1.一种游戏协议测试方法,其特征在于,所述方法包括:
获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述数据格式对应的官方工具将所述协议文件生成指定编程语言编写的协议代码;其中,所述协议文件是采用IL2cpp编译方式编写或者在Lua脚本上编写的,所述指定编程语言为C、C++、C#或者Lua;
根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;
对所述协议对象的结构信息进行修改,构建测试数据;
通过所述测试数据对所述待测试游戏进行游戏协议测试。
2.根据权利要求1所述的方法,其特征在于,若所述协议文件的数据格式为协议缓冲区Protocol Buffer,且所述协议文件为自定义特性的协议文件,则所述根据所述数据格式对应的官方工具将所述协议文件生成指定编程语言编写的协议代码,包括:
通过脚本代码屏蔽所述协议文件的自定义特性,并根据所述数据格式对应的官方工具将所述协议文件生成所述指定编程语言编写的协议代码。
3.根据权利要求1或2所述的方法,其特征在于,若所述待测试游戏的协议文件为预定格式,所述通过所述测试数据对所述待测试游戏进行游戏协议测试,包括:
对所述测试数据进行序列化,得到二进制数据;
将所述二进制数据发送给待测试游戏客户端,并通过所述待测试游戏客户端将所述二进制数据发送给待测试游戏服务器;
向所述待测试游戏客户端发送检测数据,并接收所述待测试游戏客户端反馈的检测响应,所述检测响应是所述待测试游戏服务器根据所述二进制数据的运行结果确定的;
根据所述检测响应确定游戏协议测试结果。
4.根据权利要求3所述的方法,其特征在于,所述对所述测试数据进行序列化,得到二进制数据,包括:
确定所述待测试游戏客户端的序列化规则;
根据所述序列化规则对所述测试数据进行序列化,得到二进制数据。
5.根据权利要求3所述的方法,其特征在于,所述通过所述测试数据对所述待测试游戏进行游戏协议测试之后,所述方法还包括:
将确定的游戏协议测试结果上传到云端服务器以使所述云端服务器对所述游戏协议测试结果进行展示。
6.一种游戏协议测试装置,其特征在于,包括:
获取模块,用于获取待测试游戏的协议文件以及协议文件的数据格式,并根据所述数据格式对应的官方工具将所述协议文件生成指定编程语言编写的协议代码;其中,所述协议文件是采用IL2cpp编译方式编写或者在Lua脚本上编写的,所述指定编程语言为C、C++、C#或者Lua;
确定模块,用于根据所述协议文件的数据格式对应的环境运行库运行所述协议代码,生成协议对象,并通过反射技术确定所述协议对象的结构信息;
构建模块,用于对所述协议对象的结构信息进行修改,构建测试数据;
测试模块,用于通过所述测试数据对所述待测试游戏进行游戏协议测试。
7.如权利要求6所述的装置,其特征在于,若所述协议文件的数据格式为协议缓冲区Protocol Buffer,且所述协议文件为自定义特性的协议文件,则获取模块具体用于通过脚本代码屏蔽所述协议文件的自定义特性,并根据所述数据格式对应的官方工具将所述协议文件生成所述指定编程语言编写的协议代码。
8.如权利要求6所述的装置,其特征在于,若所述待测试游戏的协议文件为预定格式,则测试模块包括:
序列化单元,用于对所述测试数据进行序列化,得到二进制数据;
发送单元,用于将所述二进制数据发送给待测试游戏客户端,并通过所述待测试游戏客户端将所述二进制数据发送给待测试游戏服务器;
接收单元,用于向所述待测试游戏客户端发送检测数据,并接收所述待测试游戏客户端反馈的检测响应,所述检测响应是所述待测试游戏服务器根据所述二进制数据的运行结果确定的;
结果单元,用于根据所述检测响应确定游戏协议测试结果。
9.如权利要求8所述的装置,其特征在于,序列化单元包括:
规则子单元,用于确定所述待测试游戏客户端的序列化规则;
数据子单元,用于根据所述序列化规则对所述测试数据进行序列化,得到二进制数据。
10.如权利要求8所述的装置,其特征在于,所述装置还包括:
展示模块,用于测试模块通过所述测试数据对所述待测试游戏进行游戏协议测试之后,将确定的游戏协议测试结果上传到云端服务器以使所述云端服务器对所述游戏协议测试结果进行展示。
11.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1至5中任一所述方法的步骤。
12.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1至5中任一所述方法的步骤。
CN202010112696.2A 2020-02-24 2020-02-24 一种游戏协议测试方法、装置、电子设备和存储介质 Active CN111309620B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010112696.2A CN111309620B (zh) 2020-02-24 2020-02-24 一种游戏协议测试方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010112696.2A CN111309620B (zh) 2020-02-24 2020-02-24 一种游戏协议测试方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111309620A CN111309620A (zh) 2020-06-19
CN111309620B true CN111309620B (zh) 2024-05-07

Family

ID=71160290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010112696.2A Active CN111309620B (zh) 2020-02-24 2020-02-24 一种游戏协议测试方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111309620B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112162928B (zh) * 2020-10-15 2024-03-15 网易(杭州)网络有限公司 游戏的测试方法、装置、电子设备及计算机可读介质
CN114448652B (zh) * 2020-10-16 2023-12-05 腾讯科技(深圳)有限公司 进行加密通信的方法、装置、设备和存储介质
CN113238936B (zh) * 2021-05-11 2022-08-12 中国船舶重工集团公司第七0九研究所 一种可扩展的通用嵌入式软件通信接口测试方法及装置
CN113778879B (zh) * 2021-09-13 2024-03-08 上海幻电信息科技有限公司 接口的模糊测试方法及装置
CN118301221A (zh) * 2024-04-01 2024-07-05 上海乐响网络科技发展有限公司 基于长连接服务的协议调试方法、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021104A (zh) * 2016-05-18 2016-10-12 网易(杭州)网络有限公司 测试网络游戏的方法、装置及游戏终端平台
CN106294094A (zh) * 2015-05-13 2017-01-04 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统
CN106484611A (zh) * 2015-09-02 2017-03-08 腾讯科技(深圳)有限公司 基于自动化协议适配的模糊测试方法和装置
CN108415741A (zh) * 2018-02-13 2018-08-17 腾讯科技(深圳)有限公司 对象序列化和反序列化方法及相关装置
CN110363009A (zh) * 2019-07-17 2019-10-22 腾讯科技(深圳)有限公司 应用程序安全测试方法、装置和计算机可读存储介质
CN110474900A (zh) * 2019-08-13 2019-11-19 腾讯科技(深圳)有限公司 一种游戏协议测试方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120204153A1 (en) * 2011-02-04 2012-08-09 Disney Enterprises, Inc. Automated testing on multiple video game platforms
US9659460B2 (en) * 2015-06-03 2017-05-23 Mido Play Inc. Methods for multiple legal game providers and multiple jurisdictions with a single platform
US10037266B2 (en) * 2016-04-01 2018-07-31 Sony Interactive Entertainment America Llc Game stream fuzz testing and automation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294094A (zh) * 2015-05-13 2017-01-04 腾讯科技(成都)有限公司 游戏服务器的测试方法、客户端、服务器及系统
CN106484611A (zh) * 2015-09-02 2017-03-08 腾讯科技(深圳)有限公司 基于自动化协议适配的模糊测试方法和装置
CN106021104A (zh) * 2016-05-18 2016-10-12 网易(杭州)网络有限公司 测试网络游戏的方法、装置及游戏终端平台
CN108415741A (zh) * 2018-02-13 2018-08-17 腾讯科技(深圳)有限公司 对象序列化和反序列化方法及相关装置
CN110363009A (zh) * 2019-07-17 2019-10-22 腾讯科技(深圳)有限公司 应用程序安全测试方法、装置和计算机可读存储介质
CN110474900A (zh) * 2019-08-13 2019-11-19 腾讯科技(深圳)有限公司 一种游戏协议测试方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Network protocol fuzz testing for information systems and applications: a survey and taxonomy;Tewodros Legesse Munea 等;《Multimedia Tools and Applications》;20150802;第75卷;第14745–14757页 *
彩票游戏终端系统自动化测试用例构建技术研究与实现;潘争俊;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190515;I138-574 *

Also Published As

Publication number Publication date
CN111309620A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
CN111309620B (zh) 一种游戏协议测试方法、装置、电子设备和存储介质
US10003671B2 (en) Capturing and replaying application sessions using resource files
CN104067276B (zh) 客户机侧最小下载和模拟的页面导航特征
US20130339931A1 (en) Application trace replay and simulation systems and methods
CN111831538A (zh) 调试方法、装置以及存储介质
CN108846286A (zh) 跨站脚本漏洞检测方法及装置
US20210117313A1 (en) Language agnostic automation scripting tool
US10705949B2 (en) Evaluation of library test suites using mutation testing
JP7231347B2 (ja) イベント基盤パッケージモジュールの呼び出し方法およびシステム
JP2021192214A (ja) アプリケーションの動作状態を検証する方法および装置
Mahmood et al. A framework for automated API fuzzing at enterprise scale
CN114491560A (zh) 一种漏洞检测方法、装置、存储介质及电子设备
CN114116509A (zh) 程序分析方法、装置、电子设备和存储介质
Pillai Software architecture with Python
CN113362173A (zh) 防重机制验证方法、验证系统、电子设备及存储介质
CN117724803A (zh) 云服务部署方法、装置和平台
CN112948232A (zh) 一种游戏协议测试方法、装置、电子设备和存储介质
US20140283080A1 (en) Identifying stored vulnerabilities in a web service
CN113726855B (zh) 服务聚合方法、装置、电子设备以及计算机可读存储介质
CN115022312A (zh) 多智能合约引擎的实现方法、装置、电子设备及存储介质
CN117009972A (zh) 漏洞检测方法、装置、计算机设备和存储介质
Arora et al. Mobile agent‐based regression test case generation using model and formal specifications
CN114461909A (zh) 信息处理方法、信息处理装置、电子设备和存储介质
CN112966167A (zh) 数据爬取方法、装置、计算机系统和计算机可读存储介质
CN113448822A (zh) 测试方法、装置、计算机可读介质及电子设备

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40023250

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant