KR100457405B1 - Method of detecting whether speed hack is in use - Google Patents

Method of detecting whether speed hack is in use Download PDF

Info

Publication number
KR100457405B1
KR100457405B1 KR10-2003-0088654A KR20030088654A KR100457405B1 KR 100457405 B1 KR100457405 B1 KR 100457405B1 KR 20030088654 A KR20030088654 A KR 20030088654A KR 100457405 B1 KR100457405 B1 KR 100457405B1
Authority
KR
South Korea
Prior art keywords
code value
api
speed
hooking
timer
Prior art date
Application number
KR10-2003-0088654A
Other languages
Korean (ko)
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 KR10-2003-0088654A priority Critical patent/KR100457405B1/en
Application granted granted Critical
Publication of KR100457405B1 publication Critical patent/KR100457405B1/en

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/75Enforcing rules, e.g. detecting foul play or generating lists of cheating players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 타이머 API 후킹 여부를 판단하여 컴퓨터의 내부 시간을 조작하는 스피드 핵 사용 여부를 검출하는 방법에 관한 것이다.The present invention relates to a method for detecting whether or not to use a speed hack to manipulate the internal time of the computer by determining whether the timer API hooking.

본 발명에 따른 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법은, 프로그램을 실행하는 주 모듈과, API(Application Programming Interface) 처리루틴의 주소를 저장하는 IAT(Import Address Table)를 포함한 프로세스에서, 후킹 여부를 판단하고자 하는 상기 타이머 API의 처리루틴의 원래의 코드값을 저장하는 원코드값저장단계와; 상기 타이머 API의 후킹 여부 검출이 요청되면, 상기 IAT에 저장된 상기 타이머 API의 처리루틴의 주소가 가리키는 위치의 코드값을 읽는 사용코드값획득단계와; 상기 원코드값저장단계에서 저장된 코드값과 상기 사용코드값획득단계에서 읽은 코드값을 비교하는 비교단계와; 상기 비교단계의 결과 상기 두 코드값이 일치하지 않으면 상기 타이머 API의 후킹에 의한 스피드 핵 사용으로 판단하고, 상기 두 코드값이 일치하면 상기 타이머 API의 후킹이 아닌 것으로 판단하는 판단단계를 포함한다.A speed hack detection method using a timer API hooking determination method according to the present invention is a process including a main module for executing a program and an import address table (IAT) for storing an address of an API (Application Programming Interface) processing routine. A raw code value storing step of storing an original code value of a processing routine of the timer API to determine whether to hook; A usage code value obtaining step of reading a code value of a position indicated by an address of a processing routine of the timer API stored in the IAT when a hooking detection of the timer API is requested; A comparison step of comparing the code value stored in the original code value storing step with the code value read in the use code value obtaining step; If the two code values do not match as a result of the comparison step, it is determined that the use of speed hacking by the hooking of the timer API, and if the two code values match, the determination step of determining that the hooking of the timer API.

Description

타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법 {Method of detecting whether speed hack is in use}Method of detecting whether speed hack is used by timer APC hooking determination method {Method of detecting whether speed hack is in use}

본 발명은 온라인 게임 보안 방법에 관한 것으로서, 보다 상세하게는 타이머 API 후킹 여부를 판단하여 컴퓨터의 내부 시간을 조작하는 스피드 핵 사용 여부를 검출하는 방법에 관한 것이다.The present invention relates to an online game security method, and more particularly, to a method for detecting whether or not to use a speed hack to manipulate the internal time of the computer by determining whether the timer API hooking.

초고속인터넷이 널리 보급되면서 온라인 게임인구가 급속도로 증가하고 수많은 온라인 게임들이 개발되었지만 아직까지 게임 보안에 대한 인식과 개념이 매우 약하다. 게임에서의 해킹(hacking)을 줄여서 핵(hack)이라고 하는데, 일반적인 해킹은 특정 컴퓨터의 관리자 권한을 얻어내거나 그 컴퓨터에 접속하여 데이터를 조작하는 일을 의미하나, 게임에서의 핵은 특정 게임 클라이언트의 파일이나 메모리 등을 조작하는 프로그램을 가리킨다.With the widespread use of high speed internet, the online game population has increased rapidly and numerous online games have been developed, but the concept and concept of game security is still weak. Hacking in games is called hacking. In general, hacking refers to gaining administrator privileges on a particular computer or accessing and manipulating data on that computer. Points to a program that manipulates files, memory, etc.

게임 핵의 한 종류로서, 스피드 핵(speed hack)이 있다. 이 스피드 핵이란 컴퓨터의 시간을 실제 시간보다 많이 흐른 것처럼 속여서 게임 프로그램의 반응 속도를 증가시키는 프로그램을 말한다. 스피드 핵을 사용할 경우, 게임 내에서 캐릭터의 움직임이나 공격속도 등이 수 배 내지 수백 배 빨라지며, 클라이언트가 게임 서버에게 보내는 패킷의 속도도 함께 빨라진다.One type of game hack is the speed hack. This speed hack is a program that tricks a computer's time as if it's flowing more real time, thereby increasing the response speed of the game program. When using speed hacks, the movement and attack speed of characters in the game is several to hundreds of times faster, and the packets sent by the client to the game server are also faster.

이렇게 클라이언트가 스피드 핵을 사용하면 정상 속도의 게임자보다 빠른 속도로 움직이면서 공격을 하고 캐릭터가 빠르게 성장하기 때문에 스피드 핵을 사용하지 않는 정상 사용자는 피해를 보게 된다. 아울러, 클라이언트가 스피드 핵을 사용하면 단위 시간동안 게임 서버에게 보내는 패킷의 양이 증가하기 때문에, 게임 서버가 과도한 양의 패킷을 처리하면서 과부하가 걸리게 된다. 따라서, 온라인 게임에서 스피드 핵 사용을 제재하지 못하면 결국 온라인 게임 내 사용자간의 균형이 깨어져서 정상 사용자들의 불만이 커지게 되고, 정상 속도보다 훨씬 빠르게 성장하는 캐릭터로 인하여 게임 내의 다른 밸런스까지도 붕괴되는 심각한 문제를 야기할 수 있다.When the client uses the speed hack, the attacker moves faster than the normal player and the character grows faster. Therefore, the normal user who does not use the speed hack will be harmed. In addition, when the client uses the speed hack, the amount of packets sent to the game server increases during the unit time, and the game server is overloaded while processing an excessive amount of packets. Therefore, failure to sanction the use of speed hacks in online games eventually breaks the balance among the users in online games, which leads to an increase in the dissatisfaction of normal users, and a serious problem that causes other characters in the game to collapse due to the characters growing much faster than normal speed. Can cause.

이러한 문제를 해결하려면 게임 클라이언트가 스피드 핵을 사용하지 못하도록 하여야 하는데 이를 위해 스피드 핵 사용 여부를 검출해야 한다. 현재 온라인 게임 개발 업체와 온라인 게임 보안 업체에서 스피드 핵 사용 여부를 검출하는 기술을 개발하고 있다.To solve this problem, we need to prevent the game client from using speed hacks. To do this, we need to detect whether speed hacks are used. Currently, online game developers and online game security companies are developing technology to detect the use of speed hacks.

온라인 게임 개발 업체에서는 게임 클라이언트와 게임 서버 사이의 시간 차이를 계산하고, 게임 서버에 도착하는 패킷의 양을 이용하는 방법으로 스피드 핵 사용 여부를 검출한다. 온라인 게임 보안 업체에서는 바이러스 백신(Anti-virus) 엔진을 이용하여 구성한 보안 엔진에 스피드 핵 프로그램의 패턴을 추가하고 주기적으로 프로세스들을 검사하여 등록된 스피드 핵 패턴과 일치한 프로그램이 있으면 강제 종료시키는 방법으로 스피드 핵 사용여부를 검출한다.An online game developer detects the use of speed hacks by calculating the time difference between the game client and the game server and using the amount of packets arriving at the game server. The online game security company adds a pattern of speed hack programs to the security engine configured using an anti-virus engine, and periodically scans processes to force a program to terminate if there is a program that matches the registered speed hack pattern. Detects the use of speed hacks.

그러나, 종래의 온라인 게임 개발 업체에서 개발한 스피드 핵 사용 여부 검출방법은 클라이언트가 스피드 핵을 약하게 사용하거나 특정 순간에만 사용하는 경우에는 스피드 핵 사용 여부를 정확하게 검출하는 것이 곤란하다. 부연 설명하면, 클라이언트가 스피드 핵을 수십 배 내지 수백 배로 사용한다면 스피드 핵 사용 여부를 쉽게 검출할 수 있지만, 1 내지 2 배로 사용하면 스피드 핵 사용 여부를 정확하게 판단하기가 곤란하다. 아울러, 평소에는 정상 속도로 게임을 하다가 공격 등과 같은 특정 순간에만 수십 배로 스피드 핵을 사용하면, 게임 서버는 이를 네트워크 상의 지연 현상으로 인해 패킷이 한꺼번에 도착한 것으로 판단할 수 있기 때문에 스피드 핵 사용 여부에 대한 정확한 검출이 어렵다. 또한, 종래의 온라인 게임 개발 업체에서 개발한 스피드 핵 사용 여부 검출방법은 게임 서버에 과부하를 주는 문제점이 있다. 즉, 게임 서버가 모든 클라이언트로부터 입력되는 모든 패킷에 대해서 스피드 핵 사용 여부를 검사하면 게임 서버의 부하가 증가하여 게임 서버가 수용할 수 있는 클라이언트의 수가 줄어들고, 이 때문에 동일 수의 클라이언트를 수용하려면 고가의 게임 서버를 증설해야 하는 문제점이 있다.However, the speed hacking detection method developed by a conventional online game developer is difficult to accurately detect whether the speed hack is used when the client uses the speed hack weakly or at a specific moment. In other words, if the client uses the speed nucleus tens or hundreds of times, it is easy to detect whether the speed nucleus is used. However, if the client uses one or two times, it is difficult to accurately determine whether the speed nucleus is used. In addition, if you normally play games at normal speed and use speed hacks several times only during certain moments, such as attacks, the game server can determine that packets arrived at once due to network delays. Accurate detection is difficult. In addition, the speed hack detection method developed by the conventional on-line game developer has a problem of overloading the game server. In other words, if the game server checks the speed hack for all packets coming from all clients, the load on the game server increases and the number of clients that the game server can accommodate decreases, which is expensive to accommodate the same number of clients. There is a problem that must add the game server.

종래의 온라인 게임 보안 업체에서 개발한 스피드 핵 사용 여부 검출방법은 보안 엔진에 스피드 핵 프로그램의 패턴을 모두 추가하여야 하는 문제점이 있다. 보안 프로그램에 패턴을 추가하기 위해서는 해당 스피드 핵 프로그램을 구해야 하는데, 수 많은 종류의 모든 스피드 핵 프로그램들을 구하는 것은 거의 불가능하다. 또한, 보안 엔진에 추가된 패턴이라도 실행파일을 압축하거나 조금이라도 변경하면 프로그램의 패턴이 변경되기 때문에 그 스피드 핵 프로그램은 더 이상의 검출을 할 수 없게 되는 문제점이 있다.The speed hack detection method developed by the conventional online game security company has a problem in that all the patterns of the speed hack program should be added to the security engine. To add a pattern to a security program, you'll need to get that speed hack, and it's almost impossible to get all the speed hacks of all kinds. In addition, even if a pattern added to the security engine is compressed or even a slight change in the executable file, the program pattern is changed, so the speed hack program cannot detect any more.

앞서 설명한 바와 같이 오늘날 온라인 게임에서 클라이언트의 스피드 핵 사용을 제재하여야 하는데, 상술한 바와 같은 기술상의 이유로 말미암아 오늘날 대부분의 온라인 게임들은 클라이언트의 스피드 핵 사용 여부를 검출을 하지 못하며, 따라서 클라이언트의 스피드 핵 사용을 제재하지도 못하고 있다.As described above, the use of speed hacking by clients in today's online games must be sanctioned. Due to the technical reasons described above, most online games today are unable to detect whether a client uses speed hacking, and thus, use speed hacking by clients. It is not even sanctioned.

상술한 바와 같은 종래기술의 문제점을 해결하기 위하여 안출된 본 발명의 목적은, 타이머 API의 후킹 여부를 판단하여 스피드 핵 사용 여부를 신속하고도 정확하게 검출하는 방법을 제공하기 위한 것이다.An object of the present invention devised to solve the problems of the prior art as described above is to provide a method for quickly and accurately detecting the use of a speed hack by determining whether the timer API is hooked.

도 1은 IAT 후킹 방식의 스피드 핵이 사용되는 게임 프로세스의 메모리 구조도,1 is a memory structure diagram of a game process in which a speed hack of an IAT hooking system is used;

도 2는 API 처리루틴 변경 방식의 스피드 핵이 사용되는 게임 프로세스의 메모리 구조도,2 is a memory structure diagram of a game process in which a speed hack of an API processing routine change method is used;

도 3은 본 발명의 한 실시예에 따른 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법을 도시한 동작 흐름도이다.3 is a flowchart illustrating a method of detecting a speed hack using a timer API hooking determination method according to an embodiment of the present invention.

상기한 목적을 달성하기 위한 본 발명에 따른 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법은, 프로그램을 실행하는 주 모듈과, API(Application Programming Interface) 처리루틴의 주소를 저장하는 IAT(Import Address Table)를 포함한 프로세스에서,Speed hack detection method according to the timer API hooking determination method according to the present invention for achieving the above object is, IAT (stores the address of the main module to execute the program and the API (Application Programming Interface) processing routine) In a process that includes an Import Address Table,

후킹 여부를 판단하고자 하는 상기 타이머 API의 처리루틴의 원래의 코드값을 저장하는 원코드값저장단계와;An original code value storing step of storing an original code value of a processing routine of the timer API to determine whether to hook;

상기 타이머 API의 후킹 여부 검출이 요청되면, 상기 IAT에 저장된 상기 타이머 API의 처리루틴의 주소가 가리키는 위치의 코드값을 읽는 사용코드값획득단계와;A usage code value obtaining step of reading a code value of a position indicated by an address of a processing routine of the timer API stored in the IAT when a hooking detection of the timer API is requested;

상기 원코드값저장단계에서 저장된 코드값과 상기 사용코드값획득단계에서 읽은 코드값을 비교하는 비교단계와;A comparison step of comparing the code value stored in the original code value storing step with the code value read in the use code value obtaining step;

상기 비교단계의 결과 상기 두 코드값이 일치하지 않으면 상기 타이머 API의 후킹에 의한 스피드 핵 사용으로 판단하고, 상기 두 코드값이 일치하면 상기 타이머 API의 후킹이 아닌 것으로 판단하는 판단단계를 포함한 것을 특징으로 한다.And if the two code values do not match as a result of the comparing step, determining that the speed hack is used by the hooking of the timer API, and if the two code values match, determining that the hook code is not hooking of the timer API. It is done.

또한, 본 발명에 따르면 컴퓨터 시스템의 프로세스에 상술한 바와 같은 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.According to the present invention, there is provided a computer-readable recording medium having recorded thereon a program for executing a speed hack use detection method by the timer API hooking determination method as described above in a process of a computer system.

이하, 첨부된 도면을 참조하면서 본 발명의 한 실시예에 따른 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법을 보다 상세하게 설명하면다음과 같다.Hereinafter, referring to the accompanying drawings, a method for detecting speed hacking by a timer API hooking determination method according to an embodiment of the present invention will be described in detail.

종래 게임 프로그램에서는 컴퓨터의 PIT(programmable interval timer)의 래치(latch) 값을 조정하여 컴퓨터 시계가 빨리 움직이도록 조작하는 PIT 방식의 스피드 핵이 사용되었다. 그러나, 운영체제가 윈도우 NT/2000/XP 계열의 컴퓨터에서는 PIT의 래치값 조작이 잘 안되기 때문에, PIT 방식의 스피드 핵은 윈도우 9x 계열의 컴퓨터에서는 잘 동작하지만 일부의 윈도우 NT/2000/XP 계열의 컴퓨터에서는 동작을 하지 못한다.In a conventional game program, a PIT type speed hack is used to manipulate a computer clock so as to adjust the latch value of a programmable interval timer (PIT) of a computer. However, because the operating system does not work well with the latch value of the PIT on Windows NT / 2000 / XP series computers, the PIT speed hack works well on Windows 9x series computers, but some Windows NT / 2000 / XP series computers do not. Will not work.

따라서 PIT 방식의 스피드 핵은 점차 없어지고 있으며, 최근에 나오는 스피드 핵은 게임 프로세스가 사용하는 타이머 API 함수(예컨대, GetTickCount, timeGetTime, QueryPerformanceCounter)를 후킹하여 시간이 많이 흐른 것처럼 조작하는 타이머 API 후킹 방식을 사용한다.Therefore, the speed hack of PIT method is gradually disappearing, and the recent speed hack is a timer API hooking method that manipulates the timer API functions (e.g., GetTickCount, timeGetTime, QueryPerformanceCounter) used by the game process as if it has passed a lot of time. use.

본 발명은 타이머 API 후킹 여부를 판단하여 타이머 API 후킹 방식의 스피드 핵 사용 여부를 신속하게 정확하게 검출하는 방법을 제안한다.The present invention proposes a method for quickly and accurately detecting whether a timer API hooking is used or not using a speed hack.

타이머 API 함수로는 GetTickCount, timeGetTime, QueryPerformanceCounter 등이 있다. 대부분의 게임 프로그램은 이들 세 타이머 API 중 하나 또는 둘 이상을 사용한다. 그러므로 스피드 핵도 게임 프로그램에서 사용하는 이 세 개의 타이머 API 중 하나 또는 둘 이상을 후킹한다. 타이머 API를 후킹하는 방법으로는 IAT(Import Address Table)을 직접 수정하는 방법과, 실제 타이머 API 처리루틴에 스피드 핵 후킹 루틴으로의 점프 명령을 덮어쓰는 API 처리루틴 변경 방법이 있다.Timer API functions include GetTickCount, timeGetTime, and QueryPerformanceCounter. Most game programs use one or more of these three timer APIs. Therefore, Speed Hack also hooks one or more of these three timer APIs used in game programs. Hooking the timer API includes directly modifying the import address table (IAT) and changing the API processing routine to overwrite the jump instruction to the speed hacking routine with the actual timer API processing routine.

도 1은 IAT 후킹 방식의 스피드 핵이 사용된 게임 프로세스의 메모리 구조를도시한 도면이고, 도 2는 API 처리루틴 변경 방식의 스피드 핵이 사용되는 게임 프로세스의 메모리 구조를 도시한 도면이다.FIG. 1 is a diagram showing a memory structure of a game process using a speed hack of an IAT hooking method, and FIG. 2 is a diagram showing a memory structure of a game process using a speed hack of an API processing routine change method.

게임 프로세스는 주모듈(11)과, API 처리루틴의 주소가 기재된 IAT(12)와, 실제 API 처리루틴이 로딩된 시스템 DLL(dynamic linking library)(14)을 포함한다. 사용자가 게임 프로그램을 실행하면 주모듈(11)과 IAT(12)가 도 1에 도시된 바와 같이 메모리에 로딩되고, 이와 함께 시스템 DLL(14)이 로딩된다. 여기서, 스피드 핵이 실행되면 게임 프로세스에 스피드 핵 후킹 루틴(13)이 추가된다.The game process includes a main module 11, an IAT 12 in which an address of an API processing routine is written, and a system dynamic linking library (DLL) 14 loaded with an actual API processing routine. When the user executes the game program, the main module 11 and the IAT 12 are loaded into the memory as shown in Fig. 1, and the system DLL 14 is loaded with this. Here, when the speed hack is executed, the speed hack hooking routine 13 is added to the game process.

게임 프로세스가 윈도우가 제공하는 API(Application Programming Interface) 명령을 실행하면, 컴퓨터 운영체제는 게임 프로세스의 IAT(12)로부터 API 처리루틴의 주소를 찾아서, 시스템 DLL(14)에 포함된 API 처리루틴을 실행시킨다.When the game process executes an API (Application Programming Interface) command provided by Windows, the computer operating system finds the address of the API processing routine from the game process's IAT 12 and executes the API processing routine included in the system DLL 14. Let's do it.

이때, 타이머 API를 후킹하여 컴퓨터의 스피드를 조작하는 방법에는 상술한 바와 같이 IAT 후킹 방식과 API 처리루틴 변경 방식이 있다.At this time, the method of manipulating the speed of the computer by hooking the timer API includes the IAT hooking method and the API processing routine changing method as described above.

도 1을 참조하여, IAT 후킹 방식의 스피드 핵의 동작방법을 설명한다. IAT(12)는 API 처리루틴의 주소를 저장하는데, IAT 후킹 방식의 스피드 핵은 IAT(12)에 기록된 해당 타이머 API 처리루틴의 주소를 스피드 핵 후킹 루틴(13)으로 변경한다.With reference to FIG. 1, the operation method of the speed hack of an IAT hooking system is demonstrated. The IAT 12 stores the address of the API processing routine. The speed hack of the IAT hooking method changes the address of the timer API processing routine recorded in the IAT 12 into the speed hacking routine 13.

스피드 핵에 의해 후킹된 타이머 API의 경우, 게임 프로세스의 주모듈(11)이 스피드 핵에 의해 후킹된 타이머 API를 실행하면, IAT(12)에 기록된 스피드 핵 후킹 루틴(13)이 호출된(1a) 후 스피드 핵 후킹 루틴(13)이 실제 타이머 API 처리루틴을 실행한다(1b). 이때, 타이머 API 처리루틴에서 실행된 값이 스피드 핵 후킹 루틴(13)으로 리턴되며, 스피드 핵 후킹 루틴(13)은 이 실행값을 조작해서 게임 프로세스에게 리턴한다. 스피드 핵 후킹 루틴이 정상값보다 2배의 값을 게임 프로세스에게 리턴하면 게임 프로세스는 1초를 기다릴 것을 0.5초만 기다렸다가 동작하므로 전체적인 반응속도가 2배 빨라지게 된다.In the case of the timer API hooked by the speed hack, when the main module 11 of the game process executes the timer API hooked by the speed hack, the speed hack hooking routine 13 recorded in the IAT 12 is called ( After 1a), the speed hacking routine 13 executes the actual timer API processing routine (1b). At this time, the value executed in the timer API processing routine is returned to the speed hacking routine 13, and the speed hacking routine 13 manipulates this execution value and returns it to the game process. When the speed hacking routine returns twice the normal value to the game process, the game process waits 0.5 seconds to wait for 1 second before running, resulting in a 2x overall response.

스피드 핵에 의해 후킹되지 않은 API의 경우, 게임 프로세스의 주모듈(11)이 정상적인 API를 실행하면, IAT(12)에 기록된 실제 API 처리루틴이 호출되어(2a) 정상적으로 실행된다.In the case of an API not hooked by the speed hack, when the main module 11 of the game process executes the normal API, the actual API processing routine recorded in the IAT 12 is called (2a) and executed normally.

도 2를 참조하여 API 처리루틴 변경 방식의 스피드 핵의 동작방법을 설명한다. API 처리루틴 변경 방식의 스피드 핵은 게임 프로세스의 메모리에 로드된 시스템 DLL(14)의 해당 타이머 API 처리루틴의 첫 부분에 스피드 핵 후킹 루틴으로의 점프 명령을 덮어쓰기 하는 방식이다.A method of operating a speed hack in the API processing routine changing method will be described with reference to FIG. 2. The speed hack of the API processing routine change method is a method of overwriting the jump instruction to the speed hacking routine at the beginning of the corresponding timer API processing routine of the system DLL 14 loaded in the memory of the game process.

스피드 핵에 의해 후킹된 타이머 API의 경우, 게임 프로세스가 스피드 핵에 의해 후킹된 타이머 API를 실행하면 정상적으로 시스템 DLL의 타이머 API 처리루틴이 호출되지만(3a), 타이머 API 처리루틴이 호출되자마자 점프 명령에 의해 스피드 핵 후킹 루틴이 실행된다(3b).In the case of the timer API hooked by the speed hack, when the game process executes the timer API hooked by the speed hack, the timer API processing routine of the system DLL is normally called (3a), but as soon as the timer API processing routine is called, the jump instruction is executed. The speed hacking routine is executed (3b).

스피드 핵에 의해 후킹되지 않은 정상적인 API의 경우, 게임 프로세스의 주모듈(11)이 정상적인 API를 실행하면 IAT(12)에 기록된 실제 API 처리루틴이 호출되어(4a) 정상적으로 실행된다.In the case of the normal API not hooked by the speed hack, when the main module 11 of the game process executes the normal API, the actual API processing routine recorded in the IAT 12 is called (4a) and executed normally.

본 발명은 이 두 가지 API 후킹 방식의 스피드 핵 사용 여부를 모두 검출할수 있는 스피드 핵 사용 여부 검출방법을 제안한다.The present invention proposes a speed hack detection method capable of detecting both speed hacks using the API hooking method.

도 3은 본 발명의 한 실시예에 따른 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법을 도시한 동작 흐름도이다.3 is a flowchart illustrating a method of detecting a speed hack using a timer API hooking determination method according to an embodiment of the present invention.

게임 프로그램이 초기 구동하면 게임 프로세스에 본 발명에 따른 코드비교루틴이 로딩된다(S301).When the game program is initially driven, the code comparison routine according to the present invention is loaded into the game process (S301).

다음, 코드비교루틴은 후킹 여부를 확인하고자 하는 타이머 API 처리루틴의 원(original) 코드값을 저장한다(S302). 타이머 API 중 GetTickCount와 QueryPerformanceCounter는 KERNEL32.DLL에 그 처리루틴이 있고, timeGetTime은 WINMM.DLL에 그 처리루틴이 있다. 따라서, 단계 S302에서는 후킹 여부를 확인하고자 하는 타이머 API의 실제 처리루틴이 저장된 DLL 파일로부터 타이머 API 처리루틴의 코드값을 읽어서 저장한다. 이때, 타이머 API 처리루틴의 전체 코드값이 아니라 스피드 핵에 의해 후킹될 가능성이 있는 일부 코드값만을 저장해도 좋으며, 특히 타이머 API 처리루틴의 첫 부분의 일부 코드값만을 저장해도 좋다.Next, the code comparison routine stores an original code value of a timer API processing routine for checking whether hooking is performed (S302). GetTickCount and QueryPerformanceCounter have the processing routine in KERNEL32.DLL, and timeGetTime has the processing routine in WINMM.DLL. Therefore, in step S302, the code value of the timer API processing routine is read and stored from the DLL file in which the actual processing routine of the timer API for which hooking is to be checked is stored. At this time, only some code values that may be hooked by the speed hack may be stored instead of the entire code values of the timer API processing routine. In particular, only some code values of the first portion of the timer API processing routine may be stored.

그 후, 코드비교루틴은 주기적 혹은 게임 프로세스가 타이머 API를 사용할 때 타이머 API의 후킹 여부를 판단하여 스피드 핵 사용 여부를 검출한다.Then, the code comparison routine detects whether the speed API is used by determining whether the timer API is hooked when the periodic or game process uses the timer API.

즉, 스피드 핵 사용 여부를 검출해야 할 경우(S303), 코드비교루틴은 IAT에 저장된 타이머 API 처리루틴의 주소값으로부터 코드값을 획득한다(S304). 이때 타이머 API 처리루틴의 주소값으로부터 전체 코드값이 아니라 일부 코드값, 특히 첫 부분의 일부 코드값만을 획득하여도 좋다.That is, when it is necessary to detect whether the speed hack is used (S303), the code comparison routine obtains a code value from the address value of the timer API processing routine stored in the IAT (S304). In this case, only some code values, particularly some code values of the first part, may be obtained from the address value of the timer API processing routine.

그리고, 단계 S302에서 저장된 코드값과 단계 S304에서 획득된 코드값을 비교한다(S305). 비교결과, 두 코드값이 일치하면(S306) 스피드 핵이 사용되지 않은 것으로 인지하고 단계 S303으로 진행한다. 단계 S305의 비교결과 두 일부 바이트의 코드가 일치하지 않으면(S306) 스피드 핵 사용으로 판단하고 게임 프로그램에게 알린다(S307).The code value stored in step S302 is compared with the code value obtained in step S304 (S305). As a result of the comparison, if the two code values match (S306), it is recognized that the speed hack is not used, and the flow proceeds to step S303. If the codes of the two partial bytes do not match as a result of the comparison in step S305 (S306), it is determined that the speed hack is used, and the game program is notified (S307).

도 3에 도시된 바와 같은 본 발명에 따른 스피드 핵 사용 여부 검출방법을 적용하면, IAT 후킹 방식의 스피드 핵과 API 처리루틴 변경 방식의 스피드 핵의 사용 여부를 모두 검출할 수 있는데, 이 두 가지 방식의 스피드 핵을 검출하는 과정을 설명한다.By applying the speed nucleus detection method according to the present invention as shown in FIG. 3, it is possible to detect whether the speed nucleus of the IAT hooking method and the speed nucleus of the API processing routine change method are used. The process of detecting the speed nucleus is described.

IAT 후킹 방식의 스피드 핵은 IAT에 저장된 타이머 API 처리루틴의 주소값을 스피드 핵 후킹 루틴이 저장된 위치의 주소값으로 변경한다. 따라서, 본 발명에 따른 비교처리루틴이 IAT에 저장된 타이머 API 처리루틴의 주소로부터 코드값을 읽어오면 실제 API 처리루틴의 코드값이 아니라 스피드 핵 후킹 루틴의 코드값이 읽어진다. 즉, 스피드 핵에 의해 후킹된 타이머 API의 경우, 기 저장된 API 처리루틴의 코드값과 스피드 핵 검출시 읽어진 스피드 핵 후킹 루틴의 코드값이 서로 다르기 때문에 타이머 API 후킹 여부를 검출할 수 있다.The speed hack of the IAT hooking method changes the address value of the timer API processing routine stored in the IAT to the address value of the location where the speed hacking routine is stored. Therefore, when the comparison processing routine according to the present invention reads the code value from the address of the timer API processing routine stored in the IAT, the code value of the speed hacking routine is read, not the code value of the actual API processing routine. That is, in the case of the timer API hooked by the speed hack, it is possible to detect whether the timer API is hooked because the code value of the previously stored API processing routine and the code value of the speed hacking routine read out at the time of the speed hack detection are different from each other.

API 처리루틴 변경 방식의 스피드 핵은 API 처리루틴에 스피드 핵 후킹 루틴으로의 점프 명령을 덮어쓴다. 즉, API 처리루틴의 코드값이 변경된다. 본 발명에 따른 비교처리루틴이 IAT에 저장된 타이머 API 처리루틴의 주소로부터 코드값을 읽어오면 스피드 핵에 의해 후킹된 API 처리루틴의 코드값이 읽어진다. 따라서, 스피드 핵에 의해 후킹된 타이머 API의 경우, 원래의 API 처리루틴의 코드값과 스피드 핵 검출시 읽어진 코드값이 서로 다르기 때문에 타이머 API 후킹 여부를 검출할 수 있다.Speed hacks in the API handling routine modification scheme override API handling routines with jump instructions to the speed hacking routine. That is, the code value of the API processing routine is changed. When the comparison processing routine according to the present invention reads the code value from the address of the timer API processing routine stored in the IAT, the code value of the API processing routine hooked by the speed hack is read. Therefore, in the case of the timer API hooked by the speed hack, it is possible to detect whether the timer API is hooked because the code value of the original API processing routine differs from the code value read when the speed hack is detected.

본 발명에 따른 코드비교루틴은 스피드 핵의 후킹 방법에 따라서 반드시 주모듈에 포함되어 주모듈에서 실행되어야 하거나, 별도의 모듈로 존재할 수도 있다.The code comparison routine according to the present invention must be included in the main module and executed in the main module according to the hooking method of the speed hack, or may exist as a separate module.

이에 대해 설명하면 다음과 같다. 프로세스에 로딩되는 모든 모듈들은 별도의 IAT를 가지며, 각 모듈은 자신의 IAT를 사용하여 API 처리루틴의 주소값을 얻는다. IAT 후킹 방식의 스피드 핵은 주모듈의 IAT만을 후킹하는 스피드 핵과, 프로세스에 로딩되는 모든 모듈의 IAT를 후킹하는 스피드 핵이 있다.This is described below. Every module loaded into the process has a separate IAT, and each module uses its own IAT to get the address of the API processing routine. IAT hooking speed hacks include a speed hack that hooks only the IAT of the main module and a speed hack that hooks the IAT of all modules loaded into the process.

스피드 핵이 주모듈의 IAT만을 후킹하면, 주모듈 이외의 다른 모듈은 스피드 핵에 영향을 받지 않기 때문에 이러한 스피드 핵 사용 여부를 검출하려면, 코드비교루틴은 주모듈의 IAT로부터 API 처리루틴의 주소값을 얻어야 하고 이를 위해 주모듈 내에서 실행되어야 한다. 그러기 위해서는 코드비교루틴은 게임 프로그램 실행파일(예컨대, exe 파일)에 삽입되어 있다가 게임 프로그램이 구동될 때 게임 프로세스의 주모듈에 포함되어야 한다. 한편, 스피드 핵이 모든 모듈의 IAT를 후킹하면 프로세스에 로딩된 모든 모듈이 스피드 핵에 영향을 받기 때문에 코드비교루틴이 별도의 모듈로 존재하여 별도의 IAT를 가지더라도 스피드 핵의 영향을 받게 된다. 따라서, 프로세스의 모든 모듈의 IAT를 후킹한 스피드 핵의 사용 여부를 검출할 경우에는 코드비교루틴은 굳이 주모듈에서 실행될 필요는 없으며 별도의 모듈로 존재하여도 된다. 즉, 코드비교루틴은 게임 프로그램의 실행파일(예컨대, exe 파일)에 삽입되어 있다가 프로세스의 주모듈에 포함되어도 되고, 별도의 독립적인파일(예컨대, dll 파일) 형태로 존재하고 있다가 게임 프로세스의 시스템 DLL에 로딩되어도 된다.If the speed hack only hooks the IAT of the main module, other modules other than the main module are not affected by the speed hack, so that the code comparison routine can detect the address value of the API processing routine from the main module's IAT. Must be obtained and executed in the main module. To do this, the code comparison routine should be inserted into a game program executable (eg, an exe file) and included in the main module of the game process when the game program is run. On the other hand, if the speed hack hooks the IAT of all modules, all modules loaded in the process are affected by the speed hack, so that the code comparison routine exists as a separate module, and thus the speed hack is affected even if it has a separate IAT. Therefore, the code comparison routine does not necessarily need to be executed in the main module when detecting whether the speed hack that hooks the IAT of all the modules of the process is present, but may exist as a separate module. That is, the code comparison routine may be inserted into an executable file (for example, an exe file) of a game program and included in a main module of the process, or exist in a separate independent file (for example, a dll file) and then exist in the game process. May be loaded into the system DLL.

API 처리루틴 변경 방식의 스피드 핵은 API 처리루틴의 코드값을 변경하고 IAT는 후킹하지 않는다. 따라서, 코드비교루틴은 주모듈의 IAT를 이용하여 API 처리루틴에 접근하든지 아니면 별도의 IAT를 이용하여 API 처리루틴에 접근하든지, 스피드 핵에 의해 후킹된 API 처리루틴이 호출된다. 즉, API 처리루틴 변경 방식의 스피드 핵의 사용 여부를 검출할 경우, 코드비교루틴은 프로세스의 주모듈에 포함되어도 되고, 별도의 독립적인 파일 형태로 존재하고 있다가 게임 프로세스의 시스템 DLL에 로딩되어도 된다.The speed hack in the API processing routine change method changes the code value of the API processing routine and does not hook the IAT. Therefore, whether the code comparison routine accesses the API processing routine using the IAT of the main module or accesses the API processing routine using a separate IAT, the API processing routine hooked by the speed hack is called. That is, when detecting whether the speed hack using the API processing routine change method is used, the code comparison routine may be included in the main module of the process, or may exist as a separate file and loaded into the system DLL of the game process. do.

정리하면, 주모듈의 IAT만을 후킹한 스피드 핵 사용 여부를 검출하려면 코드비교루틴은 게임 프로세스의 주모듈에서 실행되어야 한다. 모든 모듈의 IAT를 후킹한 스피드 핵 또는 API 처리루틴 변경 방식의 스피드 핵의 사용 여부를 검출하려면 코드비교루틴은 굳이 게임 프로세스의 주모듈에서 실행될 필요는 없으며 별도의 모듈로 실행되어도 된다.In summary, the code comparison routine must be executed in the main module of the game process to detect whether the main module uses a speed hack that hooks only the IAT. The code comparison routine does not need to be executed in the main module of the game process, but may be executed as a separate module to detect whether a speed hack that hooks the IAT of all modules or a speed hack using an API processing routine change method is used.

본 발명의 다른 실시예로서, IAT 후킹 방식의 스피드 핵 사용 여부를 검출하는 방법으로서 주소비교방식이 있다. 이 주소비교방식은 게임 프로세스에 주소비교루틴을 삽입하고, 이 주소비교루틴이 게임 프로세스의 초기 구동시의 API 처리루틴의 주소를 저장한 후 실제 사용되는 API 처리루틴의 주소와 저장된 주소를 비교하여 그 일치 여부에 따라 해당 API 후킹 여부와 스피드 핵 사용 여부를 판단하는방식이다.In another embodiment of the present invention, there is an address comparison method as a method for detecting whether a speed hack is used in the IAT hooking method. This address comparison method inserts an address comparison routine into the game process, saves the address of the API processing routine when the game process is initially started, and compares the address of the API processing routine with the stored address. It is a method of judging whether the API is hooked and whether the speed hack is used.

여기서, 주소비교루틴은, 스피드 핵이 주모듈의 IAT만을 후킹한 경우에는 주모듈 내에서 실행되어야만 하고 모든 모듈의 IAT를 후킹한 경우에는 별도의 모듈로 실행되어도 된다. 그러나, 이 주소비교방식은 API 처리루틴 변경 방식의 스피드 핵 사용 여부를 검출할 수는 없다.Here, the address comparison routine may be executed in the main module when the speed hack hooks only the IAT of the main module, or may be executed as a separate module when the IATs of all the modules are hooked. However, this address comparison method cannot detect whether a speed hack is used by the API processing routine change method.

이상에서 본 발명에 대한 기술 사상을 첨부 도면과 함께 서술하였지만, 이는 본 발명의 가장 양호한 일 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술 분야의 통상의 지식을 가진 자이면 누구나 본 발명의 기술 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.Although the technical spirit of the present invention has been described above with reference to the accompanying drawings, it is intended to exemplarily describe the best embodiment of the present invention, but not to limit the present invention. In addition, it is obvious that any person skilled in the art may make various modifications and imitations without departing from the scope of the technical idea of the present invention.

본 발명은 타이머 API 후킹 여부를 판단하여 최신 스피드 핵 사용 여부를 판단할 수 있기 때문에 스피드 핵에 의해 피해를 볼 수 있는 온라인 게임을 비롯한 다양한 프로그램과 서비스에 적용되어 활용될 수 있다. 또한, 서버에서 스피드 핵 사용 여부를 판단하는 것이 아니라 클라이언트에서 단지 몇 바이트의 코드값 비교를 통해 스피드 핵 사용 여부를 검출하기 때문에 부하가 거의 없으며 빠르고 정확한 검사를 수행할 수 있다.The present invention can determine whether or not to use the latest speed hack by determining whether the timer API hooking can be applied to various programs and services, including online games that can be damaged by the speed hack. In addition, since the server detects whether a speed hack is used by comparing a few bytes of code values, the server does not determine whether the speed hack is used, and there is little load and a fast and accurate inspection can be performed.

아울러, 본 발명을 온라인 게임에 활용하면 게임자들이 모두 동일한 조건 하에서 선의의 경쟁을 할 수 있으므로 온라인 게임 문화를 건전하게 조정해 나가는데 기여할 수 있다.In addition, when the present invention is used in online games, gamers can all compete in good faith under the same conditions, thereby contributing to the healthy adjustment of online game culture.

Claims (6)

프로그램을 실행하는 주 모듈과, 타이머 API(Application Programming Interface)의 처리루틴의 주소를 저장하는 IAT(Import Address Table)를 포함한 프로세스에서,In a process that includes a main module that executes a program, and an import address table (IAT) that stores the address of the processing routine of the timer application programming interface (API), 후킹 여부를 판단하고자 하는 상기 타이머 API의 처리루틴의 원래의 코드값을 저장하는 원코드값저장단계와;An original code value storing step of storing an original code value of a processing routine of the timer API to determine whether to hook; 상기 타이머 API의 후킹 여부 검출이 요청되면, 상기 IAT에 저장된 상기 타이머 API의 처리루틴의 주소가 가리키는 위치의 코드값을 읽는 사용코드값획득단계와;A usage code value obtaining step of reading a code value of a position indicated by an address of a processing routine of the timer API stored in the IAT when a hooking detection of the timer API is requested; 상기 원코드값저장단계에서 저장된 코드값과 상기 사용코드값획득단계에서 읽은 코드값을 비교하는 비교단계와;A comparison step of comparing the code value stored in the original code value storing step with the code value read in the use code value obtaining step; 상기 비교단계의 결과 상기 두 코드값이 일치하지 않으면 상기 타이머 API의 후킹에 의한 스피드 핵 사용으로 판단하고, 상기 두 코드값이 일치하면 상기 타이머 API의 후킹이 아닌 것으로 판단하는 판단단계를 포함한 것을 특징으로 하는 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법.And if the two code values do not match as a result of the comparing step, determining that the speed hack is used by the hooking of the timer API, and if the two code values match, determining that the hook code is not hooking of the timer API. Speed hack detection method using a timer API hooking determination method. 제 1 항에 있어서, 상기 원코드값저장단계는 상기 타이머 API의 처리루틴의 원래의 코드값 중 첫 부분의 일부 코드값을 저장하고, 상기 사용코드값획득단계는 상기 타이머 API의 처리루틴의 주소로부터 첫 부분의 일부 코드값을 읽는 것을 특징으로 하는 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법.The method of claim 1, wherein the storing of the original code value stores a partial code value of a first portion of an original code value of a processing routine of the timer API, and the acquiring use code value is an address of a processing routine of the timer API. Speed hack detection method using a timer API hooking determination method, characterized in that the first part of the code value is read from. 제 1 항에 있어서, 상기 원코드값저장단계 내지 비교단계는 상기 프로세스의 주모듈 내에서 실행되는 것을 특징으로 하는 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법.2. The method of claim 1, wherein the storing of the original code value and the comparing step are performed in a main module of the process. 제 1 항에 있어서, 상기 판단단계는,The method of claim 1, wherein the determining step, 상기 두 코드값이 일치하지 않고 상기 두 코드값의 주소값이 일치하지 않으면, 상기 타이머 API의 후킹에 의한 스피드 핵 중 IAT 후킹 방식의 스피드 핵 사용으로 판단하는 것을 특징으로 하는 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법.If the two code values do not match and the address values of the two code values do not coincide, the timer API hooking determination method is determined as using the speed hack of the IAT hooking method among the speed hacks by the hooking of the timer API. Method for detecting the use of speed hack by 제 1 항에 있어서, 상기 판단단계는,The method of claim 1, wherein the determining step, 상기 두 코드값이 일치하지 않고 상기 두 코드값의 주소값이 일치하면, 상기 타이머 API의 후킹에 의한 스피드 핵 중 API 처리루틴 변경 방식의 스피드 핵 사용으로 판단하는 것을 특징으로 하는 타이머 API 후킹 여부 판단방식에 의한 스피드 핵 사용 여부 검출방법.If the two code values do not match and the address values of the two code values match, it is determined whether the timer API hooking is determined by using a speed hack using an API processing routine change method among speed hacks caused by hooking of the timer API. Speed nucleus detection method by the method. 프로그램을 실행하는 주 모듈과, API(Application Programming Interface)의 처리루틴의 주소를 저장하는 IAT(Import Address Table)를 포함한 프로세스에, 스피드 핵 사용 여부 검출방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 있어서,A computer that records a program for executing a speed hack detection method in a process including a main module that executes a program and an import address table (IAT) that stores an address of a processing routine of an application programming interface (API). In a recording medium, 상기 스피드 핵 사용 여부 검출방법은, 후킹 여부를 판단하고자 하는 상기 타이머 API의 처리루틴의 원래의 코드값을 저장하는 원코드값저장단계와;The speed hack detection method includes: an original code value storing step of storing an original code value of a processing routine of the timer API for determining whether to hook or not; 상기 타이머 API의 후킹 여부 검출이 요청되면, 상기 IAT에 저장된 상기 타이머 API의 처리루틴의 주소가 가리키는 위치의 코드값을 읽는 사용코드값획득단계와;A usage code value obtaining step of reading a code value of a position indicated by an address of a processing routine of the timer API stored in the IAT when a hooking detection of the timer API is requested; 상기 원코드값저장단계에서 저장된 코드값과 상기 사용코드값획득단계에서 읽은 코드값을 비교하는 비교단계와;A comparison step of comparing the code value stored in the original code value storing step with the code value read in the use code value obtaining step; 상기 비교단계의 결과 상기 두 코드값이 일치하지 않으면 상기 타이머 API의 후킹에 의한 스피드 핵 사용으로 판단하고, 상기 두 코드값이 일치하면 상기 타이머 API의 후킹이 아닌 것으로 판단하는 판단단계를 포함한 스피드 핵 사용 여부 검출방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.If the two code values do not match as a result of the comparison step, the speed hack is determined to use the speed hacking by the hooking of the timer API, and if the two code values match, the speed hack including a determination step of determining that it is not hooking of the timer API A computer-readable recording medium having recorded thereon a program for executing a detection method.
KR10-2003-0088654A 2003-12-08 2003-12-08 Method of detecting whether speed hack is in use KR100457405B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0088654A KR100457405B1 (en) 2003-12-08 2003-12-08 Method of detecting whether speed hack is in use

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0088654A KR100457405B1 (en) 2003-12-08 2003-12-08 Method of detecting whether speed hack is in use

Publications (1)

Publication Number Publication Date
KR100457405B1 true KR100457405B1 (en) 2004-11-16

Family

ID=49516290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0088654A KR100457405B1 (en) 2003-12-08 2003-12-08 Method of detecting whether speed hack is in use

Country Status (1)

Country Link
KR (1) KR100457405B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100653545B1 (en) 2004-11-29 2006-12-05 주식회사 안철수연구소 Method of sensing time modification of internal time by a computer program
WO2007037640A1 (en) * 2005-09-28 2007-04-05 Ahn Lab, Inc. Method for detecting modification of internal time in computer system
WO2013103233A1 (en) * 2012-01-02 2013-07-11 (주)네오위즈게임즈 Method of preventing memory tampering, and client terminal
KR101335326B1 (en) * 2011-12-30 2013-12-02 (주)네오위즈게임즈 Client Apparatus, Watching Server, and Method for Preventing Falsification of Watching Area
KR101341328B1 (en) 2012-12-18 2013-12-13 주식회사 잉카인터넷 User definition api function creation
KR101900190B1 (en) 2017-03-21 2018-09-18 순천향대학교 산학협력단 Apparatus and method for detecting iat hooking

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100653545B1 (en) 2004-11-29 2006-12-05 주식회사 안철수연구소 Method of sensing time modification of internal time by a computer program
WO2007037640A1 (en) * 2005-09-28 2007-04-05 Ahn Lab, Inc. Method for detecting modification of internal time in computer system
KR101335326B1 (en) * 2011-12-30 2013-12-02 (주)네오위즈게임즈 Client Apparatus, Watching Server, and Method for Preventing Falsification of Watching Area
WO2013103233A1 (en) * 2012-01-02 2013-07-11 (주)네오위즈게임즈 Method of preventing memory tampering, and client terminal
KR101341328B1 (en) 2012-12-18 2013-12-13 주식회사 잉카인터넷 User definition api function creation
KR101900190B1 (en) 2017-03-21 2018-09-18 순천향대학교 산학협력단 Apparatus and method for detecting iat hooking

Similar Documents

Publication Publication Date Title
RU2698776C2 (en) Method of maintaining database and corresponding server
CN103886252B (en) Software Code Malicious Selection Evaluation Executed In Trusted Process Address Space
US9223964B2 (en) Detecting JAVA sandbox escaping attacks based on JAVA bytecode instrumentation and JAVA method hooking
US7627898B2 (en) Method and system for detecting infection of an operating system
US20090133125A1 (en) Method and apparatus for malware detection
KR100681696B1 (en) Method for preventing from inventing data of memory in a computer application program
Smith et al. Browser history {re: visited}
JP2018041438A5 (en)
US20120079594A1 (en) Malware auto-analysis system and method using kernel callback mechanism
US8307439B2 (en) Add-in card based cheat detection platform for online applications
JP2018524756A (en) System and method for tracking malicious behavior across multiple software entities
US8561178B2 (en) Chipset based cheat detection platform for online applications
CN108388793A (en) A kind of virtual machine escape means of defence based on Initiative Defense
KR100457405B1 (en) Method of detecting whether speed hack is in use
Feng et al. Stealth measurements for cheat detection in on-line games
KR101588542B1 (en) Malware risk scanner
KR20120014673A (en) Method for dectecting falsification of process by inserting disguised dll
US8407523B2 (en) Method for protecting software programs
Brandão et al. Employment of secure enclaves in cheat detection hardening
Kaiser et al. Fides: Remote anomaly-based cheat detection using client emulation
KR101013419B1 (en) Guarding apparatus and method for system
US8388441B2 (en) Method for displaying information about use of hack tool in online game
KR101421633B1 (en) Speed Hack Detection System and Method
CN114462041A (en) Dynamic trusted access control method and system based on dual-system architecture
KR100731550B1 (en) Method for diagnosing malicious computer program

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20120831

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140915

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 16