System, server, program and method for detecting user cheating in a game

By generating multiple virtual instances on the server side and executing game programs in headless mode, selecting matching virtual instances for cheat detection, the problem of high cost of detecting game client side cheating in the prior art is solved. Achieve high-speed and effective cheat detection.

CN112368057BActive Publication Date: 2024-12-20CYGAMES INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN201980043902.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-05-01
Filing Date
2019-04-18
Publication Date
2024-12-20
Estimated Expiration
2039-04-18

Smart Images

  • Figure CN112368057B_ABST
    Figure CN112368057B_ABST
Patent Text Reader

Abstract

A system is provided, comprising: a user terminal, for executing a game program for playing a game, determining parameters for executing a specific event in the game, and executing the event based on the parameters to generate a user result; a verification result generation unit, for generating a plurality of virtual instances for virtualizing the user terminal, executing the game program in a headless mode in the plurality of virtual instances, selecting a virtual instance for executing the event based on parameters received from a server from the plurality of virtual instances, and executing the event in the selected virtual instance based on the parameters to generate a verification result; and a cheating verification unit, for comparing the user result with the verification result to determine whether cheating has been performed at the user terminal.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a system, a server, a program and a method for checking user cheating in a game. Background Art

[0002] Recently, online games of the type that run on general electronic devices such as smartphones or PCs and communicate with servers via open networks are widely available. For the type of games that utilize native apps (applications) where graphic effects and sound effects that are closely coordinated with the game logic constitute attractive features, it is necessary to implement most of the game logic on the client side to closely coordinate these effects with the game logic. This is because, in the case where the game logic is implemented on the server side, communication with the server side is often required before and after drawing the effects, the client becomes less responsive, and congestion of requests occurs on the server side.

[0003] With this type of game, since the program controlling the game logic is implemented on the client side, there is a problem that cheating is easy to occur, in which data tampered with by modifying the App itself, modifying the content of the client-side memory or the content of the communication, etc. is sent to the server side. Patent document 1 discloses a technology for detecting modification of the game program by performing a memory scan or the like.

[0004] Prior art literature

[0005] Patent Literature

[0006] Patent Document 1: U.S. Patent 8302199 Summary of the invention

[0007] Problem that the invention aims to solve

[0008] However, when the method disclosed in Patent Document 1 is used, a special program for scanning the memory needs to be created, and when the game program is updated, the special program must also be updated according to the update, so the cost for continued maintenance is high, and appropriate cheating detection may be hindered by reverse engineering. Therefore, an effective method for counteracting improper tampering of game data on the client side has not yet been established.

[0009] Solutions for solving problems

[0010] The present invention is made in view of the above problems and has the following features. Specifically, a system according to an aspect of the present invention is a system for detecting user cheating in a game played at a user terminal, the system comprising: a user terminal for executing a game program for playing the game, determining parameters for executing a specific event in the game, sending the parameters, executing the event based on the parameters to generate a user result as a result of the event, and sending the user result; and a server, which includes a verification result generation unit and a cheating verification unit, wherein the verification result generation unit performs the following operations: generating multiple virtual instances for virtualizing the user terminal, executing the game program in headless mode in the multiple virtual instances, selecting a virtual instance for executing the event based on the parameters received by the server from the multiple virtual instances, and executing the event in the selected virtual instance based on the parameters to generate a verification result, and wherein the cheating verification unit compares the user result received from the user terminal with the verification result to determine whether cheating has been performed at the user terminal.

[0011] The verification result generation unit may generate the verification result by executing the game program in the headless mode, while disabling at least graphic processing and sound processing, by executing the event.

[0012] When selecting from the multiple virtual instances, a virtual instance can be identified based on type information, the type information including information indicating the type of a game program executed by the virtual instance and information indicating a directory mounted in the virtual instance, and a virtual instance can be selected that has the same type information as the game program executed at the user terminal and generates the same results as the game program when parameters identical to those of the game program are input.

[0013] The verification result generating unit may include a single virtual instance management unit, which can enable the multiple virtual instances to run in parallel. The single virtual instance management unit of the verification result generating unit can determine the operating status of the virtual instance based on the input / output interrupt signal from the virtual instance, thereby enabling events to be executed based on parameters received by a virtual instance selected from the multiple virtual instances, while selecting another virtual instance and executing events in parallel based on another parameter received.

[0014] The virtual instance may implement container-based virtualization.

[0015] The server may include a load balancer and multiple verification result generation units, each of the multiple verification result generation units may include a single virtual instance management unit, the load balancer may assign the execution of an event based on the received parameters to one of the verification result generation units, and the single virtual instance management unit may search for available virtual instances among the verification result generation units including the single virtual instance, and may select one of the available virtual instances as the virtual instance for executing the event assigned to the single verification result generation unit.

[0016] In addition, a server according to an aspect of the present invention is a server used in a system for detecting user cheating in a game played at a user terminal, wherein the user terminal in the system executes a game program for playing the game, determines parameters for executing a specific event in the game, sends the parameters, executes the event based on the parameters to generate a user result as a result of the event, and sends the user result, and the server performs the following operations: generates multiple virtual instances for virtualizing the user terminal, executes the game program in a headless mode in the multiple virtual instances, selects a virtual instance from the multiple virtual instances for executing the event based on the parameters received by the server, and executes the event in the selected virtual instance based on the parameters to generate a verification result in order to determine whether cheating has been performed at the user terminal by comparing with the user result.

[0017] Whether cheating has been performed at the user terminal may be determined by further comparing the user result received from the user terminal with the verification result.

[0018] In addition, a program according to an aspect of the present invention is a program executed by a server in a system for detecting user cheating in a game played at a user terminal, wherein the user terminal in the system executes a game program for playing the game, determines parameters for executing a specific event in the game, sends the parameters, executes the event based on the parameters to generate a user result as a result of the event, and sends the user result, the program causing the server to perform the following steps: generating multiple virtual instances for virtualizing the user terminal; executing the game program in headless mode in the multiple virtual instances; selecting a virtual instance from the multiple virtual instances for executing the event based on the parameters received by the server; and executing the event in the selected virtual instance based on the parameters to generate a verification result in order to determine whether cheating has occurred at the user terminal by comparing with the user result.

[0019] In addition, a method performed in a system according to an aspect of the present invention is a method performed in a system for detecting user cheating in a game played at a user terminal, wherein a game program for playing the game is executed by the user terminal, parameters for executing a specific event in the game are determined, the parameters are sent, the event is executed based on the parameters to generate a user result as a result of the event, and the user result is sent, wherein a verification result generation unit performs the following operations: generates multiple virtual instances for virtualizing the user terminal, executes the game program in a headless mode in the multiple virtual instances, selects a virtual instance from the multiple virtual instances for executing the event based on the parameters received by a server, and executes the event in the selected virtual instance based on the parameters to generate a verification result, and wherein a cheating verification unit compares the user result received from the user terminal with the verification result to determine whether cheating has been performed at the user terminal.

[0020] In addition, the method performed by a server according to an aspect of the present invention is a method performed by a server in a system for detecting user cheating in a game played at a user terminal, wherein the user terminal included in the system executes a game program for playing the game, determines parameters for executing a specific event in the game, sends the parameters, executes the event based on the parameters to generate a user result as a result of the event, and sends the user result, and wherein the following operations are performed by the server: generating multiple virtual instances for virtualizing the user terminal; executing the game program in headless mode in the multiple virtual instances; selecting a virtual instance from the multiple virtual instances for executing the event based on the parameters received by the server; and in order to determine whether cheating has been performed at the user terminal by comparing with the user result, executing the event in the selected virtual instance based on the parameters to generate a verification result.

[0021] Effects of the Invention

[0022] The present invention makes it possible to easily implement high-speed cheating detection by executing a game program in a headless mode at a server. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] Figure 1 The overall structure of a system according to an embodiment of the present invention is shown.

[0024] Figure 2 is a hardware structure diagram of a user terminal according to an embodiment of the present invention.

[0025] Figure 3is a hardware structure diagram of a server according to an embodiment of the present invention.

[0026] Figure 4 is a functional block diagram of a system according to an embodiment of the present invention.

[0027] Figure 5 is a flow chart illustrating information processing according to an embodiment of the present invention.

[0028] Figure 6 is a schematic diagram showing the timing of information processing according to an embodiment of the present invention. DETAILED DESCRIPTION

[0029] Now, embodiments of the present invention will be described with reference to the accompanying drawings. Figure 1 As shown, the cheating detection system 100 according to the present embodiment may be implemented by a system including one or more user terminals 120 (clients) and a server 130 connected via a network 110 .

[0030] The user terminal 120 in this embodiment is a device that executes a game program while communicating with the server 130 via the network 110. For example, the user terminal 120 is an electronic device such as a mobile phone, a smart phone, a tablet terminal, or a portable game console. Figure 2 As shown, the user terminal 120 may include a processing device 201, an output device 202, an input device 203, a storage device 206, and a communication device 207. The storage device 206 includes a program 209 such as a game program (game App).

[0031] The processing device 201 performs various processes based on the program 209, data input via the input device 203, or data received from the communication device 207. The processing device 201 includes a processor that controls each device included in the user terminal 120, and the processing device 201 performs various processes by using a register or a storage device 206 included in the processor as a work area. These components are connected via a bus 208; however, alternatively, these components can be connected separately as needed. The output device 202 outputs a display and audio used for a game screen under the control of the processing device 201. The input unit 203 is a unit such as a touch screen, a touch pad, or an input button, etc., having a function for accepting input from a user.

[0032] The storage device 206 includes a hard disk, a main memory, and a buffer memory. Optionally, the hard disk can be replaced with any type of non-volatile storage device or non-volatile memory capable of storing information, and can be removable. For example, in the case where the user terminal 120 is a smart phone, it includes ROM and RAM. The storage device 206 stores programs 209 and various data that can be referenced when executing these programs. The program 209 includes an operating system, or programs and data used by any type of application that requires player input, such as a video game or a web browser.

[0033] The communication device 207 performs wireless communication such as mobile communication or wireless LAN communication, or wired communication using an Ethernet (registered trademark) cable or a USB cable, etc. The communication device 207 makes it possible to download a program from the server 130 and store the program in the storage device 206. Alternatively, the program may be stored in an optical disk such as a CD or a DVD, an optical drive may be connected to the communication device 207, the program may be read from the optical disk, and the program may be stored in the storage device 206.

[0034] Figure 3 3 is a block diagram showing a hardware structure of the server 130 according to the present embodiment. Although the server in the present embodiment is a server group including one first server 300 and two or more second servers 310, the server may be realized by only a single server device.

[0035] The first server 300 and the second server 310 have the same hardware structure and respectively include processing devices 301 and 311, output devices 302 and 312, input devices 303 and 313, storage devices 306 and 316, and communication devices 307 and 317. These components are connected via buses 308 and 318; however, alternatively, these components can be connected separately as needed. The first server and the second server are connected via respective communication devices 307 and 317.

[0036] The processing units 301 and 311 include processors that control the respective devices included in the first server 300 and the second server 311, and perform various processes by using the storage devices 306 and 316 as work areas. The output units 302 and 312 have a function for displaying information to a user of the server. The input devices 303 and 313 are devices such as a keyboard or a mouse that have a function for accepting input from a user.

[0037] The storage devices 306 and 316 include a hard disk, a main memory, and a buffer memory. The hard disk stores programs 309 and 319. Alternatively, the hard disk may be replaced with any type of nonvolatile storage device or nonvolatile memory capable of storing information, which may be removable. The storage devices 306 and 316 store programs 309 and 319, and various data that can be referenced when executing these programs. The communication devices 307 and 317 are connected to the network 110 by performing wired communication using an Ethernet (registered trademark) cable or the like, or wireless communication such as mobile communication or wireless LAN communication.

[0038] Figure 4 An example functional block diagram of a system 100 according to the present invention is shown. The user terminal 120 includes a game execution unit 400. The server 130 includes a game server unit 401, a load balancer 402, a verification result generation unit 404, and a cheating verification unit 405. In the present embodiment, the first server 300 includes a game server unit 401, a load balancer 402, and a cheating verification unit 405, and the second server includes a verification result generation unit 404. The server 130 includes a plurality of second servers, and each of these second servers includes a verification result generation unit 404. In other embodiments, each functional unit may be included in one of the one or more server devices, and any functional unit may be included in any server device. For example, the second server may include a cheating verification unit 405, or a third server including a cheating verification unit 405 may be provided. Optionally, all functional units may be included in a single server.

[0039] The game execution unit 400 of the user terminal 120 runs the game based on the game program, game data, etc. The game execution unit 400 generates a specific event at a specific timing, determines event parameters based on input from the user, etc., sends these event parameters to the game server unit 401, executes the event to generate an event result, and sends the event result to the game server unit 401. The event result is presented to the user via the output device 202.

[0040] The game server unit 401 accepts access from each user terminal 120 and provides game services via the network. For example, the game server unit 401 provides a service in which, for example, data such as the game progress status of the user is stored in association with each user ID, the data is sent to the user terminal 120 in response to a request, and in a game with another player, etc., input information is sent and received with respect to the other player. The load balancer 402 distributes a request for executing a verification result generation process based on an event parameter received by the game server unit 401 from the game execution unit 400 to one of the plurality of verification result generation units 404.

[0041] The verification result generation unit 404 generates a verification result based on the event parameter and sends the verification result to the cheating verification unit 405. The verification result is an event result generated for the purpose of cheating detection. The verification result generation unit 404 includes a virtual instance management unit 410 and multiple virtual instances 411. In order to perform the verification result generation process assigned by the load balancer 402, the virtual instance management unit 410 selects one of the multiple virtual instances 411 of the verification result generation unit 404 including the virtual instance management unit 410.

[0042] Virtual instance 411 is a virtual instance for virtualizing a user terminal. For example, virtual instance 411 can be implemented by using an operating system-level virtualization technology called "container" in docker (registered trademark) and the like. Docker (registered trademark) makes it possible to control the Linux container provided by the Linux (registered trademark) kernel to realize the virtualization of each process, that is, to provide a space in which the use of the CPU and the use of the file system are separated from other processes. Since the containers are separated from each other, each container can behave as if the container is the only game App running on the operating system. Thus, the virtual execution of the game program can be realized at the user terminal by causing each container to execute the game program to activate the process of the game program. Therefore, multiple virtual instances can be generated at a single server device, and multiple game programs can be executed separately and simultaneously in parallel, thereby generating verification results. In the present embodiment, the "container" in docker (registered trademark) is used as a virtual instance 411.

[0043] The verification result generation process using the virtual instance 411 is performed by executing the following game program at the server 130 in headless mode, which is a game program executed to play the game at the user terminal 120. In the present embodiment, the headless mode refers to a mode in which the graphics processing involving access to the GPU is disabled, and in addition, the sound processing involving access to the audio source chip and the processing used for access to the external server are disabled. This makes it possible to execute the game in a state where only the CPU, memory and auxiliary storage device are used (i.e., there is only access to the resources enclosed in the container). Thus, speed limiting factors (factors that determine speed) such as the speed of animation processing that is a prerequisite for human viewing and the speed of audio playback that is a prerequisite for human hearing can be excluded. In addition, considering that these graphics devices and sound devices are usually implemented as external devices outside the CPU, the waiting time required for synchronization in the I / O processing between the CPU and the external device can also be saved. This makes it possible to run the game at high speed by no-wait processing that relies only on the processing speed of the CPU itself, in which wait processing for influence on humans or synchronization with external devices is omitted.

[0044] In the present invention, executing the game program in the headless mode may be executing the game program in the headless mode or executing the headless game program. The execution mode may be arbitrary as long as the game can be run in the headless state. Using Unity, which is a widely adopted game engine, a headless game program can be easily generated by simply selecting the headless mode from the GUI. That is, the game program used for cheating detection can be easily prepared by reusing the game program used by the user terminal 120.

[0045] The cheat verification unit 405 performs cheat verification by comparing the user result received from the user terminal 120 via the game server unit 401 as a result of the event executed by the user terminal 120 with the verification result generated by the verification result generation unit 404. At least a certain degree of difference between these results indicates that the event result has been tampered with at the user terminal 120 due to improper information change by the user or the like.

[0046] In this embodiment, by using the processing device to execute Figure 2 and Figure 3 The program included in the hardware structure shown makes the hardware and software of the output device, input device, storage device and communication device cooperate to realize each functional unit. However, alternatively, each functional unit can be realized by setting an electronic circuit corresponding to each function.

[0047] then, Figure 5Flowchart showing the operation of the user terminal 120 and the server (group) 130 in this embodiment. The server (group) 130 includes a first server 300 and a second server 310. Although it is assumed that a plurality of second servers 310 are provided in this embodiment, for the purpose of simplification, Figure 5 Only a single second server 310 is shown.

[0048] At the second server 310, first, a plurality of virtual instances 411 are generated (S501), the game program is executed in a headless mode through the generated plurality of virtual instances 411 to activate the process of the game program (S502), and waits for reception of event parameters from the user terminal 120. Except for executing the game program in the headless mode, the game program is the same as the game program executed at the user terminal 120. The maximum number of game programs that can be simultaneously executed by the second server 310 is estimated in advance, and the process of the game program virtualized using the container used as the virtual instance 411 is activated within the maximum number used as an upper limit.

[0049] The game in the present embodiment is a card battle game in which a computer acts as an opponent (NPC), and the event is a battle against an opponent. However, alternatively, the opponent can be another player, and the present invention can be implemented similarly for different types of games. In addition, it is assumed here that the battle is an automatic battle, and the battle is automatically advanced and terminated according to the parameters determined by the user input etc. when the battle starts. However, even when adding, updating or otherwise changing the event parameters as a result of the user input etc. after the game starts, the present invention can also be similarly implemented by sending the event parameters to the server 130 when necessary.

[0050] At the user terminal 120, after the game program is downloaded and installed in the user terminal 120, settings are made so that the game can be played. Then, when the game program is executed (S504), a request for required game data is sent to the server 130 (S506). Upon receiving the game data request, the game server unit 401 of the first server 300 sends the user's game data to the user terminal 120 (S508).

[0051] The user terminal 120 receives the game data and starts to advance the game. As the game advances, an event is generated at a certain timing (S510). It is assumed here that the event is a battle with an opponent (NPC) automatically controlled by the game program. The player plays a battle with another player by using a card deck including a predetermined number of cards selected from a plurality of cards owned by the player. When a battle occurs, the NPC determines its card deck to be used for the battle, and the user determines his or her card deck. The user terminal 120 determines parameters including these determined card decks (S512) and sends these parameters to the server 130 (S514).

[0052] Upon receiving these parameters, the first server 300 uses the load balancer 402 to distribute the verification result generation processing for the event to one of the multiple verification result generation units 404, for example in a round-robin manner, and sends the event parameters to the second server 310 (S516) to which the verification result generation unit 404 is distributed.

[0053] The verification result generation unit 404 in the present embodiment can perform the verification result processing simultaneously for a number of times equal to the number of generated virtual instances 41. In addition, the verification result generation processing is completed in a short period of time such as 1 / n (where n is several to dozens) of the duration of the battle in the game, and then a new processing request can be accepted. Since this behavior is different from the behavior of traditional web servers, etc., it is preferred to set the load balancer 402 suitable for the present embodiment. In a conceivable implementation, the load balancer 402, for example, distributes tasks in a round-robin manner to evenly distribute tasks to the virtual instances 411 of each second server 310, allows all servers 310 to try again in the case of an error indicating excess capacity at one of the second servers 310, and only generates an error when the capacity of all servers 310 is exceeded. In another conceivable implementation, in order to immediately and evenly distribute tasks to available instances of the virtual instances 411 of each second server 310, for example, the load balancer 402 has a queue for storing the IP addresses of the available second servers 310, and when one of the second servers 310 issues a processing completion notification, the load balancer 402 adds the server to the tail of the queue, and when a request arrives, the load balancer 402 distributes the request sequentially starting from the head of the queue. In a conceivable implementation, an error is generated only when a request arrives when the queue is empty.

[0054] The second server 310 assigned with the verification result generation processing receives the event parameter used as the verification result generation request, and selects one of the multiple virtual instances 411 to generate the verification result based on the event parameter (S518). In the present embodiment, the virtual instance management unit 410 manages the virtual instance 411 through asynchronous I / O. Specifically, the verification result generation unit 404 of the second server 310 includes a single virtual instance management unit 410, and the virtual instance management unit 410 determines the operation state of the virtual instance working in parallel based on the input / output interrupt signal from the virtual instance, so as to search for the available virtual instance 411 when executing another event through the virtual instance selected from the virtual instance working in parallel, and the virtual instance management unit 410 selects one of the available virtual instances 411 as the virtual instance 411 for executing the event.

[0055] In this embodiment, the communication between the first server 300 and the process in the virtual instance 411 is performed via a file. More specifically, the second server 310 receives event parameters from the first server 300, for example, in the form of a JSON file storing various parameters, and writes these event parameters to a specific file path. The process in the virtual instance 411 monitors the specific file path, and when the file is written, the process reads the file as an event parameter, executes the event, and writes the verification result to a separate file. Then, the separate file is sent to the first server 300. The present invention can also be implemented by using other methods such as inter-process communication via a pipe.

[0056] Here, if there is a situation where even if cheating is not performed, a result with at least a certain degree of similarity is not returned as the user result and the verification result, the user's cheating cannot be accurately detected by simply comparing the user result with the verification result. In this specification, when the same independent variable is given, a result with at least a certain degree of similarity is returned, it is considered that there is result consistency, and when the same independent variable is given, a result with at least a certain degree of similarity is not returned, it is considered that there is no result consistency. That is, unless the process of executing the event by using the event parameters determined by the game program executed at the user terminal 120 and the process executed by the game program executed in headless mode in the container used as the virtual instance 411 at the server 130 have result consistency, cheating cannot be accurately detected by simply comparing the user result with the result used for verification.

[0057] In the present embodiment, the game program executed at the user terminal 120 is mounted in one of the directories in the file system of the server 130 to write information such as event parameters, etc. The container used as the virtual instance 411 is also mounted in one of the directories in the file system of the server 130. Here, it is assumed that the container is referenced in read-only mode with respect to the mounted directory.

[0058] In order to select a container having result consistency with the game program at the user terminal 120, the container is identified based on type information indicating the type of the game program executed by the container and information indicating the directory mounted in the container. Then, a container having the same type information as the game program executed at the user terminal 120 is selected as a container having result consistency. The information indicating the type of the game program is information indicating the type of the game, the version of the game program, etc. The information indicating the directory mounted in the container can be a "path" for mounting the file system of the server 130 from the container. That is, in the case where the types of the game programs executed by the user terminal 120 and the container are the same and the user terminal 120 and the container are mounted at the same directory, there is result consistency, and a container having such result consistency is selected.

[0059] Table 1 shows classification related to the method of verifying result consistency according to whether the directory on which the container used as the virtual instance 411 is mounted is referenced or copied, and whether the directory is accessed in read-only mode or read-write mode. As shown in the table, by verifying the result consistency corresponding to the characteristics of the game program, a container having result consistency with the game program executed at the user terminal 120 can be selected.

[0060] {Table 1}

[0061]

[0062] In Table 1, "reference" means that the container refers to the server directory mounted in the container, and "copy" means that the container copies the mounted server directory and files into the container image. Read-only means that the process in the container accesses the mounted directory in read-only mode, and read-write means that the process in the container accesses the mounted directory in read-write mode.

[0063] That is, the type and version information of the game program executed between the user terminal 120 and the container are the same, and when the following process accesses in read-only mode, there is consistency of results with the game program executed at the user terminal 120, while when the process accesses in read-write mode, there is no consistency of results, wherein the process is a process in the container that "references" the same directory as the directory in the server 130 where the event parameters sent from the user terminal 120 are written. In addition, when the container copies the directory in the second server 310 where the event parameters sent from the user terminal 120 are written, and the process accesses in read-only mode, there is consistency of results if the copied files are the same. When the process performs access in read-only mode, there is consistency of results if the copied "content" is the same and the content changes are synchronized with each other.

[0064] In the above embodiment, since the container refers to the mounted directory in read-only mode, it is possible to select a container (virtual instance 411) with consistent results by selecting a container having the same type information as the game program executed at the user terminal 120 based on type information including information representing the type of the game program executed by the container and information representing the directory mounted on the container.

[0065] Even in a case where access to a directory mounted in a container is not limited to read-only reference, by including information indicating whether the mounted directory is a "reference" or a "copy" and information indicating an access mode to the directory in the type information, a container having consistent results in various environments can be selected based on the type information, the criteria shown in Table 1, etc., thereby ensuring cheating detection.

[0066] The second server 310 executes the event in a headless mode based on the event parameters in the process of the selected virtual instance 411 (container) to generate a verification result (S518), and sends the generated verification result to the first server 300 (S522). Since the speed limiting factor (factor that determines the speed) can be eliminated when executing the event in the headless mode, the event result can be generated in a short time.

[0067] Will refer to Figure 6 Let's explain this in more detail. Figure 6 In the figure, (a) shows the operating status of the CPU when executing an event in normal mode, and (b) shows the operating status of the CPU when executing an event in headless mode. As shown in (a), in normal mode, the CPU does not always have a high load, but a high load occurs locally. For example, this corresponds to the part of the data required to generate a frame for drawing a game screen. Since the music and screen display need to adapt to human perception, waiting occurs before a certain timing is reached. Therefore, in normal mode, the CPU works locally at a speed adjusted by the actual time of the game progress. On the other hand, in headless mode, since the GPU and sound that constitute speed limiting factors are not required, the CPU alone can execute events at high speed (that is, in a short time without waiting). Therefore, the processing that has been distributed so far can be executed together in a short time, so that the verification results for multiple players can be generated within the time period of executing an event for one player in normal mode, thereby achieving a high processing effect.

[0068] After sending the event parameters (S514), the user terminal 120 executes the event based on the event parameters to generate an event result (S524). The user result as the event result generated at the user terminal 120 is sent to the server 130 (S526). In the present embodiment, the event result is the win / loss result of the battle. At the user terminal 120, since the battle graphics and audio are output via the output unit 202 of the user terminal 120 using the CPU, sound source chip, etc., these devices constitute a speed limiting factor, and thus it takes longer time to generate the event result than the verification result generation unit 404.

[0069] The cheating verification unit 405 of the first server 300 performs cheating verification (S528) by comparing the user result generated by the user terminal 120 with the verification result generated by the verification result generation unit 404. If these results are the same, it is judged that the user result is justified, and if these results are different, it is judged that the user result is not justified. Strict consistency is not necessarily required in the result judgment. If the results are consistent with each other within a certain range, it can be judged that there is no cheating. For example, it can be judged that the difference of parameters such as damages within a certain range is permitted, as long as the win / loss results are consistent with each other. In the case where it is judged that cheating is detected, for example, the cheating verification unit 405 sends a cheating detection signal to the game server unit 401, and the game server unit 401 performs a process such as sending a message indicating that cheating has been detected to a user or a game system administrator.

[0070] In the present embodiment, by executing the game program in the headless mode in the verification result generation unit 404, the event can be executed at high speed without waiting to generate the result. In addition, multiple virtual instances 411 can be run in parallel in the verification result generation unit 404, so that when the event is being executed based on the parameters received by the virtual instance 411 selected from the multiple virtual instances, the event is executed based on the other parameters received by the selected other virtual instance. By preparing multiple second servers 310, more virtual instances can be run in parallel. Thus, the verification result can be generated in parallel at high speed, so that a large number of users can be efficiently verified for cheating. In addition, since the second server 310 can be additionally installed as needed, an extensible system can be constructed.

[0071] In the case where the game program executed at the user terminal 120 is executed in headless mode through the virtual instance 411, the same game program as the game program executed at the user terminal 120 can be used. In the case of using a headless version of the game program executed at the user terminal 120, for example, using Unity, which is a widely adopted game engine, the setting of a headless build can be easily performed by simply selecting the headless mode from the GUI. Therefore, even in the case where the game app is changed frequently or in a complex manner, a fraud detection system that adapts to these changes can be easily constructed.

[0072] In addition, by selecting a virtual instance 411 having the same type information as the game program executed at the user terminal 120, accurate cheating detection can be ensured even in various environments including multiple types of games, etc., by selecting a container having results consistent with the game program executed at the user terminal 120.

[0073] Furthermore, by simultaneously executing a plurality of different versions of a game program in a headless mode at a server according to the update status of the game program, cheating detection can be easily achieved at high speed.

[0074] Furthermore, by controlling the game program within the virtual instance, when the game program is updated or the assets in the game program are updated, real-time migration to the new version can be achieved while the existing version of the game program is running. In addition, automatic scaling of processing nodes is also easy.

[0075] As long as no contradiction occurs in the above-mentioned processing or operation, the processing or operation can be freely modified. In addition, the above-mentioned embodiments are examples for illustrating the present invention, and the present invention is not limited to these embodiments. The present invention can be implemented in various forms, as long as it does not deviate from the spirit of the present invention. In addition, the advantages described in the context of the present embodiment are merely a list of the most preferred advantages generated from the present invention, and the advantages of the present invention are not limited to the advantages described in the context of the present embodiment.

[0076] Description of Reference Numerals

[0077] 100 Cheat Detection System

[0078] 110 Network

[0079] 120 User Terminal

[0080] 130 Game Server

[0081] 201 Processing device

[0082] 202 Output device

[0083] 203 Input Device

[0084] 206 Storage Device

[0085] 207 Communication devices

[0086] 208 Bus

[0087] 209 Program

[0088] 300 First Server

[0089] 301 Processing Device

[0090] 302 Output Device

[0091] 303 Input Device

[0092] 306 Storage Device

[0093] 306 Storage Device

[0094] 307 Communication devices

[0095] 308 Bus

[0096] 309 Program

[0097] 310 Second Server

[0098] 400 Game Execution Unit

[0099] 401 Game Server Unit

[0100] 402 Load Balancer

[0101] 404 Verification result generation unit

[0102] 405 Cheating verification unit

[0103] 410 Virtual Instance Management Unit

[0104] 411 Virtual Instance

Claims

1. A system for detecting user cheating in a game played at a user terminal, the system being characterized by comprising: a user terminal for executing a game program for playing a game, determining parameters for executing a specific event in the game, sending the parameters, executing the event based on the parameters to generate a user result as a result of the event, and sending the user result to a server; as well as The server includes a verification result generating unit and a cheating verification unit. The verification result generating unit performs the following operations: generating a plurality of virtual instances for virtualizing the user terminal, executing the game program in a headless mode in the plurality of virtual instances, selecting a virtual instance from the plurality of virtual instances for executing the event based on the parameters received by the server, and executing the event in the selected virtual instance based on the parameter to generate a verification result, and wherein the cheating verification unit compares the user result received from the user terminal with the verification result to determine whether cheating has occurred at the user terminal, and Wherein, when selecting from the plurality of virtual instances, identifying a virtual instance based on type information, the type information including information indicating a type of a game program executed by the virtual instance and information indicating a directory mounted in the virtual instance, and A virtual instance is selected based on an access pattern of the virtual instance to a directory on which the virtual instance is mounted, wherein the selected virtual instance has the same type information as a game program executed at the user terminal, and when parameters identical to those of the game program are input, the selected virtual instance generates the same results as the game program.

2. The system according to claim 1, wherein: The verification result generation unit generates the verification result by executing the game program in the headless mode, executing the event while disabling at least graphic processing and sound processing.

3. The system according to claim 1 or 2, wherein: The verification result generating unit includes a single virtual instance management unit, The verification result generating unit causes the plurality of virtual instances to run in parallel. The single virtual instance management unit of the verification result generating unit determines the operating status of the virtual instance based on the input / output interrupt signal from the virtual instance, thereby enabling events to be executed based on the parameters received by the virtual instance selected from the multiple virtual instances, while selecting another virtual instance and executing events in parallel based on another parameter received.

4. The system according to claim 1 or 2, wherein: The virtual instance implements container-based virtualization.

5. The system according to claim 1 or 2, wherein: The server includes a load balancer and a plurality of verification result generating units. Each of the plurality of verification result generating units includes a single virtual instance management unit, The load balancer distributes the execution of the event based on the received parameters to one of the verification result generation units, and The single virtual instance management unit searches for available virtual instances among verification result generating units including the single virtual instance, and selects one of the available virtual instances as a virtual instance for executing an event assigned to the single verification result generating unit.

6. A server for use in a system for detecting cheating by a user in a game played at a user terminal, in, the user terminal in the system executing a game program for playing a game, determining parameters for executing a specific event in the game, sending the parameters, executing the event based on the parameters to generate a user result as a result of the event, and sending the user result to the server, The server is characterized in that the server performs the following operations: generating a plurality of virtual instances for virtualizing the user terminal, executing the game program in a headless mode in the plurality of virtual instances, selecting a virtual instance from the plurality of virtual instances for executing the event based on the parameters received by the server, and In order to determine whether cheating has occurred at the user terminal by comparing with the user result, the event is executed in the selected virtual instance based on the parameter to generate a verification result, Wherein, when selecting from the plurality of virtual instances, identifying a virtual instance based on type information, the type information including information indicating a type of a game program executed by the virtual instance and information indicating a directory mounted in the virtual instance, and A virtual instance is selected based on an access pattern of the virtual instance to a directory on which the virtual instance is mounted, wherein the selected virtual instance has the same type information as a game program executed at the user terminal, and when parameters identical to those of the game program are input, the selected virtual instance generates the same results as the game program.

7. The server according to claim 6, wherein: By further comparing the user result received from the user terminal with the verification result, it is determined whether cheating has been performed at the user terminal.

8. A computer-readable storage medium storing a program executed by a server in a system for detecting user cheating in a game played at a user terminal, wherein the user terminal in the system executes a game program for playing the game, determines parameters for executing a specific event in the game, sends the parameters, executes the event based on the parameters to generate a user result as a result of the event, and sends the user result to the server, the program being characterized by causing the server to perform the following steps: Generating a plurality of virtual instances for virtualizing the user terminal; executing the game program in the plurality of virtual instances in a headless mode; selecting a virtual instance from the plurality of virtual instances for executing the event based on the parameters received by the server; as well as In order to determine whether cheating has occurred at the user terminal by comparing with the user result, the event is executed in the selected virtual instance based on the parameter to generate a verification result, Wherein, when selecting from the plurality of virtual instances, identifying a virtual instance based on type information, the type information including information indicating a type of a game program executed by the virtual instance and information indicating a directory mounted in the virtual instance, and A virtual instance is selected based on an access pattern of the virtual instance to a directory on which the virtual instance is mounted, wherein the selected virtual instance has the same type information as a game program executed at the user terminal, and when parameters identical to those of the game program are input, the selected virtual instance generates the same results as the game program.

9. A method performed in a system for detecting user cheating in a game played at a user terminal, the method being characterized by: executing a game program for playing the game through the user terminal, determining parameters for executing a specific event in the game, sending the parameters, executing the event based on the parameters to generate a user result as a result of the event, and sending the user result to a server, in, The verification result generation unit performs the following operations: generating a plurality of virtual instances for virtualizing the user terminal, executing the game program in a headless mode in the plurality of virtual instances, selecting a virtual instance from the plurality of virtual instances for executing the event based on the parameters received by the server, and executing the event in the selected virtual instance based on the parameter to generate a verification result, and The cheating verification unit compares the user result received from the user terminal with the verification result to determine whether cheating has occurred at the user terminal, and Wherein, when selecting from the plurality of virtual instances, identifying a virtual instance based on type information, the type information including information indicating a type of a game program executed by the virtual instance and information indicating a directory mounted in the virtual instance, and A virtual instance is selected based on an access pattern of the virtual instance to a directory on which the virtual instance is mounted, wherein the selected virtual instance has the same type information as a game program executed at the user terminal, and when parameters identical to those of the game program are input, the selected virtual instance generates the same results as the game program.

10. A method performed by a server in a system for detecting user cheating in a game played at a user terminal, in, The user terminal included in the system executes a game program for playing a game, determines parameters for executing a specific event in the game, sends the parameters, executes the event based on the parameters to generate a user result as a result of the event, and sends the user result to the server, The method is characterized in that the server performs the following operations: Generating a plurality of virtual instances for virtualizing the user terminal; executing the game program in the plurality of virtual instances in a headless mode; selecting a virtual instance from the plurality of virtual instances for executing the event based on the parameters received by the server; as well as In order to determine whether cheating has occurred at the user terminal by comparing with the user result, the event is executed in the selected virtual instance based on the parameter to generate a verification result, Wherein, when selecting from the plurality of virtual instances, identifying a virtual instance based on type information, the type information including information indicating a type of a game program executed by the virtual instance and information indicating a directory mounted in the virtual instance, and A virtual instance is selected based on an access pattern of the virtual instance to a directory on which the virtual instance is mounted, wherein the selected virtual instance has the same type information as a game program executed at the user terminal, and when parameters identical to those of the game program are input, the selected virtual instance generates the same results as the game program.