[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20120045235A - Method for game client authentication using random code - Google Patents

Method for game client authentication using random code Download PDF

Info

Publication number
KR20120045235A
KR20120045235A KR1020100106650A KR20100106650A KR20120045235A KR 20120045235 A KR20120045235 A KR 20120045235A KR 1020100106650 A KR1020100106650 A KR 1020100106650A KR 20100106650 A KR20100106650 A KR 20100106650A KR 20120045235 A KR20120045235 A KR 20120045235A
Authority
KR
South Korea
Prior art keywords
game
random code
result value
game client
client
Prior art date
Application number
KR1020100106650A
Other languages
Korean (ko)
Other versions
KR101211855B1 (en
Inventor
김윤동
연성호
Original Assignee
주식회사 엔씨소프트
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 주식회사 엔씨소프트 filed Critical 주식회사 엔씨소프트
Priority to KR1020100106650A priority Critical patent/KR101211855B1/en
Publication of KR20120045235A publication Critical patent/KR20120045235A/en
Application granted granted Critical
Publication of KR101211855B1 publication Critical patent/KR101211855B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

PURPOSE: A method for authenticating a game client using a random code is provided to authenticate a game client by generating random code which is only used for once and is not a fixed code. CONSTITUTION: A game server communicates through a game client installed at a user computer and a communication network. The game server transmits a random code to the game client(S212). A result value is calculated by executing a received corresponding random code(S214). The matching of a calculated result value and a received value is checked(S216). The game client produces the result value by executing the random code received from the game server. The game client transmits the calculated result value to the game server.

Description

랜덤 코드를 이용한 게임 클라이언트 인증 방법{ Method for Game Client Authentication using Random Code }Method for Game Client Authentication using Random Code}

본 발명은 각 사용자 컴퓨터에 설치되어 실행되는 게임 클라이언트를 인증하는 방법에 관한 것으로서, 특히 게임 클라이언트 없이 패킷만을 처리하는 방식으로 온라인 게임을 비정상적으로 이용하는 로봇 프로그램((Non-Client BOT)을 효과적으로 감시하기 위한 것이다.
The present invention relates to a method for authenticating a game client installed and executed in each user computer, and more particularly, to effectively monitor a robot program ((Non-Client BOT) that abnormally uses an online game by processing a packet without a game client. It is for.

통신망과 컴퓨터 관련 기술이 발전하면서 다양한 종류의 온라인 게임 서비스가 제공되고 있는데, 게임 내 재화의 가치가 높아지면서 비정상적인 방법으로 온라인 게임을 이용하는 사례가 늘고 있다.As the network and computer related technologies are developed, various kinds of online game services are being provided. As the value of the goods in the game increases, the use of online games in an abnormal way is increasing.

게임 내 재화를 획득하기 위하여 온라인 게임을 비정상적으로 이용하는 방법은 다양하다.There are a variety of ways to use online games abnormally to obtain in-game goods.

예를 들자면, USB 디바이스를 이용하여 마치 사용자가 키보드나 마우스를 통해 어떤 명령을 입력하는 것처럼 위장하는 하드웨어적 처리 방법, 특정 기능을 수행하는 프로그램(악성모듈)을 메모리의 온라인 게임 프로세스에 로딩시켜 게임 함수를 호출하는 소프트웨어적 처리 방법을 들 수 있다.For example, using a USB device, a hardware processing method that pretends to be a user entering a command through a keyboard or mouse, and a program (a malicious module) that performs a specific function is loaded into an online game process in memory. A software method of calling a function is one.

또한, 게임 클라이언트 없이 로봇 프로그램을 이용하여 게임 서버와 주고 받는 패킷 데이터만을 처리하는 방법이 사용되기도 하는데, 이러한 로봇 프로그램을 논 클라이언트 봇(Non-Client BOT) 이라고 부른다.In addition, a method of processing only packet data exchanged with a game server using a robot program without a game client may be used. Such a robot program is referred to as a non-client bot.

논 클라이언트 봇은 게임 서버에 접속하여 스스로 사냥이나 채집 등 게임 내 활동을 수행함으로써 게임 내 재화의 획득을 시도한다.The non-client bot attempts to acquire in-game goods by connecting to the game server and performing in-game activities such as hunting and gathering by itself.

로봇 프로그램에 의해 게임이 진행되면, 정상적으로 게임을 이용하는 사용자들이 게임 내에서 좋은 게임 아이템을 얻을 기회가 부당하게 박탈되고, 게임 진행을 방해 받으며, 게임 서버에 과도한 부하가 걸리는 등 여러 가지 문제점이 발생하게 된다. 또한, 게임에 대한 흥미를 감소시켜 사용자들이 게임의 이용을 피하게 하고 민원을 발생시키는 주요 요인이 될 수 있다.
When the game is progressed by the robot program, users who normally use the game have various problems such as unjustly deprived of the opportunity to obtain good game items in the game, interrupted the game progress, and excessive load on the game server. do. It can also be a major factor in reducing the interest in the game, allowing users to avoid using the game and generate complaints.

이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 게임 클라이언트 없이 게임 서버와 주고 받는 패킷 데이터만을 처리하는 방식으로 온라인 게임을 진행하는 로봇 프로그램(Non-Client BOT)을 효과적으로 감시할 수 있도록 하는데 그 목적이 있다.
Accordingly, the present invention has been made in order to solve the above problems, so that it can effectively monitor the robot program (Non-Client BOT) to play the online game by processing only the packet data exchanged with the game server without a game client. Its purpose is to.

상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 랜덤 코드를 이용한 게임 클라이언트 인증 방법은, 사용자 컴퓨터에 설치된 게임 클라이언트와 통신망을 통해 통신하면서 온라인 게임 서비스를 제공하는 게임 서버가 랜덤 코드(Random Code)를 생성하여 상기 게임 클라이언트로 전송하는 단계; 통신망을 통해 상기 전송하였던 랜덤 코드의 결과 값이 수신되면, 해당 랜덤 코드를 실행하여 그 결과 값을 산출하는 단계; 및 상기 산출된 결과 값과 상기 수신된 결과 값을 비교하여 서로 일치하는지의 여부를 조사하는 단계를 포함하여 이루어진다.In order to achieve the above object, in the game client authentication method using the random code according to the present invention, a game server that provides an online game service while communicating with a game client installed on a user computer through a communication network (Random Code) Generating and transmitting to the game client; If a result value of the transmitted random code is received through a communication network, executing the random code to calculate a result value; And comparing the calculated result value with the received result value and examining whether the calculated result value coincides with each other.

이때 상기 게임 클라이언트는 상기 게임 서버로부터 랜덤 코드가 수신되면, 수신된 랜덤 코드를 실행하여 그 결과 값을 산출하고, 산출된 결과 값을 상기 게임 서버로 전송하도록 구성된다.
In this case, when the random code is received from the game server, the game client executes the received random code to calculate a result value and transmits the calculated result value to the game server.

상기 게임 서버는 상기 조사 결과 상기 산출된 결과 값과 상기 수신된 결과 값이 일치하면 정상적인 게임 클라이언트가 온라인 게임을 진행하는 것으로 판단하고, 상기 산출된 결과 값이 상기 수신된 결과 값과 일치하지 않으면 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단할 수 있다.
The game server determines that a normal game client plays an online game if the calculated result value and the received result value match, and if the calculated result value does not match the received result value, the robot It can be determined that the program is playing an online game.

상기 랜덤 코드는 상기 게임 클라이언트가 실행되는 상태일 때만 올바른 결과 값을 산출할 수 있도록 구성될 수 있다.The random code may be configured to calculate a correct result value only when the game client is in a running state.

상기 랜덤 코드는 게임 클라이언트가 실행되었을 때 상기 사용자 컴퓨터의 메모리에 생성되는 프로세스 영역 중 특정 영역의 메모리 값을 이용하여 그 결과 값을 연산하도록 구성될 수 있다.The random code may be configured to calculate a result value using a memory value of a specific area of a process area generated in a memory of the user computer when a game client is executed.

또한, 상기 게임 서버는 상기 전송해 주었던 랜덤 코드의 결과 값이 일정 시간 동안 수신되지 않으면, 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단할 수 있다.
In addition, if the result value of the transmitted random code is not received for a predetermined time, the game server may determine that the robot program is playing an online game.

본 발명에 따르면, 게임 서버는 고정되지 않은 1회성 랜덤 코드를 생성하여 게임 클라이언트로 전송하고, 그 결과 값을 수신하여 올바른 것인지를 조사하는 방식으로 게임 클라이언트를 인증한다.According to the present invention, the game server authenticates the game client by generating an unfixed one-time random code and sending it to the game client, and receiving the result and checking whether it is correct.

현재 온라인 게임이 게임 클라이언트를 통해 이루어지고 있다면, 게임 클라이언트로부터 정상적인 결과 값이 수신될 수 있다.If an online game is currently being played through a game client, a normal result may be received from the game client.

그러나 온라인 게임이 로봇 프로그램(Non-Client BOT)을 통해 이루어지고 있다면, 게임 서버가 전송해 주었던 랜덤 코드에 대한 올바른 결과 값이 수신될 수 없다. 즉, 로봇 프로그램은 게임 서버가 전송하는 랜덤 코드를 인식하지 못할 것이므로 응답을 할 수 없다.However, if the online game is played through a non-client BOT, the correct result value for the random code sent by the game server cannot be received. In other words, the robot program cannot respond because it will not recognize the random code transmitted by the game server.

로봇 프로그램이 랜덤 코드를 인식할 수 있다고 하더라도, 랜덤 코드를 반드시 게임 클라이언트가 실행되고 있는 상태이어야만 올바른 결과 값이 산출되도록 구성한다면, 로봇 프로그램은 잘못된 결과 값을 응답하게 된다.Even if the robot program can recognize the random code, if the random code is configured to produce the correct result only when the game client is running, the robot program responds to the wrong result.

그러므로 논 클라이언트 봇(Non-Client BOT)을 효과적으로 감시할 수 있다.Thus, non-client bots can be effectively monitored.

뿐만 아니라 게임 클라이언트가 인증을 위한 코드나 데이터를 유지할 필요가 없기 때문에 주기적인 업데이트도 필요없다.In addition, the game client does not need to maintain code or data for authentication, so periodic updates are not necessary.

도 1은 온라인 게임을 서비스하는 시스템의 개요,
도 2는 사용자 컴퓨터의 구체적인 예,
도 3과 도 4는 본 발명에 따른 랜덤 코드를 이용한 게임 클라이언트 인증 방법의 각 실시예를 설명하는 흐름도,
도 5는 로봇 프로그램의 감시가 이루어지는 것을 설명하는 개요,
도 6은 랜덤 코드에 관한 구체적인 예이다.
1 is an overview of a system for servicing an online game;
2 is a specific example of a user computer;
3 and 4 are flowcharts illustrating each embodiment of a game client authentication method using a random code according to the present invention;
5 is an outline for explaining that a robot program is monitored;
6 is a specific example of a random code.

이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1을 참조하자면, 온라인 게임 서비스는 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(15)을 통해 제공되며, 사용자 컴퓨터(10)에 설치되는 게임 클라이언트(11)는 통신망(15)을 통해 게임 서버(17)와 서로 통신하면서 온라인 게임을 진행한다.Referring to FIG. 1, an online game service is provided through various communication networks 15 such as a wired internet network or a wireless internet network, and the game client 11 installed in the user computer 10 has a game server through the communication network 15. (17) communicate with each other to play an online game.

온라인 게임의 종류는 다양할 수 있으며, 구체적인 예로서 여러 사용자가 동시 다발적으로 참여할 수 있는 MMORPG(Massively Multi-player Online Role Playing Game) 유형의 게임을 들 수 있다.There may be various types of online games, and a specific example may be a game of a Massively Multi-player Online Role Playing Game (MMORPG) type, in which several users may participate simultaneously.

각 사용자가 온라인 게임을 이용하기 위해 사용하는 사용자 컴퓨터(10)는 데스크 탑 컴퓨터나 노트북 컴퓨터와 같은 개인용 컴퓨터(PC: Personal Computer)뿐 아니라 휴대폰이나 스마트폰 등 통신망(15)을 통해 온라인 게임 서비스를 이용할 수 있는 성능을 갖는 임의의 기기일 수 있다.The user computer 10 used by each user to play the online game is not only a personal computer (PC) such as a desktop computer or a laptop computer, but also an online game service through a communication network 15 such as a mobile phone or a smartphone. It can be any device with available performance.

사용자 컴퓨터(10)에는 사용자가 온라인 게임을 이용할 수 있도록 해주는 게임 클라이언트(11)가 설치된다.The user computer 10 is provided with a game client 11 that allows the user to play online games.

게임 클라이언트(11)는 통신망(15)을 통해 다운로드되어 설치될 수 있고 최신 버젼으로 유지되며, 게임 관련 공지사항의 디스플레이, 게임 화면 처리, 사운드 효과 처리, 게임을 위한 각종 사용자 인터페이스의 제공 등 사용자측에서 수행되어야 할 다양한 역할을 담당한다.The game client 11 may be downloaded and installed through the communication network 15 and maintained at the latest version. The game client 11 may display the game related announcements, process the game screen, process sound effects, and provide various user interfaces for the game. It has a variety of roles to be played.

게임 클라이언트(10)는 기본적으로 게임 서버(17)와 통신하면서 온라인 게임을 진행시키는 역할을 수행하며, 게임 클라이언트(11)와 게임 서버(17)의 역할 분담은 필요에 따라 다양하게 구성될 수 있다.
The game client 10 basically plays an online game while communicating with the game server 17, and the role sharing between the game client 11 and the game server 17 may be variously configured as necessary. .

본 발명과 관련하여, 게임 클라이언트(11)는 게임 서버(17)로부터 랜덤 코드가 수신되면, 수신된 랜덤 코드를 실행하여 그 결과 값을 산출하고, 산출된 결과 값을 게임 서버(17)로 전송하도록 구성된다.In connection with the present invention, when the game client 11 receives a random code from the game server 17, the game client 11 executes the received random code to calculate the result value, and transmits the calculated result value to the game server 17. It is configured to.

사용자 컴퓨터(10)에는 게임 클라이언트(11) 대신 로봇 프로그램(12)이 설치될 수 있다.The robot program 12 may be installed in the user computer 10 instead of the game client 11.

이하에서 로봇 프로그램(12)이란 논 클라이언트 봇(Non-Client BOT)을 의미하며, 로봇 프로그램(12)은 게임 클라이언트 없이 게임 서버(17)와 주고 받는 패킷 데이터를 처리하는 방식으로 온라인 게임을 비정상적으로 진행한다.Hereinafter, the robot program 12 refers to a non-client bot, and the robot program 12 abnormally plays an online game by processing packet data exchanged with the game server 17 without a game client. Proceed.

도 2는 사용자 컴퓨터(10)의 구체적인 예를 보인 것이다.2 shows a specific example of the user computer 10.

각 요소들은 다양한 구조의 시스템 버스(10-1)를 통해 서로 연결되고, 중앙처리장치(CPU: Central Processing Unit,10-2)의 총괄적인 제어하에 서로 데이터를 주고 받으면서 그 역할을 수행한다.Each element is connected to each other through the system bus (10-1) of various structures, and performs the role while exchanging data with each other under the overall control of the Central Processing Unit (CPU) (10-2).

메모리(10-3)는 램(RAM: Random Access Memory)으로서, 중앙처리장치(10-2)가 즉시 액세스할 컴퓨터 프로그램이나 데이터를 저장한다.The memory 10-3 is a random access memory (RAM), and stores computer programs or data that the central processing unit 10-2 immediately accesses.

입력장치 인터페이스(10-4)는 입력장치(10-5)와 연결되어 사용자가 사용자 컴퓨터(10)로 각종 명령이나 정보를 입력할 수 있도록 한다. 사용자 컴퓨터(10)는 입력장치 인터페이스(10-4)를 통해 키보드, 마우스, 키패드, 터치 스크린 등 다양한 종류의 입력장치(10-5)와 연결될 수 있다.The input device interface 10-4 is connected to the input device 10-5 so that a user can input various commands or information to the user computer 10. The user computer 10 may be connected to various types of input devices 10-5, such as a keyboard, a mouse, a keypad, and a touch screen through the input device interface 10-4.

디스플레이 어댑터(10-6)는 다양한 디스플레이 장치(10-7)를 통해 출력할 비디오 정보를 처리하며, 사운드 카드(10-8)는 오디오 정보를 처리하여 스피커(10-9)를 통해 출력한다.The display adapter 10-6 processes the video information to be output through the various display devices 10-7, and the sound card 10-8 processes the audio information and outputs it through the speaker 10-9.

네트워크 인터페이스(10-11)는 사용자 컴퓨터(10)가 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(15)과 연결되어 통신할 수 있도록 한다.The network interface 10-11 allows the user computer 10 to communicate with various communication networks 15 such as a wired internet network or a wireless internet network.

저장매체(10-10)는 비휘발성의 성질을 가지며, 사용자 컴퓨터(10)에 의해 액세스될 수 있는 내장형, 외장형, 분리형, 비분리형의 다양한 형태를 가질 수 있다.The storage medium 10-10 is nonvolatile and may have various forms of internal, external, removable, and non-removable types that can be accessed by the user computer 10.

저장매체(10-10)에는 마이크로소프트사의 윈도우즈(Windows)와 같은 운영체제(OS: Operating System,14)나 게임 클라이언트(11)와 같은 각종 컴퓨터 프로그램과 데이터가 저장된다.The storage medium 10-10 stores various computer programs and data such as an operating system (OS) 14 such as Microsoft's Windows or a game client 11.

어느 사용자가 로봇 프로그램을 이용하여 온라인 게임을 비정상적으로 이용하고자 하는 경우 저장매체(10-10)에는 게임 클라이언트 대신 로봇 프로그램(12)이 설치될 수 있다.When a user wants to use an online game abnormally using a robot program, the robot program 12 may be installed in the storage medium 10-10 instead of the game client.

사용자가 게임 클라이언트(11)나 로봇 프로그램(12)을 실행시키면, 중앙처리장치(10-2)는 해당 코드를 메모리(10-3)에 로딩하여 순차적으로 처리한다.
When the user executes the game client 11 or the robot program 12, the central processing unit 10-2 loads the corresponding code into the memory 10-3 to process sequentially.

도 3을 참조하여, 본 발명에 따른 랜덤 코드를 이용한 게임 클라이언트 인증 방법의 일 실시예를 설명하기로 한다.3, an embodiment of a game client authentication method using a random code according to the present invention will be described.

먼저 게임 서버(17)는 랜덤 코드(Random Code)를 생성하여(S211), 게임 클라이언트(11)로 전송한다(S212).First, the game server 17 generates a random code (Sandom Code) (S211), and transmits to the game client 11 (S212).

여기서 랜덤 코드란 컴퓨터 장치에서 실행되어 결과 값을 산출할 수 있는 컴퓨터 프로그램 코드를 말한다.The random code herein refers to computer program code that can be executed on a computer device to produce a result value.

랜덤 코드는 게임 클라이언트(11)의 인증에 사용된 후 폐기될 수 있는 것으로서, 게임 서버(17)는 게임 클라이언트(11)의 인증을 수행할 때마다 서로 다른 랜덤 코드를 생성한다.The random code may be discarded after being used for authentication of the game client 11, and the game server 17 generates different random codes each time authentication of the game client 11 is performed.

사용자 컴퓨터(10)에서 실행되는 로봇 프로그램(12)도 게임 서버(17)로부터 수신되는 랜덤 코드를 인식할 수 있도록 구성된다면, 랜덤 코드를 처리하여 그 결과 값을 산출할 수 있다.If the robot program 12 executed in the user computer 10 is also configured to recognize the random code received from the game server 17, the robot code 12 can process the random code to calculate the result value.

그러므로 랜덤 코드는 사용자 컴퓨터(10)에서 게임 클라이언트(11)가 실행되는 상태일 때만 올바른 결과 값을 산출할 수 있도록 구성될 수 있다.Therefore, the random code may be configured to calculate the correct result value only when the game client 11 is executed in the user computer 10.

이와 관련한 하나의 예로서, 랜덤 코드는 게임 클라이언트(11)가 실행되었을 때 사용자 컴퓨터의 메모리(10-3)에 생성되는 프로세스 영역 중 특정 영역의 메모리 값을 이용하여 그 결과 값을 연산하도록 구성될 수 있다.As one example in this regard, the random code may be configured to calculate a result value using a memory value of a specific area of a process area generated in the memory 10-3 of the user computer when the game client 11 is executed. Can be.

이때 특정 영역의 메모리에 저장된 데이터의 해쉬(Hash) 값을 연산에 이용하도록 구성될 수도 있다.In this case, the hash value of the data stored in the memory of the specific region may be configured to be used for the calculation.

그러면 로봇 프로그램(12)이 랜덤 코드를 인식할 수 있다고 하더라도 게임 클라이언트(11)가 실행되고 있지 않기 때문에 올바른 결과 값을 산출할 수 없다.Then, even though the robot program 12 can recognize the random code, since the game client 11 is not running, the correct result value cannot be calculated.

예컨대 랜덤 코드가 게임 클라이언트(11)의 실행에 따라 메모리(10-3)에 생성되는 온라인 게임 프로세스 영역 중 특정 주소(Address)의 4 바이트(Byte) 데이터를 연산에 사용하도록 구성된다면, 로봇 프로그램(12)이 랜덤 코드를 인식하여 실행하더라도 올바른 결과 값을 산출할 수 없다.
For example, if the random code is configured to use 4 bytes of data of a specific address in the online game process area generated in the memory 10-3 according to the execution of the game client 11 for the calculation, the robot program ( 12) Even if this code is recognized and executed, the correct result cannot be calculated.

게임 서버(17)가 단계 S212를 통해 게임 클라이언트(11)로 전송하는 랜덤 코드는 패킷에 담겨 전송되며, 이 패킷의 헤더(Header)에는 해당 패킷에 실린 데이터가 랜덤 코드라는 정보가 실려 있다.
The random code transmitted by the game server 17 to the game client 11 through the step S212 is transmitted in a packet, and the header of the packet contains information that the data contained in the packet is a random code.

게임 클라이언트(11)는 통신망(15)을 통해 게임 서버(17)로부터 수신되는 패킷의 헤더를 분석하여 해당 패킷이 랜덤 코드를 전송하는 패킷임을 인식할 수 있다. 그리고 수신된 랜덤 코드를 실행하여 그 결과 값을 산출한 후(S213), 산출된 결과 값을 게임 서버(17)로 전송한다(S214).The game client 11 may analyze the header of the packet received from the game server 17 through the communication network 15 and recognize that the packet is a packet for transmitting a random code. After the received random code is executed to calculate the result value (S213), the calculated result value is transmitted to the game server 17 (S214).

게임 서버(17)는 단계 S212를 통해 전송하였던 랜덤 코드의 결과 값이 통신망(15)을 통해 수신되면, 단계 S212를 통해 전송하였던 랜덤 코드를 스스로 실행하여 그 결과 값을 산출한다(S215).When the result value of the random code transmitted through the step S212 is received through the communication network 15, the game server 17 executes the random code transmitted through the step S212 by itself and calculates the result value (S215).

랜덤 코드는 컴퓨터 장치에서 실행되어 그 결과 값을 산출할 수 있는 컴퓨터 프로그램 코드이기 때문에, 사용자 컴퓨터(10)뿐 아니라 게임 서버(17)에서도 실행될 수 있으며, 그 결과 값은 동일하게 산출되어야 한다.Since the random code is computer program code that can be executed on a computer device to calculate a result value, it can be executed not only on the user computer 10 but also on the game server 17, and the result value should be calculated identically.

단계 S215와 관련하여, 만일 상기의 예와 같이 랜덤 코드가 게임 클라이언트(11)가 실행되는 상태일 때만 올바른 결과 값을 산출할 수 있도록 구성된다면, 게임 서버(17)는 랜덤 코드가 연산에 사용하는 데이터를 알고 있거나 또는 게임 클라이언트(11)를 실행하고 있다.
Regarding step S215, if the random code is configured to calculate the correct result value only when the game client 11 is in a running state as in the above example, the game server 17 uses the random code for calculation. The data is known or the game client 11 is running.

이제 게임 서버(17)는 단계 S215에서 산출된 결과 값과 단계 S214를 통해 수신된 결과 값을 비교하여 서로 일치하는지의 여부를 조사한다(S216).The game server 17 then compares the result value calculated in step S215 with the result value received in step S214 and checks whether they match with each other (S216).

게임 서버(17)는 단계 S216에서의 조사 결과에 따라 현재 사용자 컴퓨터(10)에서 온라인 게임을 진행하는 프로그램이 정상적인 게임 클라이언트(11)인지 아니면 로봇 프로그램(12) 인지의 여부를 알 수 있다.The game server 17 may determine whether the program currently playing the online game in the user computer 10 is the normal game client 11 or the robot program 12 according to the result of the investigation in step S216.

즉, 게임 서버(17)는 단계 S216에서의 조사 결과 두 값이 서로 일치하면 정상적인 게임 클라이언트(11)에 의해 온라인 게임이 진행되는 것으로 판단하고(S217,S218), 두 값이 서로 일치하지 않으면 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단한다(S217,S219).That is, the game server 17 determines that the online game is played by the normal game client 11 when the two values match with each other as a result of the check in step S216 (S217, S218), and the robots if the two values do not match with each other. It is determined that the program is to play an online game (S217, S219).

게임 서버(17)는 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단된 경우 필요에 따라 다양한 조치를 취할 수 있다.When it is determined that the robot program is playing an online game, the game server 17 may take various actions as necessary.

예를 들자면, 로봇 프로그램이 동작하는 사용자 컴퓨터를 통해 접속한 유저의 아이디(ID), 유저 캐릭터 식별정보, 해당 사용자 컴퓨터의 IP 주소, 게임 이용 일시 등의 정보를 로그 정보로서 저장할 수 있다.For example, the user's ID (ID), user character identification information, IP address of the user's computer, and game usage date and the like, which are connected through the user computer on which the robot program operates, may be stored as log information.

이러한 로그 정보는 이후 해당 사용자에 대한 게임 이용 금지나 경고 등의 제재를 가하는데 있어 기초 자료로 사용될 수 있다.
This log information can then be used as a basis for applying sanctions such as banning or warning the user.

게임 서버(17)는 어느 사용자 캐릭터가 로그인 하였을 때 랜덤 코드를 전송하여 온라인 게임을 이용하는 프로그램이 게임 클라이언트(11)인지 아니면 로봇 프로그램(12)인지의 여부를 감시할 수 있다. 뿐만 아니라 게임 서버(17)는 필요에 따라 임의의 시점에 랜덤 코드를 전송할 수 있음은 물론이다.
The game server 17 may monitor whether the program using the online game is the game client 11 or the robot program 12 by transmitting a random code when a user character logs in. In addition, the game server 17 may transmit a random code at any time as needed.

한편, 게임 서버(17)에 접속하여 온라인 게임을 진행하는 프로그램이 로봇 프로그램(12)인 경우에는 게임 서버(17)가 단계 S212를 통해 전송해 준 랜덤 코드와 관련된 응답이 수신되지 않을 수 있다.On the other hand, if the program to access the game server 17 and play the online game is the robot program 12, the response associated with the random code transmitted by the game server 17 through step S212 may not be received.

즉, 로봇 프로그램(12)이 랜덤 코드를 전송하는 패킷의 헤더를 알 수 없을 때는 게임 서버(17)로부터 수신되는 패킷을 인식할 수 없을 것이므로 랜덤 코드를 수신하지 못한다. 그러므로 로봇 프로그램(12)은 랜덤 코드를 실행하거나 그 결과 값을 게임 서버(17)로 전송할 수 없다.That is, when the robot program 12 does not know the header of the packet for transmitting the random code, it will not be able to recognize the packet received from the game server 17 and thus cannot receive the random code. Therefore, the robot program 12 cannot execute random code or transmit the result value to the game server 17.

도 4를 참조하여 이러한 경우에 관한 실시예를 살펴보기로 한다.An embodiment of this case will be described with reference to FIG. 4.

게임 서버(17)는 도 3의 단계 S212를 통해 랜덤 코드를 전송한 후 이에 관한 응답이 수신되기를 기다린다(S231).The game server 17 transmits a random code through step S212 of FIG. 3 and waits for a response to be received (S231).

만일 일정 시간이 경과되기 전에 랜덤 코드에 관한 결과 값이 수신되면 도 3의 단계 S215로 진행한다(S232,S233).If a result value for the random code is received before a predetermined time has elapsed, the process proceeds to step S215 of FIG. 3 (S232, S233).

그러나 랜덤 코드에 관한 결과 값이 수신되지 않은 상태로 일정 시간이 경과하면 도 3의 단계 S219로 진행한다(S232).However, if a predetermined time has elapsed while the result value regarding the random code is not received, the process proceeds to step S219 of FIG. 3 (S232).

여기서 게임 서버(17)에 랜덤 코드를 전송한 후 그 결과 값을 기다리는 시간은 필요에 따라 합리적인 시간으로 설정할 수 있다.
Here, the time for waiting for the result value after transmitting the random code to the game server 17 can be set to a reasonable time as needed.

도 5를 참조하여 위에서 설명한 각 실시예를 요약하기로 한다.Referring to Figure 5 will be summarized each embodiment described above.

도 5a에 도시된 바와 같이 현재 게임 서버(17)에 접속하여 온라인 게임을 진행하는 프로그램이 게임 클라이언트(11)라면, 게임 서버(17)에서 전송해 준 랜덤 코드를 실행하여 올바른 결과 값을 응답할 수 있다.As shown in FIG. 5A, if the program that accesses the current game server 17 and proceeds with the online game is the game client 11, the random code transmitted from the game server 17 is executed to respond to a correct result value. Can be.

그러나 도 5b에 도시된 바와 같이 현재 게임 서버(17)에 접속하여 온라인 게임을 진행하는 프로그램이 로봇 프로그램(12)이라면, 게임 서버(17)에서 전송해 준 랜덤 코드에 대한 응답을 할 수 없거나, 또는 잘못된 결과 값을 응답하게 된다.However, as shown in FIG. 5B, if the program currently connected to the game server 17 to play an online game is the robot program 12, a response to the random code transmitted from the game server 17 may not be possible, or Or the wrong result.

그러므로 게임 서버(17)는 전송해 준 랜덤 코드에 대한 응답이 수신되지 않거나 잘못된 결과 값이 수신되었다면, 현재 로봇 프로그램(12)에 의해 온라인 게임이 진행되는 것으로 판단할 수 있다.Therefore, the game server 17 may determine that the online game is in progress by the current robot program 12 if a response to the random code transmitted or an incorrect result value is received.

게임 서버(17)는 얼마든지 다양한 방법으로 랜덤 코드를 생성할 수 있다.The game server 17 may generate random codes in various ways.

구체적인 예를 들자면, 랜덤 코드를 구성하는 형식적인 부분은 고정된 템플릿(Template) 형태로 구성하고, 데이터를 연산하는 부분만을 임의적으로 변경시키는 방법으로 랜덤 코드를 생성할 수 있다.For example, the formal part constituting the random code may be configured in the form of a fixed template, and the random code may be generated by arbitrarily changing only the part for calculating data.

도 6은 랜덤 코드의 일 예를 도시한 것으로서, 함수의 프롤로그(Prologue) 부분, 함수의 에필로그(Epilogue) 부분, 데이터 처리 시작 부분, 데이터 처리 종료 부분, 데이터 연산 부분으로 구성되어 있다.6 illustrates an example of a random code, and includes a prologue part of a function, an epilogue part of a function, a data processing start part, a data processing end part, and a data operation part.

이러한 구조에서 게임 서버(17)는 함수의 프롤로그(Prologue) 부분, 함수의 에필로그(Epilogue) 부분, 데이터 처리 시작 부분, 데이터 처리 종료 부분은 고정된 템플릿으로 동일하게 유지하고, 데이터 연산 부분을 랜덤하게 구성하는 방법을 사용할 수 있다.In this structure, the game server 17 maintains the prologue part of the function, the epilogue part of the function, the start of data processing, the end of data processing, and the end of data processing in the fixed template, and randomly operate the data operation part. You can use the construction method.

이때 데이터 연산 부분은 여러 개의 데이터를 갖는 테이블에서 그때 그때 임의적으로 선택할 수 있다.At this time, the data operation portion can be arbitrarily selected at that time in a table having multiple data.

함수의 프롤로그(Prologue) 부분, 함수의 에필로그(Epilogue) 부분, 데이터 처리 시작 부분, 데이터 처리 종료 부분 등도 필요에 따라 얼마든지 변동될 수 있음은 물론이다.
The prologue part of the function, the epilogue part of the function, the start of data processing, and the end of data processing may also be changed as necessary.

상술한 실시예는 본 발명의 이해를 돕기 위한 것이며, 본 발명은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당업자에 의해 다양하게 변형하여 실시할 수 있는 것임은 물론이다.The above-described embodiments are intended to help the understanding of the present invention, and the present invention is not limited to the above-described embodiments and can be variously modified and implemented by those skilled in the art without departing from the spirit of the present invention. to be.

10: 사용자 컴퓨터 11: 게임 클라이언트
12: 로봇 프로그램 15: 통신망
17: 게임 서버 10-2: 중앙처리장치(CPU)
10-3: 메모리
10: User Computer 11: Game Client
12: robot program 15: communication network
17: Game Server 10-2: Central Processing Unit (CPU)
10-3: memory

Claims (5)

사용자 컴퓨터에 설치된 게임 클라이언트와 통신망을 통해 통신하면서 온라인 게임 서비스를 제공하는 게임 서버가 랜덤 코드(Random Code)를 생성하여 상기 게임 클라이언트로 전송하는 단계;
통신망을 통해 상기 전송하였던 랜덤 코드의 결과 값이 수신되면, 해당 랜덤 코드를 실행하여 그 결과 값을 산출하는 단계; 및
상기 산출된 결과 값과 상기 수신된 결과 값을 비교하여 서로 일치하는지의 여부를 조사하는 단계를 포함하고,
상기 게임 클라이언트는 상기 게임 서버로부터 랜덤 코드가 수신되면, 수신된 랜덤 코드를 실행하여 그 결과 값을 산출하고, 산출된 결과 값을 상기 게임 서버로 전송하도록 구성되는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.
Generating a random code by a game server providing an online game service while communicating with a game client installed in a user computer through a communication network and transmitting the random code to the game client;
If a result value of the transmitted random code is received through a communication network, executing the random code to calculate a result value; And
Comparing the calculated result value with the received result value and investigating whether or not they match each other;
When the game client receives a random code from the game server, the game client is configured to execute the received random code, calculate a result value, and transmit the calculated result value to the game server. Client authentication method.
제 1 항에 있어서,
상기 게임 서버는 상기 조사 결과 상기 산출된 결과 값과 상기 수신된 결과 값이 일치하면 정상적인 게임 클라이언트가 온라인 게임을 진행하는 것으로 판단하고, 상기 산출된 결과 값과 상기 수신된 결과 값이 일치하지 않으면 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.
The method of claim 1,
The game server determines that a normal game client plays an online game if the calculated result value and the received result value match, and if the calculated result value and the received result value do not match, the robot Game client authentication method using a random code, characterized in that the program determines to play an online game.
제 1 항에 있어서,
상기 랜덤 코드는 상기 사용자 컴퓨터에서 상기 게임 클라이언트가 실행되는 상태일 때만 올바른 결과 값을 산출할 수 있도록 구성되는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.
The method of claim 1,
The random code is a game client authentication method using a random code, characterized in that configured to calculate the correct result only when the game client is running in the user computer.
제 3 항에 있어서,
상기 랜덤 코드는 게임 클라이언트가 실행되었을 때 상기 사용자 컴퓨터의 메모리에 생성되는 프로세스 영역 중 특정 영역의 메모리 값을 이용하여 그 결과 값을 연산하도록 구성되는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.
The method of claim 3, wherein
The random code is a game client authentication method using a random code, characterized in that configured to calculate the resulting value using the memory value of a specific area of the process area generated in the memory of the user computer when the game client is executed.
제 1 항에 있어서,
상기 게임 서버는 상기 전송해 주었던 랜덤 코드의 결과 값이 일정 시간 동안 수신되지 않으면, 로봇 프로그램이 온라인 게임을 진행하는 것으로 판단하는 것을 특징으로 하는 랜덤 코드를 이용한 게임 클라이언트 인증 방법.
The method of claim 1,
The game server authentication method using a random code, characterized in that if the result of the transmitted random code is not received for a predetermined time, the robot program proceeds to the online game.
KR1020100106650A 2010-10-29 2010-10-29 Method for Game Client Authentication using Random Code KR101211855B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100106650A KR101211855B1 (en) 2010-10-29 2010-10-29 Method for Game Client Authentication using Random Code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100106650A KR101211855B1 (en) 2010-10-29 2010-10-29 Method for Game Client Authentication using Random Code

Publications (2)

Publication Number Publication Date
KR20120045235A true KR20120045235A (en) 2012-05-09
KR101211855B1 KR101211855B1 (en) 2012-12-12

Family

ID=46264737

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100106650A KR101211855B1 (en) 2010-10-29 2010-10-29 Method for Game Client Authentication using Random Code

Country Status (1)

Country Link
KR (1) KR101211855B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138554A1 (en) * 2001-03-26 2002-09-26 Motorola, Inc. Method for remotely verifying software integrity
GB0603781D0 (en) 2006-02-24 2006-04-05 Nokia Corp Application verification

Also Published As

Publication number Publication date
KR101211855B1 (en) 2012-12-12

Similar Documents

Publication Publication Date Title
US8713157B2 (en) System for collecting computer application usage data of targeted application programs executed on a plurality of client devices
US10092845B2 (en) Detecting lag switch cheating in game
US20240333514A1 (en) Method and system for authenticating a secure credential transfer to a device
US10621317B1 (en) Audio-based device authentication system
CN103262065A (en) Method and system for transferring application state
CN112199652B (en) Login method, terminal, server, system, medium and equipment of application program
CN111643907A (en) Game login method and device, storage medium and electronic equipment
US11030284B2 (en) Smart gamepad
US10621322B2 (en) Platform for distinguishing human from machine input
US10807006B1 (en) Behavior-aware player selection for multiplayer electronic games
KR101211855B1 (en) Method for Game Client Authentication using Random Code
JP6082182B2 (en) GAME SYSTEM, GAME DEVICE, GAME PROGRAM, AND GAME CONTROL METHOD
KR20120081360A (en) Method for game client authentication using random code
KR102521679B1 (en) Method and apparatus for delegating game play
KR101741026B1 (en) Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game
KR20120002824A (en) Flash games integrated data system and provide method thereof
KR101819987B1 (en) Game service system, mobile apparatus and method for providing sub game thereof
KR102576794B1 (en) Intergraged authentication service system for multi-application and operation method thereof
KR20120039108A (en) Method and system for bad user monitoring of on-line game system
Corbett et al. Private data harvesting on Alexa using third-party skills
JP7148814B2 (en) Game program and game system
Ricotta Bug hunting in Steam: a journey into the Remote Play protocol
KR102728015B1 (en) Method and system for authenticating a secure credential transfer to a device
CN116701188A (en) Automatic test method, device, computer equipment and storage medium
KR20220001884A (en) Method and system for authenticating a user terminal based on disposable authentication information using mobile device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151203

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161202

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171201

Year of fee payment: 6