KR20120045233A - 온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체 Download PDF

Info

Publication number
KR20120045233A
KR20120045233A KR1020100106648A KR20100106648A KR20120045233A KR 20120045233 A KR20120045233 A KR 20120045233A KR 1020100106648 A KR1020100106648 A KR 1020100106648A KR 20100106648 A KR20100106648 A KR 20100106648A KR 20120045233 A KR20120045233 A KR 20120045233A
Authority
KR
South Korea
Prior art keywords
module
function
called
game
malicious
Prior art date
Application number
KR1020100106648A
Other languages
English (en)
Other versions
KR101741026B1 (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 KR1020100106648A priority Critical patent/KR101741026B1/ko
Publication of KR20120045233A publication Critical patent/KR20120045233A/ko
Application granted granted Critical
Publication of KR101741026B1 publication Critical patent/KR101741026B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 사용자 컴퓨터의 메모리에 로딩되어 정상적인 게임 함수를 호출하면서 비정상적으로 온라인 게임을 진행하는 악성모듈을 탐지할 수 있도록 한다. 특히, 악성모듈의 탐지는 게임 함수가 호출될 때 함께 호출되는 감시용 함수가 수행하도록 구성된다. 감시용 함수는 온라인 게임 프로세스에 로딩된 모듈의 리스트와 각 모듈이 메모리에 로딩된 어드레스를 조사하고, 콜 스택에서 피호출 함수의 리턴 어드레스를 확인하여 게임 함수를 호출한 모듈을 찾은 후 해당 모듈이 정상적인 모듈인지의 여부를 판별한다. 특정 게임 함수가 호출되었을 때만 악성모듈의 존재 여부에 관한 조사가 이루어지기 때문에 메모리에 로딩된 모든 모듈을 주기적으로 조사할 필요가 없어 효율적인 악성모듈 탐지가 가능하고, 악성모듈이 온라인 게임과 관련된 것인지의 여부를 정확하게 판별할 수 있다.

Description

온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체{ Method and Computer Readable Recording Medium for Detecting Malicious Module of On-Line Game }
본 발명은 온라인 게임에 관한 것으로서, 특히 비정상적으로 온라인 게임을 이용하기 위해 사용자 컴퓨터에서 실행되는 악성모듈을 콜 스택(Call Stack)을 이용하여 정확하게 탐지할 수 있도록 한다.
통신망과 컴퓨터 관련 기술이 발전하면서 다양한 종류의 온라인 게임 서비스가 제공되고 있는데, 게임 내 재화의 가치가 높아지면서 비정상적인 방법으로 온라인 게임을 이용하는 사례가 늘고 있다.
게임 내 재화를 획득하기 위하여 온라인 게임을 비정상적으로 이용하는 방법은 다양하다.
예를 들자면, USB 디바이스를 이용하여 마치 사용자가 키보드나 마우스를 통해 어떤 명령을 입력하는 것처럼 위장하는 하드웨어적 처리 방법, 특정 기능을 수행하는 프로그램(악성모듈)을 메모리의 온라인 게임 프로세스에 로딩시켜 게임 함수를 호출하는 소프트웨어적 처리 방법을 들 수 있다.
후자의 경우 로봇 프로그램(불법 프로그램이나 'BOT' 등으로도 불린다)은 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 악성모듈을 주입(Injection) 시키는데, 일반적으로 악성모듈은 DLL(Dynamic Link Library)로 만들어져 온라인 게임 프로세스에 주입된다.
온라인 게임 프로세스에 주입된 악성모듈은 게임 클라이언트가 제공하는 정상적인 함수를 호출하여 게임을 진행하고, 게임 내에서 사냥이나 채집 등을 스스로 수행하여 게임 내 재화를 획득한다.
이와 같이 악성모듈에 의해 게임이 진행되면, 정상적으로 게임을 이용하는 사용자들이 게임 내에서 좋은 게임 아이템을 얻을 기회가 부당하게 박탈되고, 게임 진행을 방해 받기 때문에 여러 가지 피해가 발생한다.
이는 온라인 게임에 대한 흥미를 감소시켜 게임의 이용을 피하게 하고 민원을 발생시키는 주요 요인이 될 수 있다.
이에 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 사용자 컴퓨터의 메모리에 로딩되어 정상적인 게임 함수를 호출하면서 비정상적으로 온라인 게임을 진행하는 악성모듈을 효율적으로 탐지할 수 있도록 해 주는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 온라인 게임에 있어서의 악성모듈 탐지 방법에 관한 일 실시예는, 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계; 상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계; 콜 스택(Call Stack)을 조사하여 피호출 함수(피호출 함수는 게임 클라이언트에서 제공하는 정상적인 함수이다)의 리턴 어드레스(Return Address)를 확인하는 단계; 및 상기 피호출 함수의 리턴 어드레스가 지시하는 모듈을 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 단계를 포함하여 이루어진다.
이때 상기 각 단계는 상기 피호출 함수(게임함수)가 호출될 때 함께 호출되는 감시용 함수가 수행한다.
상기 감시용 함수가 확인하는 모듈은 DLL(Dynamic Link Library) 형식의 모듈을 포함할 수 있다.
상기 감시용 함수는 상기 피호출 함수의 리턴 어드레스가 지시하는 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 중 하나 이상의 정보를 이용하여 해당 모듈이 정상적인 모듈인지의 여부를 판별할 수 있다.
상기 감시용 함수는 상기 판별 결과 해당 모듈이 비정상적인 모듈인 경우 이를 알리는 소정의 정보를 통신망을 통해 특정 서버로 전송할 수 있다.
본 발명에 따른 온라인 게임에 있어서의 악성모듈 탐지 방법에 관한 또 다른 실시예는, 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계; 상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계; 콜 스택(Call Stack)을 조사하여 피호출 함수(피호출 함수는 게임 클라이언트에서 제공하는 정상적인 함수이다)의 리턴 어드레스(Return Address)를 확인하는 단계; 및 상기 리턴 어드레스가 지시하는 모듈의 정보를 통신망을 통해 특정 서버로 전송하는 단계를 포함하여 이루어진다.
이때 상기 각 단계는 상기 피호출 함수(게임함수)가 호출될 때 함께 호출되는 감시용 함수가 수행한다.
상기 감시용 함수가 상기 특정 서버로 전송하는 정보는 해당 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 중 하나 이상의 정보를 포함할 수 있다.
상기 특정 서버는 상기 통신망을 통해 수신된 모듈 정보를 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별할 수 있다.
본 발명에 따르면, 온라인 게임을 비정상적으로 이용하는 악성모듈이 호출할 수 있는 정상적인 게임 함수에 감시용 함수를 연결시켜 놓음으로써, 게임 함수가 호출되면 감시용 함수도 함께 호출되도록 한다.
그리고 감시용 함수는 피호출 함수인 게임 함수의 리턴 어드레스를 통해 게임 함수를 호출한 모듈을 확인하고 해당 모듈이 정상적인 모듈인지를 판별한다.
특정 게임 함수가 호출되었을 때만 악성모듈의 존재 여부에 관한 조사가 이루어지기 때문에 메모리에 로딩된 모든 모듈을 주기적으로 조사할 필요가 없어 효율적인 악성모듈 탐지가 가능해 진다.
또한, 사용자 컴퓨터의 악성모듈이 온라인 게임과 관련된 것인지의 여부를 정확하게 판별해 낼 수 있다.
도 1은 온라인 게임을 서비스하는 시스템의 개요,
도 2는 사용자 컴퓨터의 구체적인 예,
도 3은 본 발명에 따른 악성모듈 탐지 방법의 일 실시예,
도 4는 게임 함수의 호출에 따라 감시용 함수가 호출되는 것을 설명하는 예,
도 5는 콜 스택에 관한 예,
도 6은 악성모듈에 관한 정보를 게임 서버로 전송하는 실시예,
도 7은 본 발명에 따른 악성모듈 탐지 방법의 또 다른 실시예,
도 8은 본 발명에 따라 악성모듈 탐지가 이루어지는 과정을 설명하기 위한 메모리 상태의 예이다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
도 1을 참조하자면, 온라인 게임 서비스는 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(15)을 통해 제공되며, 각 사용자 컴퓨터(10)에 설치되는 게임 클라이언트(11)는 통신망(15)을 통해 게임 서버(17)와 서로 통신하면서 온라인 게임을 진행한다.
온라인 게임의 종류는 다양할 수 있으며, 구체적인 예로는 여러 사용자가 동시 다발적으로 참여할 수 있는 MMORPG(Massively Multi-player Online Role Playing Game) 유형의 게임을 들 수 있다.
각 사용자가 온라인 게임을 이용하기 위해 사용하는 사용자 컴퓨터(10)는 데스크 탑 컴퓨터나 노트북 컴퓨터와 같은 개인용 컴퓨터(PC: Personal Computer)뿐 아니라 휴대폰이나 스마트폰 등 통신망을 통해 온라인 게임 서비스를 이용할 수 있는 성능을 갖는 임의의 기기일 수 있다.
사용자 컴퓨터(10)에는 사용자가 온라인 게임을 이용할 수 있도록 해주는 게임 클라이언트(11)가 설치된다.
게임 클라이언트(11)는 통신망(15)을 통해 다운로드되어 설치될 수 있고 최신 버젼으로 유지되며, 게임 관련 공지사항의 디스플레이, 게임 화면 처리, 사운드 효과 처리, 게임을 위한 각종 사용자 인터페이스의 제공 등 사용자측에서 수행되어야 할 다양한 역할을 담당한다.
게임 클라이언트(10)는 기본적으로 게임 서버(17)와 통신하면서 온라인 게임을 진행시키는 역할을 수행하며, 게임 클라이언트(11)와 게임 서버(17)의 역할 분담은 필요에 따라 다양하게 구성될 수 있다.
도 2는 사용자 컴퓨터(10)의 구체적인 예를 보인 것이다.
각 요소들은 다양한 구조의 시스템 버스(10-1)를 통해 서로 연결되고, 중앙처리장치(CPU: Central Processing Unit,10-2)의 총괄적인 제어하에 서로 데이터를 주고 받으면서 그 역할을 수행한다.
메모리(10-3)는 램(RAM: Random Access Memory)으로서, 중앙처리장치(10-2)가 즉시 액세스할 컴퓨터 프로그램이나 데이터를 저장한다.
입력장치 인터페이스(10-4)는 입력장치(10-5)와 연결되어 사용자가 사용자 컴퓨터(10)로 각종 명령이나 정보를 입력할 수 있도록 한다. 사용자 컴퓨터(10)는 입력장치 인터페이스(10-4)를 통해 키보드, 마우스, 키패드, 터치 스크린 등 다양한 종류의 입력장치(10-5)와 연결될 수 있다.
디스플레이 어댑터(10-6)는 다양한 디스플레이 장치(10-7)를 통해 출력할 비디오 정보를 처리하며, 사운드 카드(10-8)는 오디오 정보를 처리하여 스피커(10-9)를 통해 출력한다.
네트워크 인터페이스(10-11)는 사용자 컴퓨터(10)가 유선 인터넷망이나 무선 인터넷망 등 각종 통신망(15)과 연결되어 통신할 수 있도록 한다.
저장매체(10-10)는 비휘발성의 성질을 가지며, 사용자 컴퓨터(10)에 의해 액세스될 수 있는 내장형, 외장형, 분리형, 비분리형의 다양한 형태를 가질 수 있다.
저장매체(10-10)에는 마이크로소프트사의 윈도우즈(Windows)와 같은 운영체제(OS: Operating System,14), 게임 클라이언트(11) 등의 각종 컴퓨터 프로그램이나 데이터가 설치되어 유지된다.
특히 저장매체(10-10)에는 프로그래밍된 내용에 따라 마치 자신이 사용자인 것처럼 위장하여 온라인 게임을 비정상적으로 진행하는 로봇 프로그램(12)이 설치될 수 있다.
사용자가 게임 클라이언트(11)를 실행시키면, 게임 클라이언트(11)가 메모리(10-3)에 로딩되어 온라인 게임 프로세스가 생성되고, 중앙처리장치(10-2)는 해당 코드를 순차적으로 처리한다.
또한, 온라인 게임을 비정상적으로 이용하는 경우에는 로봇 프로그램(12)도 실행된다. 로봇 프로그램(12)은 메모리(10-3)의 온라인 게임 프로세스에 악성모듈을 주입(Injection) 시키고, 악성모듈은 사냥이나 채집 등 게임 내 재화를 얻을 수 있는 게임 함수를 호출하여 게임을 진행하게 된다.
로봇 프로그램(12)이 온라인 게임 프로세스에 주입시키는 악성모듈은 일반적으로 DLL(Dynamic Link Library)로 만들어진다.
이하에서는 설명의 편의를 위하여 로봇 프로그램(12)에 의해 온라인 게임 프로세스에 주입된 악성모듈이 호출하는 게임 함수를 '감시 대상 함수'라고 부르기로 한다. 감시 대상 함수는 악성모듈에 의해 호출되더라도 정상적인 게임 함수이다.
도 3을 참조하여, 본 발명에 따른 온라인 게임에 있어서의 악성모듈 탐지 방법에 관한 일 실시예를 설명하기로 한다.
먼저 온라인 게임 프로세스의 어떤 모듈에 의해 감시 대상 함수가 호출됨에 따라 감시용 함수도 함께 호출된다(S211).
여기서 감시용 함수란 본 발명에 따라 악성모듈을 감시하기 위하여 사용되는 프로그램 코드를 말하며, 감시 대상 함수와 연결되어 감시용 함수가 호출될 때 함께 호출되도록 구성된다.
도 4를 참조하자면, 로봇 프로그램(12)이 메모리(10-3)에 생성되어 있는 온라인 게임 프로세스(40)에 주입한 악성모듈(41)은 감시 대상 함수(43)를 호출하여 게임을 진행한다. 이때 감시 대상 함수(43)는 감시용 함수(45)와 연결되어 있으며, 악성모듈(41)에 의해 호출된 피호출 함수인 감시 대상 함수(43)는 감시용 함수를 호출한다. 그러면, 감시 대상 함수(45)가 단계 S212 내지 S215를 수행함으로써 감시 대상 함수(43)를 호출한 모듈이 악성모듈인지의 여부를 판별하게 된다.
단계 S211에서 호출된 감시용 함수는 온라인 게임 프로세스에 로딩된 각 모듈의 리스트를 확인한다(S212).
단계 S212에서 감시용 함수가 모듈 리스트를 얻는 방법은 다양하게 구성될 수 있다. 구체적인 예로서 사용자 컴퓨터(10)의 운영체제가 마이크로소프트사의 윈도우즈(Windows)인 경우 윈도우즈 API(Application Program Interface) 함수를 이용하여 모듈 리스트를 얻을 수 있다.
또한, 감시용 함수는 단계 S212에서 확인된 모듈 리스트의 각 모듈이 메모리(10-3)에 로딩된 어드레스를 조사한다(S213).
그리고 감시용 함수는 콜 스택(Call Stack)을 조사하여, 단계 S211에서 호출된 감시 대상 함수의 리턴 어드레스(Return Address)를 확인한다(S214).
콜 스택은 함수 사이의 호출 관계에 관한 정보를 동적으로 저장하는 메모리 영역이며, 특히 각 서브 루틴이 종료되었을 때 복귀할 메모리 주소(리턴 어드레스)를 저장한다.
도 5는 콜 스택의 예를 도시한 것으로서, 각 서브 루틴에 대응하는 파라미터(PARAM: Parameter), 리턴 어드레스, 지역 변수(LOCAL: Local Variable) 등이 저장된다. 'PARAM'은 함수의 파라미터에 관한 정보를 저장하는 영역이고, 리턴 어드레스는 피호출 함수가 종료한 후 복귀할 주소를 저장하는 영역이며, 'LOCAL'은 지역변수를 저장하는 영역이다.
이제 감시용 함수는 단계 S214에서 확인된 리턴 어드레스를 기초로 감시 대상 함수를 호출한 모듈을 찾을 수 있고, 해당 모듈의 정보를 분석하여 악성모듈인지의 여부를 판별한다(S215).
단계 S215에서 감시 대상 함수를 호출한 모듈이 정상적인 모듈인지 아니면 악성모듈인지를 판별하는 방법은 다양하게 구성될 수 있다.
구체적인 예를 들자면, 해당 모듈의 파일명, 해당 모듈의 파일 크기, 해당 모듈의 해쉬(Hash) 값 등을 통해 판별할 수 있다. 즉, 해당 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 등이 감시용 함수가 알고 있는 정상 모듈의 정보와 일치하지 않으면 악성모듈로 판단할 수 있다.
뿐만 아니라 메모리(10-3)에 존재하는 해당 모듈의 코드를 정상적인 모듈의 코드와 비교하여 해당 모듈이 악성모듈인지의 여부를 판별할 수도 있다.
도 6을 참조하자면, 감시용 함수는 단계 S215에서의 판별 결과 해당 모듈이 악성모듈인 경우(S216-1), 해당 모듈에 관한 정보를 통신망(15)을 통해 특정 서버로 전송할 수 있다(S216-2).
여기서 특정 서버는 게임 서버(17)일 수도 있고, 악성모듈 감시 기능을 수행하는 별도의 서버(도시되지 않음)일 수도 있다. 그러면, 해당 서버는 비정상적으로 온라인 게임을 이용하는 사용자에 대한 조치를 취할 수 있다.
단계 S216-2에서 특정 서버로 전송할 정보는 필요에 따라 다양할 수 있다. 예컨대 해당 모듈의 파일명, 해당 모듈의 파일 크기, 해당 모듈이 로딩된 메모리 블럭의 내용 등을 전송할 수 있다.
도 7을 참조하여, 본 발명에 따른 온라인 게임에 있어서의 악성모듈 탐지 방법에 관한 또 다른 실시예를 설명하기로 한다.
도 7에서 단계 S231 내지 S234는 도 3을 참조하여 설명한 단계 S211 내지 S214와 동일하므로 중복 설명은 생략하기로 한다.
그리고 감시용 함수는 단계 S234에서 확인된 리턴 어드레스를 기초로 감시 대상 함수를 호출한 모듈을 찾을 수 있고, 해당 모듈에 관한 정보를 통신망을 통해 특정 서버로 전송한다(S235).
단계 S235에서 특정 서버로 전송할 정보는 필요에 따라 다양할 수 있다.
예컨대 해당 모듈의 파일명, 해당 모듈의 파일 크기, 해당 모듈의 해쉬(Hash) 값, 해당 모듈이 로딩된 메모리 블럭의 내용 등을 전송할 수 있다.
그러면, 특정 서버는 통신망을 통해 수신된 정보를 분석하여 해당 모듈이 정상적인 모듈인지 아니면 악성모듈인지의 여부를 판별한다.
구체적인 예를 들자면, 해당 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 등이 미리 알고 있는 정보와 일치하는지의 여부를 확인하거나, 메모리 블럭의 코드가 정상적인 모듈의 코드와 서로 일치하는지를 비교함으로써 해당 모듈이 악성모듈인지의 여부를 판별할 수 있다.
여기서 특정 서버는 게임 서버(17)일 수도 있고, 악성모듈 감시 기능을 수행하는 별도의 서버(도시되지 않음)일 수도 있다.
한편, 도 3을 참조하여 설명한 실시예의 온라인 게임에 있어서의 악성모듈 탐지 방법은 컴퓨터 판독 가능한 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현할 수 있다.
또한, 도 7을 참조하여 설명한 실시예의 온라인 게임에 있어서의 악성모듈 탐지 방법도 컴퓨터 판독 가능한 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체는 컴퓨터에 의해 읽혀질 수 있는 정보가 저장되는 모든 종류의 기록장치를 포함한다.
예를 들자면, ROM(Read Only Memory), RAM, CD-ROM, 자기 테이프, 플로피 디스크, 하드 디스크 드라이브(HDD), 광 데이터 저장 장치, USB(Universal Serial Bus) 메모리, 메모리 카드 등을 포함할 수 있다. 뿐만 아니라 통신망을 통해 전송되는 형태로 구현되는 것도 포함한다.
도 8에 도시한 메모리(10-3)의 예를 참조하여, 본 발명에 따라 악성모듈을 탐지하는 구체적인 과정을 설명하기로 한다.
메모리(10-3)에는 온라인 게임 프로세스를 실행하는 Kernel32.dll(81), abc.dll(83), game.exe(84)가 로딩되어 있으며, 온라인 게임 프로세스가 갖는 쓰레드(Thread) 수에 따라 스택영역(82)이 할당되어 있다.
만일 어떤 모듈이 게임 함수(감시 대상 함수)를 호출하였다면, 이 게임 함수가 호출됨에 따라 감시용 함수도 함께 호출된다.
감시용 함수는 온라인 게임 프로세스가 갖는 모든 모듈을 포함하는 리스트, 예컨대 Kernel32.dll(81), abc.dll(83), game.exe(84)가 포함되어 있는 리스트를 얻는다. 이때 감시용 함수는 사용자 컴퓨터의 운영체제(OS)가 마이크로소프트사의 윈도우즈(Windows)인 경우 윈도우즈 API 함수를 이용하여 온라인 게임 프로세스가 사용하는 모듈의 리스트를 얻을 수 있다.
또한, 감시용 함수는 Kernel32.dll(81), abc.dll(83), game.exe(84)가 메모리(10-3)에 로딩된 주소를 조사한다.
그리고 스택영역(82)에서 피호출 함수(감시 대상 함수)의 리턴 어드레스를 조사하여, 감시 대상 함수를 호출한 모듈이 어느 것인지를 확인한다.
예로서, 리턴 어드레스가 0x00400000~0x00420000'의 사이에 있다면, 감시 대상 함수를 호출한 모듈은 'abc.dll'이다.
이제 감시용 함수는 'abc.dll' 모듈의 파일 이름, 파일 크기, 해쉬 값 등이 미리 알려진 정상 모듈의 그 것과 일치하는지를 확인하여 'abc.dll' 모듈이 악성모듈인지의 여부를 확인하거나, 또는 abc.dll에 관한 정보를 특정 서버로 전송한다.
상술한 실시예는 본 발명의 이해를 돕기 위한 것이며, 본 발명은 상술한 실시예에 한정되지 않고 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당업자에 의해 다양하게 변형하여 실시할 수 있는 것임은 물론이다.
10: 사용자 컴퓨터 11: 게임 클라이언트
12: 로봇 프로그램 15: 통신망
17: 게임 서버 10-2: 중앙처리장치(CPU)
10-3: 메모리 10-10: 저장매체
14: 운영체제(OS) 40: 온라인 게임 프로세스
41: 악성모듈 43: 감시 대상 함수
45: 감시용 함수

Claims (10)

  1. 사용자 컴퓨터에서 실행되어 온라인 게임을 비정상적으로 진행하는 악성모듈을 탐지하기 위한 방법으로서,
    상기 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계;
    상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계;
    콜 스택(Call Stack)을 조사하여 피호출 함수 -상기 피호출 함수는 정상적인 게임 함수임-의 리턴 어드레스(Return Address)를 확인하는 단계; 및
    상기 피호출 함수의 리턴 어드레스가 지시하는 모듈을 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 단계를 포함하고,
    상기 각 단계는 상기 피호출 함수가 호출될 때 함께 호출되는 감시용 함수가 수행하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.
  2. 제 1 항에 있어서,
    상기 감시용 함수가 확인하는 모듈은 DLL(Dynamic Link Library)을 포함하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.
  3. 제 1 항에 있어서,
    상기 감시용 함수는 상기 피호출 함수의 리턴 어드레스가 지시하는 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 중 하나 이상의 정보를 이용하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.
  4. 제 1 항에 있어서,
    상기 감시용 함수는 상기 판별 결과 해당 모듈이 비정상적인 모듈인 경우 이를 알리는 소정의 정보를 통신망을 통해 특정 서버로 전송하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.
  5. 사용자 컴퓨터에서 실행되어 온라인 게임을 비정상적으로 진행하는 악성모듈을 탐지하기 위한 방법으로서,
    상기 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계;
    상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계;
    콜 스택(Call Stack)을 조사하여 피호출 함수 -상기 피호출 함수는 정상적인 게임 함수임-의 리턴 어드레스(Return Address)를 확인하는 단계; 및
    상기 리턴 어드레스가 지시하는 모듈의 정보를 통신망을 통해 특정 서버로 전송하는 단계를 포함하고,
    상기 각 단계는 상기 피호출 함수가 호출될 때 함께 호출되는 감시용 함수가 수행하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.
  6. 제 5 항에 있어서,
    상기 감시용 함수가 확인하는 모듈은 DLL(Dynamic Link Library)을 포함하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.
  7. 제 5 항에 있어서,
    상기 감시용 함수가 상기 특정 서버로 전송하는 정보는 해당 모듈의 파일명, 파일 크기, 해쉬(Hash) 값 중 하나 이상의 정보를 포함하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.
  8. 제 5 항에 있어서,
    상기 특정 서버는 상기 통신망을 통해 수신된 모듈 정보를 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 것을 특징으로 하는 온라인 게임에 있어서의 악성모듈 탐지 방법.
  9. 온라인 게임이 실행되는 사용자 컴퓨터에서 게임 클라이언트가 제공하는 정상적인 게임 함수가 호출됨에 따라 함께 호출되어,
    상기 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계;
    상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계;
    콜 스택을 조사하여 상기 호출된 피호출 함수의 리턴 어드레스를 확인하는 단계; 및
    상기 피호출 함수의 리턴 어드레스가 지시하는 모듈을 분석하여 해당 모듈이 정상적인 모듈인지의 여부를 판별하는 단계를 순차적으로 실행할 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  10. 온라인 게임이 실행되는 사용자 컴퓨터에서 게임 클라이언트가 제공하는 정상적인 게임 함수가 호출됨에 따라 함께 호출되어,
    상기 사용자 컴퓨터에서 실행중인 온라인 게임 프로세스에 로딩된 모듈의 리스트를 확인하는 단계;
    상기 리스트의 각 모듈이 메모리에 로딩된 어드레스를 조사하는 단계;
    콜 스택을 조사하여 상기 호출된 피호출 함수의 리턴 어드레스를 확인하는 단계; 및
    상기 리턴 어드레스가 지시하는 모듈의 정보를 통신망을 통해 특정 서버로 전송하는 단계를 순차적으로 실행할 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020100106648A 2010-10-29 2010-10-29 온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체 KR101741026B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100106648A KR101741026B1 (ko) 2010-10-29 2010-10-29 온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100106648A KR101741026B1 (ko) 2010-10-29 2010-10-29 온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
KR20120045233A true KR20120045233A (ko) 2012-05-09
KR101741026B1 KR101741026B1 (ko) 2017-05-30

Family

ID=46264735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100106648A KR101741026B1 (ko) 2010-10-29 2010-10-29 온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체

Country Status (1)

Country Link
KR (1) KR101741026B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014088276A1 (ko) * 2012-12-04 2014-06-12 주식회사 안랩 비정상 경로 호출 감지 장치 및 비정상 경로 호출 감지 방법
KR20160134308A (ko) * 2015-05-15 2016-11-23 주식회사 엔씨소프트 온라인 게임에서 비정상적인 함수 호출을 탐지하는 방법 및 프로그램

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330926A (ja) * 2005-05-24 2006-12-07 Mitsubishi Electric Corp ウィルス感染検知装置
JP2009199529A (ja) * 2008-02-25 2009-09-03 Fourteenforty Research Institute Inc 情報機器、プログラム及び不正なプログラムコードの実行防止方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014088276A1 (ko) * 2012-12-04 2014-06-12 주식회사 안랩 비정상 경로 호출 감지 장치 및 비정상 경로 호출 감지 방법
KR20160134308A (ko) * 2015-05-15 2016-11-23 주식회사 엔씨소프트 온라인 게임에서 비정상적인 함수 호출을 탐지하는 방법 및 프로그램

Also Published As

Publication number Publication date
KR101741026B1 (ko) 2017-05-30

Similar Documents

Publication Publication Date Title
US11687653B2 (en) Methods and apparatus for identifying and removing malicious applications
US8875294B2 (en) System and method for cloud-based detection of computer malware
US8756694B2 (en) Prevention of exploitation of update rollback
US9652617B1 (en) Analyzing security of applications
CN105793860A (zh) 反调试方法
US20090143144A1 (en) Add-in card based cheat detection platform for online applications
KR101915802B1 (ko) 매크로 프로그램 탐지 방법 및 장치
US20090144825A1 (en) Chipset based cheat detection platform for online applications
US20080182659A1 (en) In-play detection of altered game data
CN106203092B (zh) 一种拦截恶意程序关机的方法、装置及电子设备
CN111298434B (zh) 业务处理方法、装置、设备及存储介质
CN114741695A (zh) 一种恶意代码监控方法、装置、电子设备及存储介质
US10275595B2 (en) System and method for characterizing malware
KR101237161B1 (ko) 온라인 게임의 비공개 봇 검출방법
KR101741026B1 (ko) 온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체
CN110611675A (zh) 向量级检测规则生成方法、装置、电子设备及存储介质
CN113779576A (zh) 一种可执行文件感染病毒的识别方法、装置及电子设备
KR20120045234A (ko) 온라인 게임에 있어서의 악성모듈 탐지 방법, 및 컴퓨터 판독 가능한 기록 매체
KR101699693B1 (ko) 온라인 게임에서 비정상적인 함수 호출을 탐지하는 방법 및 프로그램
CN108875363B (zh) 一种加速虚拟执行的方法、装置、电子设备及存储介质
KR20120081360A (ko) 랜덤 코드를 이용한 게임 클라이언트 인증 방법
RU2697951C2 (ru) Система и способ прекращения работы функционально ограниченного приложения, взаимосвязанного с веб-сайтом, запускаемого без установки
CN111651764A (zh) 进程监控方法、装置、电子设备及存储介质
KR20120039108A (ko) 온라인 게임 시스템의 불량 유저 모니터링 방법 및 온라인 게임 시스템을 위한 불량 유저 모니터링 시스템
KR101211855B1 (ko) 랜덤 코드를 이용한 게임 클라이언트 인증 방법

Legal Events

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