KR100976861B1 - 하드웨어를 통해 발생하는 자동 입력 감지 방법 및 그 장치 - Google Patents

하드웨어를 통해 발생하는 자동 입력 감지 방법 및 그 장치 Download PDF

Info

Publication number
KR100976861B1
KR100976861B1 KR1020080006081A KR20080006081A KR100976861B1 KR 100976861 B1 KR100976861 B1 KR 100976861B1 KR 1020080006081 A KR1020080006081 A KR 1020080006081A KR 20080006081 A KR20080006081 A KR 20080006081A KR 100976861 B1 KR100976861 B1 KR 100976861B1
Authority
KR
South Korea
Prior art keywords
event
computer
data
input means
input
Prior art date
Application number
KR1020080006081A
Other languages
English (en)
Other versions
KR20090080224A (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 KR1020080006081A priority Critical patent/KR100976861B1/ko
Publication of KR20090080224A publication Critical patent/KR20090080224A/ko
Application granted granted Critical
Publication of KR100976861B1 publication Critical patent/KR100976861B1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

하드웨어 형태의 자동 입력 장치에 의하여 발생하는 자동 입력 이벤트를 감지하는 자동 입력 감지 방법은, 입력 수단에 의하여 발생되어 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시 모듈을 컴퓨터 운영 체제 내에서 구동시키는 단계, 상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시 모듈을 상기 컴퓨터 운영 체제 내에서 구동시키는 단계, 상기 입력 수단으로 전달되는 데이터가 감지될 경우, 상기 감지된 데이터에 대응되는 이벤트가 상기 입력 수단으로부터 상기 컴퓨터로 전달되는지 검사하는 단계, 및 상기 감지된 데이터에 대응되는 이벤트가 상기 입력 수단으로부터 상기 컴퓨터로 전달되는 것으로 판단되는 경우, 상기 감지된 데이터에 대응되는 이벤트를 비정상적인 이벤트로 처리하는 단계를 포함하여 구성된다.
자동 입력, 오토 마우스

Description

하드웨어를 통해 발생하는 자동 입력 감지 방법 및 그 장치{METHOD FOR DETECTING AUTOMATIC INPUT GENERATED BY HARDWARE DEVICE AND APPARATUS THEREOF}
본 발명은 하드웨어를 통해 발생하는 자동 입력을 감지하는 방법 및 그 장치에 관한 것으로, 보다 상세하게는 응용 프로그램으로부터 하드웨어 형태의 자동 입력 장치로 전달되는 데이터와 자동 입력 장치로부터 운영체제로 전달되는 데이터 간의 상관 관계를 분석하여 자동으로 입력되는 이벤트를 감지해내는 방법 및 그 장치에 관한 것이다.
최근의 초고속 인터넷 네트워크 기술의 발달로 인하여 인터넷 사용자가 폭발적으로 증가되었으며, 인터넷과 관련된 통신 기술 또한 지속적으로 새로운 모습으로 진화해 나가고 있다. 특히, 다수의 사용자가 동시에 인터넷에 접속하여 함께 게임을 즐길 수 있는 네트워크 게임은 매우 큰 인기를 끌고 있으며, 이러한 인기를 바탕으로 게임 개발 업체들은 다양한 네트워크 게임들을 출시하고 있다.
다양한 인터넷 네트워크 게임들 중 MMORPG(massively multiplayer online role playing game)라는 게임은 다수의 사용자가 동시에 게임 서버에 접속하여, 게임이 설정해 놓은 환타지나 미스터리 세계에서 각자의 역할을 수행하며 즐기는 게 임이다. MMORPG 게임의 플레이어들은 자기에게 지정된 캐릭터를 조종하면서 게임이 제공하는 계속적인 스토리 라인 안에서 발생하는 다양한 사건들을 마치 실제 세계에서 일어나는 것처럼 헤쳐나가게 된다. 즉, 사용자는 자기 자신을 나타내는 캐릭터를 사냥이나 전투를 통해 훈련시켜 레벨을 높이기도 하며, 다른 플레이어와 관계를 맺고 길드를 형성하기도 하며, 하나의 팀을 형성해 단체로 전투를 수행하거나, 매매를 통해 아이템을 구매하기도 한다. 대부분의 MMORPG 게임에서 캐릭터의 레벨이나 경험치를 높이기 위해서는 몬스터 사냥, 적과의 전투, 특정 지역 방문 등과 같은 미션을 반복적으로 수행하여야만 한다. 이러한, 반복적인 미션들은 일정하고 규칙적인 마우스의 움직임, 반복적인 클릭, 키보드의 특정 키에 대한 반복적이고 규칙적인 입력 등을 통해 수행할 수 있다.
한편, 이러한 반복적인 미션을 사용자의 실제 입력이 없이도 자동으로 마우스나 키보드의 이벤트를 발생시켜 수행할 수 있는 "오토마우스" 또는 "오토플레이"와 같은 자동 입력 프로그램들이 개발되고 있다. 몇몇 게임 플레이어들은 이러한 자동 입력 프로그램을 사용하여 자신의 캐릭터의 레벨이나 경험치를 높이고 있어서 문제가 되고 있다. 자동 입력 프로그램 또는 자동 입력 장치를 이용하면 반복적인 미션 수행을 직접 입력 없이도 수행할 수 있기 때문에, 자신이 조종하는 캐릭터의 레벨이나 경험치를 빠르게 높일 수 있게 되지만, 이러한 자동 입력에 의한 캐릭터 조종은 공평하고 공정한 게임 진행을 파괴하여 게임의 밸런스를 무너뜨릴 뿐만 아니라, 게임 아이템을 오프라인 상에서 불법적으로 판매하는 조직들에 의하여 사용되어 심각한 사회 문제를 야기하고 있다.
이와 같은, 마우스나 키보드의 자동 입력을 방지하기 위하여 현재는 자동 입력 프로그램에서 마우스나 키보드 이벤트를 프로그램적으로 발생시키는데 사용하는 API(Application Programming Interface)를 후킹하여 해당 이벤트가 게임에 영향을 줄 경우 해당 이벤트를 실패하게 하는 방법을 사용하고 있다. 예를 들면 SendInput 이라는 API는 마우스나 키보드의 이벤트를 프로그램적으로 발생할 수 있게 하는 기능을 제공하는데, 이러한 API를 이용하여 마우스나 키보드 이벤트가 발생한 것처럼 속이는 자동 입력 프로그램이 있다면 SendInput API를 후킹하여 자동 입력 프로그램이 SendInput API를 호출할 때 실패하도록 함으로써 방어를 수행하는 것이다.
그러나 이와 같은 API 후킹 방식의 방어 방법은 자동 입력 소프트웨어가 아닌 자동 입력 하드웨어를 사용하여 이벤트를 생성해내는 경우에는 전혀 방어를 수행할 수 없다는 문제점이 있다.
한편, USB 장치의 경우에는 각 장치를 식별할 수 있는 고유의 Vendor ID 및 product ID를 가지고 있기 때문에, 이 고유의 ID를 통해서 USB 포트를 사용하는 하드웨어 형태의 자동 입력 장치 여부를 감지해 낼 수도 있지만, 이러한, ID는 펌웨어 상에 기록되어 있기 때문에 변경이 용이할 뿐 아니라, 자동 입력 장치가 마이크로소프트나 삼성, 또는 로지텍과 같은 흔하게 사용되는 ID 값을 사용하여 위장할 경우에는 감지해 내지 못한다는 한계가 있다.
본 발명은 이와 같은 종래의 자동 입력 감지 방법의 문제점과 한계를 극복하기 위해 창안된 것으로서, 본 발명이 이루고자 하는 기술적 과제는 응용 프로그램으로부터 하드웨어 형태의 자동 입력 장치로 전달되는 데이터와 자동 입력 장치로부터 운영체제로 전달되는 데이터 간의 상관 관계를 분석하여 자동으로 입력되는 이벤트를 감지해냄으로써 API 후킹 방식을 통한 자동 입력 방어 방법의 한계를 극복할 수 있는 자동 입력 감지 방법 및 그 장치를 제공하는 데 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 하드웨어 형태의 자동 입력 장치에 의하여 발생하는 자동 입력 이벤트를 감지하는 자동 입력 감지 방법은, 입력 수단에 의하여 발생되어 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시 모듈을 컴퓨터 운영 체제 내에서 구동시키는 단계; 상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시 모듈을 상기 컴퓨터 운영 체제 내에서 구동시키는 단계; 상기 입력 수단으로 전달되는 데이터가 감지될 경우, 상기 감지된 데이터에 대응되는 이벤트가 상기 입력 수단으로부터 상기 컴퓨터로 전달되는지 검사하는 단계; 및 상기 감지된 데이터에 대응되는 이벤트가 상기 입력 수단으로부터 상기 컴퓨터로 전달되는 것으로 판단되는 경우, 상기 감지된 데이터에 대응되는 이벤트를 비정상적인 이벤트로 처리하는 단계를 포함하여 구성된다.
바람직하게는, 상기 이벤트 감시 모듈은 상기 입력 수단에 관련된 상기 컴퓨터 운영 체제 내의 디바이스 드라이버 스택 상에 위치되어 구동된다.
더 바람직하게는, 상기 이벤트 감시 모듈은 상기 입력 수단의 이벤트를 필터링할 수 있도록 상기 디바이스 드라이버 스택 상의 임의의 위치에서 구동되는 필터 드라이버이다.
더 바람직하게는, 상기 이벤트 감시 모듈은 상기 디바이스 드라이버 스택 상에 존재하는 임의의 드라이버를 후킹하여 상기 입력 수단의 이벤트를 모니터링하는 후킹 드라이버이다.
더 바람직하게는, 상기 데이터 감시 모듈은 상기 입력 수단에 관련된 상기 컴퓨터 운영 체제 내의 디바이스 드라이버 스택 상에 위치되어 구동된다.
더 바람직하게는, 상기 데이터 감시 모듈은 상기 입력 수단으로 전달되는 데이터를 필터링할 수 있도록 상기 디바이스 드라이버 스택 상의 임의의 위치에서 구동되는 필터 드라이버이다.
더 바람직하게는, 상기 데이터 감시 모듈은 상기 디바이스 드라이버 스택 상에 존재하는 임의의 드라이버를 후킹하여 상기 입력 수단으로 전달되는 데이터를 모니터링하는 후킹 드라이버이다.
더 바람직하게는, 상기 비정상적인 이벤트로 처리하는 단계에서 상기 입력 수단으로부터 전달되는 이벤트가 비정상적인 이벤트로 판단된 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 응용 프로그램을 종료한다.
더 바람직하게는, 상기 비정상적인 이벤트로 처리하는 단계는, 상기 입력 수단으로부터 전달되는 이벤트가 비정상적인 이벤트로 판단된 경우, 감시 카운터를 증가시키는 단계; 및 상기 감시 카운터가 소정의 임계치 이상이 되었을 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 응용 프로그램을 종료하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따른 하드웨어 형태의 자동 입력 장치에 의하여 발생하는 자동 입력 이벤트를 감지하는 자동 입력 감지 방법은, 입력 수단에 의하여 발생되어 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시 모듈을 컴퓨터 운영 체제 내에서 구동시키는 단계; 상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시 모듈을 상기 컴퓨터 운영 체제 내에서 구동시키는 단계; 소정의 시간 동안 상기 데이터 감시 모듈에 의해 감지된 상기 입력 수단으로 전달되는 데이터의 개수를 카운트하는 단계; 상기 소정의 시간 동안 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수를 카운트하는 단계; 상기 데이터 감시 모듈에 의해 감지된 데이터의 개수와 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수를 비교하는 단계; 및 상기 데이터 감시 모듈에 의해 감지된 데이터의 개수와 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수의 차가 소정 임계값 이하인 경우, 상기 입력 수단으로부터 상기 컴퓨터로 전달되는 이벤트를 비정상적인 이벤트로 처리하는 단계를 포함하여 구성된다.
바람직하게는, 상기 비정상적인 이벤트로 처리하는 단계에서 상기 입력 수단으로부터 전달되는 이벤트가 비정상적인 이벤트로 판단된 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 응용 프로그램을 종료한다.
본 발명의 또 다른 실시예에 따른 하드웨어 형태의 자동 입력 장치에 의하여 발생하는 자동 입력 이벤트를 감지하는 자동 입력 감지 방법은, 입력 수단에 의하여 발생되어 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시 모듈을 컴퓨터 운영 체제 내에서 구동시키는 단계; 상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시 모듈을 상기 컴퓨터 운영 체제 내에서 구동시키는 단계; 소정의 시간 동안 상기 데이터 감시 모듈에 의해 감지된 상기 입력 수단으로 전달되는 데이터의 개수를 카운트하는 단계; 상기 소정의 시간 동안 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수를 카운트하는 단계; 및 상기 데이터 감시 모듈에 의해 감지된 데이터의 개수와 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수 모두 소정 임계값 이상인 경우, 상기 입력 수단으로부터 상기 컴퓨터로 전달되는 이벤트를 비정상적인 이벤트로 처리하는 단계를 포함하여 구성된다.
바람직하게는, 상기 비정상적인 이벤트로 처리하는 단계에서 상기 입력 수단으로부터 전달되는 이벤트가 비정상적인 이벤트로 판단된 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 응용 프로그램을 종료한다.
본 발명의 실시예에 따른 하드웨어 형태의 자동 입력 장치에 의하여 발생되어 컴퓨터로 입력되는 자동 입력 이벤트를 감지하는 자동 입력 감지 장치는, 입력 수단에 의하여 발생되어 상기 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시부; 상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시부; 상기 이벤트 감시부에 의해 감시되는 이벤트 및 상기 데이터 감시부에 의해 감시되는 데이터를 각각 전달받아 상기 이벤트 감시부에 의해 감시되는 이벤트와 상기 데이터 감시부에 의해 감시되는 데이터 간의 상관관계를 분석하고, 상기 이벤트 감시부에 의해 감시되는 이벤트가 상기 데이터 감시부에 의해 감시되는 데이터에 의해서 발생되는 것으로 판단되는 경우, 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 이벤트 처리부를 포함하여 구성된다.
바람직하게는, 상기 이벤트 처리부는 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 상기 컴퓨터에서 구동되는 응용 프로그램을 종료한다.
본 발명의 또 다른 실시예에 따른 하드웨어 형태의 자동 입력 장치에 의하여 발생되어 컴퓨터로 입력되는 자동 입력 이벤트를 감지하는 자동 입력 감지 장치는, 입력 수단에 의하여 발생되어 상기 컴퓨터로 전달되는 이벤트를 모니터링하여 그 개수를 카운트하는 이벤트 감시부; 상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링하여 그 개수를 카운트하는 데이터 감시부; 소정 시간 동안 상기 이벤트 감시부에 의해 감시되는 이벤트의 개수 및 상기 데이터 감시부에 의해 감시되는 데이터의 개수를 전달받아 둘 간의 차를 계산하고, 상기 계산된 차 값이 소정의 임계치 이하인 경우, 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 이벤트 처리부를 포함하여 구성된다.
바람직하게는, 상기 이벤트 처리부는 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 상기 컴퓨터에서 구동되는 응용 프로그램을 종료한다.
본 발명의 또 다른 실시예에 따른 하드웨어 형태의 자동 입력 장치에 의하여 발생되어 컴퓨터로 입력되는 자동 입력 이벤트를 감지하는 자동 입력 감지 장치는, 입력 수단에 의하여 발생되어 상기 컴퓨터로 전달되는 이벤트를 모니터링하여 그 개수를 카운트하는 이벤트 감시부; 상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링하여 그 개수를 카운트하는 데이터 감시부; 소정 시간 동안 상기 이벤트 감시부에 의해 감시되는 이벤트의 개수 및 상기 데이터 감시부에 의해 감시되는 데이터의 개수를 전달받아 상기 소정의 임계치와 비교하고, 상기 이벤트의 개수 및 상기 데이터의 개수가 모두 소정의 임계치 이상인 경우, 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 이벤트 처리부를 포함하여 구성된다.
바람직하게는, 상기 이벤트 처리부는 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 상기 컴퓨터에서 구동되는 응용 프로그램을 종료한다.
상기한 바와 같은 본 발명의 자동 입력 감지 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
본 발명에 의하면 하드웨어 형태의 자동 입력 장치의 근본적인 동작 방식에 기인하여, 컴퓨터와 입력 수단 간에 주고 받는 데이터와 이벤트의 상관관계를 분석하여 자동 입력 여부를 진단하기 때문에, 컴퓨터와 입력 수단 간의 통신 방법을 근본적으로 바꾸거나 하드웨어 자체를 새롭게 변경하지 않는 이상, 거의 모든 형태의 하드웨어 타입 자동 입력 장치를 원천적으로 진단할 수 있게 된다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위 해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도1은 자동 입력 장치와 컴퓨터 간의 연결 구성(100)을 나타내는 개념도이다.
도1은 USB(Universal Serial Bus)를 지원하는 컴퓨터와 입력 장치가 연결된 모습을 나타내고 있다. 일반적으로 USB 포트를 사용하는 하드웨어 장치는 기본적으로 Control Endpoint와 Vendor에서 지정하여 사용할 수 있는 Interrupt 및 Bulk 방식의 인터페이스를 통하여 컴퓨터 운영체제 및 응용 프로그램과 통신하게 된다. 따라서, USB 포트를 사용하는 입력 장치라면 위에서 언급한 인터페이스 중 하나를 통하여 컴퓨터 운영체제나 응용 프로그램으로부터 데이터를 전달받게 된다. 특히, 마우스나 키보드와 같은 입력 장치의 경우에는 운영체제로부터 최소한의 입력만 받고(예를 들면, Num Lock 키가 눌릴 경우 키보드의 Num Lock 램프에 불이 들어오거나 나가게 하기 위하여 운영체제에서 키보드로 control data를 전송한다.), 대부분의 동작은 주로 입력 장치에서 운영 체제 쪽으로 이벤트를 전송하게 된다.
도1의 경우 입력장치(120)은 USB 포트를 통해서 컴퓨터(110)과 연결되게 된다. 이때, 대부분의 정상적인 USB 키보드 및 USB 마우스는 왼쪽의 경우처럼 USB 장치에 공통적으로 존재하는 Control Endpoint(130)를 사용하여 입력 장치(120)의 정보 등을 운영체제에 전달하거나, 또는 운영체제로부터 정보를 전달받는다. 즉, 양방향(IN/OUT)의 데이터 전송이 가능하다. 그리고, 사용자가 키보드를 누르거나 마우스를 이동하여 발생한 이벤트는 Interrupt IN Endpoint(140)을 통하여 운영체제 쪽으로 전달되게 된다. 따라서, 정상적인 USB 키보드 및 USB 마우스의 경우 최초 연결 시에만 Control Endpoint(130)을 통하여 양방향(IN/OUT) 간의 통신이 발생하 고, 그 이후의 대부분의 동작은 Interrupt IN Endpoint(140)을 사용하여 입력 장치(120)으로부터 컴퓨터(110)쪽의 방향(IN)으로만 이벤트 전송이 이루어지게 된다.
하지만, 오토마우스, 오토플레이와 같은 하드웨어 형태의 자동 입력 장치들의 경우에는 자기 스스로 어떤 종류의 키보드 이벤트나 마우스 이벤트를 발생시켜야 하는지 결정을 못하기 때문에 자신을 관리하는 전용 응용프로그램으로부터 반드시 Control Data를 전달받아야 한다. 따라서, 최초 연결 시에만 컴퓨터(110)로부터 입력 장치(120) 쪽으로(OUT) 데이터 전달이 발생하는 정상적인 USB 마우스나 USB 키보드의 경우와는 달리, 자동 입력 장치의 경우에는 Control Endpoint(130)을 통하여 최초 연결 이후에도 지속적인 데이터 전송이 컴퓨터(110)으로부터 입력 장치(120) 방향(OUT)으로 발생하게 된다. 또는, Interrupt OUT Endpoint(150)와 같은 별도의 인터페이스를 사용하여 최초 연결 이후에도 데이터가 컴퓨터(110)으로부터 입력 장치(120)방향으로 전달될 수도 있다.
따라서, 컴퓨터(110)에서 입력 장치(120) 방향으로 전달되는 Control Data와 입력 장치(120)에서 컴퓨터(110) 방향으로 전달되는 이벤트 Data를 모두 감시하게 되면 둘 간의 상관관계를 알 수 있게 되고 이를 이용하여 하드웨어 형태의 자동 입력 장치를 통해 발생하는 자동화된 입력을 감지할 수 있다. 즉, 하드웨어 자동 입력 장치를 동작시키기 위해서는 전용 응용 프로그램 및 드라이버로부터 주기적인 입력이 자동 입력 장치로 전달되어야 하고, 그에 상응하는 이벤트가 자동 입력 장치로부터 발생하게 되므로 이것을 분석하여 자동화된 입력을 감지하는 것이다.
이하에서는, 이와 같은 원리에 입각하여 본 발명의 실시예에 따른 자동 입력 감지 방법을 보다 구체적으로 설명한다.
도2는 본 발명의 일 실시예에 따른 자동 입력 감지 방법을 수행하기 위한 컴퓨터 운영체제 구성을 나타내는 개념도이다.
컴퓨터를 운영하는 컴퓨터 운영 체제(200)은 크게 커널 레벨과 유저 레벨로 나눌 수 있다. 커널 레벨은 컴퓨터의 주 기억 장치에 상주하는 운영 컴퓨터 운영 체제의 핵심적인 부분으로서, 시스템의 초기화와 인터럽트를 처리하기 위한 특별한 프로세스들, 프로세스 모니터, 프로세스들 사이의 환경 교환과 새로운 프로세스를 생성해 내는 모듈 등을 포함하고 있다. 또한, 컴퓨터에 연결된 입력 수단의 인터럽트 신호를 처리하기 위한 디바이스 드라이버들이 위치된다. 한편, 유저 레벨에서는 컴퓨터 운영 체제 내에서 각종 응용 프로그램이 구동되며, 커널 레벨에서 처리된 프로세스, 인터럽트들이 응용 프로그램에 전달된다. 이때, 응용 프로그램에 전달되는 프로세스, 인터럽트들은 여러 가지 형태로 처리되어 응용 프로그램에 전달될 되는데, 메시지 큐(message queue)에 의해 메시지의 형태로 전달될 수도 있고, 메시지의 형태로 가공되지 않고 그 자체로 직접 전달이 될 수도 있다.
예를 들면, 사용자가 키보드나 마우스와 같은 입력 장치를 이용하여 입력 이벤트를 발생시키면, 이 이벤트는 컴퓨터의 운영 체제의 커널 레벨에 위치하는 인터럽트 서비스 루틴(ISR : Interrupt Service Routine)에 의해서 인터럽트 신호로서 처리가 된다. ISR에서 처리된 이벤트는 상기 입력 수단을 구동하는 디바이스 드라이버(230)를 거쳐서 처리된다. 디바이스 드라이버(230)는 하나 이상이 구동될 수 있으며 다수의 디바이스 드라이버(230)가 모여 디바이스 드라이버 스택을 이룬다. 디바이스 드라이버(230)에 의해 처리된 이벤트는 유저 레벨로 전달이 된다. 유저 레벨로 전달된 이벤트들은 그 자체로서 응용 프로그램(240)에 전달되거나 또는 메시지 큐에 의해서 메시지 형태로 전달될 수 있다. 메시지의 형태로 전달되는 경우, 시스템 메시지 큐(SMQ : System Message Queue), 쓰레드 메시지 큐(TMQ : Thread Message Queue)와 같은 메시지 큐를 통해서 메시지의 형태로 응용 프로그램(240)에 전달되며, 메시지를 전달받은 응용 프로그램(240)은 이에 대응하는 처리를 수행하게 된다.
한편, 앞에서 설명한 바와 같이 하드웨어 형태의 자동 입력 수단(300)은 스스로 입력 이벤트를 생성해낼 수 없고 이를 구동시키는 전용 응용프로그램이 필요로 하게 된다. 따라서, 본 발명에서는 이러한 전용 응용 프로그램으로부터 자동 입력 수단(300)으로 전달되는 제어 데이터를 감시하는 데이터 감시 모듈(220)을 컴퓨터 운영체제(200) 내에 구동시킨다. 상기 데이터 감시 모듈(220)은 자동 입력 수단(300)을 구동하는 전용 응용 프로그램으로부터 자동 입력 수단(300)으로 전달되는 콘트롤 데이터를 감시할 수 있는 위치라면, 컴퓨터 운영 체제(200) 상의 유저 레벨 또는 커널 레벨의 어떤 곳에 위치하여 구동되더라도 상관없다. 예를 들면 데이터 감시 모듈(220)은 자동 입력 수단(300)을 구동하는 디바이스 드라이버(230) 상의 필터 드라이버일 수도 있고, 또는 디바이스 드라이버(230) 상의 특정 드라이버를 후킹하는 후킹 드라이버일 수도 있다.
자동 입력 수단(300)은 전용 응용 프로그램으로부터 콘트롤 데이터를 전송받아서 이에 대응되는 입력 이벤트를 컴퓨터 운영체제(200)로 전달한다. 여기서, 자동 입력 수단(300)에 의해서 발생되는 입력 이벤트를 감시할 수 있는 이벤트 감시 모듈(210)을 컴퓨터 운영체제(200) 내에서 구동시킨다. 상기 이벤트 감시 모 듈(210)은 데이터 감시 모듈(220)과 마찬가지로, 자동 입력 수단(300)으로부터 응용 프로그램(240)으로 전달되는 이벤트를 감시할 수 있는 곳이라면, 운영체제(200) 내의 어떤 곳에 위치되어 구동되더라도 상관없다. 예를 들면, 이벤트 감시 모듈(210)은 자동 입력 수단(300)을 구동하는 디바이스 드라이버(230) 상의 필터 드라이버일 수도 있고, 또는 디바이스 드라이버(230) 상의 특정 드라이버를 후킹하는 후킹 드라이버일 수도 있다.
이렇게 이벤트 감시 모듈(210) 및 데이터 감시 모듈(220)을 통하여 컴퓨터 운영체제(200)와 자동 입력 수단(300) 간의 서로 주고 받는 이벤트와 데이터를 분석한다. 만약, 데이터 감시 모듈(220)에서 감지되는 제어 데이터에 대응되는 입력 이벤트가 자동 입력 수단(300)으로부터 입력되는 것이 이벤트 감시 모듈(210)에 의해 감지될 경우, 자동 입력 수단(300)으로부터 응용 프로그램(240)에 전달되는 이벤트를 비정상적인 이벤트로 처리한다. 비정상적인 이벤트로 처리되는 경우, 상기 이벤트를 무시해버리거나 상기 이벤트를 전달받아 처리하는 응용 프로그램(240)을 종료시킬 수 있다.
또는, 비정상적인 이벤트로 판단되는 경우를 카운트하여 카운트된 횟수가 소정의 임계치 이상이 되었을 경우에, 그 이후에 입력되는 이벤트를 모두 무시해 버리거나 상기 이벤트를 전달받아 처리하는 응용 프로그램(240)을 종료시킬 수도 있다.
한편, 데이터 감시 모듈(220)에서 감지되는 데이터와 이벤트 감시 모듈(210)에서 감지되는 이벤트 간의 상관 관계는 주고받는 데이터의 개수의 일치 여부 또는 비례 여부 비교, 또는 특정 제어 데이터에 대해서는 특정 이벤트가 주기적, 반복적으로 발생한다는 등과 같은 것들을 분석하여 판단할 수 있다.
또는, 컴퓨터로부터 입력 장치로 소정의 임계치 이상의 데이터가 전달되는 것은 앞에서 설명한 바와 같이 비정상적인 경우이므로, 데이터 감시 모듈(220)에 의해 감지된 데이터의 개수와 이벤트 감시 모듈(210)에 의해 감지된 이벤트의 개수가 소정 임계값 이상인 경우에는 비정상적인 입력 이벤트인 것으로 판단할 수도 있다.
이하에서는, 도3 내지 도5를 참조하여, 본 발명의 각 실시예에 의한 자동 입력 감지 방법을 단계 별로 자세히 설명한다.
도3 내지 도5는 본 발명의 각 실시예에 따른 자동 입력 감지 방법을 나타내는 흐름도이다.
도 3을 참조하면, 먼저 입력 수단에 의하여 발생되어 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시 모듈(210) 및 컴퓨터로부터 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시 모듈(220)을 컴퓨터 운영 체제 내에서 구동시킨다(S310). 이때 이벤트 감시 모듈(210) 및 데이터 감시 모듈(220)은 각각 이벤트와 데이터를 감시할 수 있는 컴퓨터 운영체제(200) 내의 임의의 위치에서 구동될 수 있다.
그리고, 응용 프로그램(240)이 구동되는 동안 컴퓨터로부터 입력 수단으로 전달되는 데이터 및 입력 수단에서 컴퓨터로 전달되는 이벤트를 감시한다(S320).
감시를 수행하는 동안 데이터 감시 모듈(220)에 의하여, 특정 데이터가 컴퓨 터로부터 입력 수단으로 전달되는 것이 감지되면(S330), 이벤트 감시 모듈(210)에 의하여 감지된 입력 수단으로부터 전달되고 있는 이벤트를 상기 데이터 감시 모듈에 의해 감지된 데이터와 비교 분석한다. 만약, 컴퓨터로부터 입력 수단으로 전달된 데이터와 입력 수단으로부터 컴퓨터로 전달되는 데이터가 직접적인 상관 관계를 갖는 서로 대응되는 것으로 분석되는 경우(S340), 해당 이벤트를 비정상적인 이벤트로 처리한다(S350).
즉, 자동 입력 수단을 콘트롤하기 위한 전용 응용 프로그램이 특정 동작을 수행하도록 지시하는 제어 데이터를 입력 수단으로 전달하고, 이에 대응되는 이벤트가 입력 수단으로부터 발생되었는가를 분석하는 것으로서, 이는 입력 수단으로 전달되는 일련의 특정 데이터에 대하여, 입력 수단이 일련의 특정 이벤트만을 발생시킨다는 등의 상관 관계를 파악하는 것이다.
도4는 본 발명의 다른 실시예에 따른 자동 입력 감지 방법을 나타내는 흐름도이다.
먼저, 이벤트 감시 모듈(210) 및 데이터 감시 모듈(220)을 컴퓨터 운영 체제 내에서 구동시킨다(S410). 그리고, 소정 시간 동안 입력 수단으로 전달되는 데이터의 개수 및 입력 수단에서 컴퓨터로 전달되는 이벤트의 개수를 카운트한다(S420). 상기 소정 시간이 경과된 후, 상기 소정 시간 동안 카운트된 데이터의 개수 및 이벤트의 개수를 서로 비교한다(S430). 이때, 카운트된 데이터의 개수와 이벤트의 개수가 서로 동일 또는 거의 일치하는 경우에는, 앞서 설명한 바와 같이 현재 컴퓨터로 입력 이벤트를 전달하고 있는 입력 수단이 자동 입력 장치라고 판단할 수 있다. 즉, 카운트된 데이터의 개수와 이벤트의 개수가 서로 동일 또는 거의 일치한다고 볼 수 있을 만큼, 그 차이가 소정의 임계치 이하일 경우(S440)에는, 현재 컴퓨터에 연결되어 있는 입력 수단은 자동 입력 장치이므로, 여기서 발생하는 이벤트는 비정상적인 이벤트라고 판단하는 것이다(S450).
또는, 도5에 나타나 있는 본 발명의 또 다른 실시예에 의할 경우, 카운트된 데이터의 개수 및 이벤트의 개수가 소정의 값 이상일 경우(S530)에, 현재 컴퓨터에 연결되어 있는 입력 수단은 자동 입력 장치이므로, 여기서 발생하는 이벤트는 비정상적인 이벤트라고 판단한다(S540). 왜냐하면, 최초 연결 시를 제외하고는 컴퓨터에서 입력 수단으로 일련의 데이터를 다량 전송하는 일은 없으므로, 비정상적인 동작이라고 할 수 있을 만큼의 다량의 데이터가 컴퓨터로부터 입력 수단으로 전달되는 경우에는 자동 입력 장치에 의한 자동 입력이 컴퓨터로 전송되고 있다고 판단하여, 입력되는 이벤트를 무시하거나, 현재 입력되는 이벤트를 받아서 실행되고 있는 응용 프로그램을 종료한다.
한편, 이하에서는, 본 발명의 실시예에 따른 자동 입력 감지 장치에 대하여 설명한다.
도6은 본 발명의 실시예에 따른 자동 입력 감지 장치(600)의 구성을 나타내는 개념도이다.
본 발명의 실시예에 따른 자동 입력 감지 장치(600)은 이벤트 감시부(610), 데이터 감시부(620), 및 이벤트 처리부(630)을 포함하여 구성된다. 상기 이벤트 감시부(610)은 키보드나 마우스와 같은 입력 수단으로부터 컴퓨터로 전달되는 이벤트 를 감시하고, 그 개수나 크기 등을 카운트 하는 등의 역할을 수행한다. 상기 데이터 감시부(620)은 컴퓨터로부터 상기 입력 수단으로 전달되는 제어 신호 등과 같은 데이터를 감시하고, 그 개수나 크기 등을 카운트 하는 등의 역할을 수행한다. 한편, 이벤트 처리부(630)는 상기 이벤트 감시부(610)와 상기 데이터 감시부(620)에서 감시된 이벤트 및 데이터 간의 상관 관계를 분석하거나, 그 개수 크기 등을 분석하여, 입력 수단으로부터 컴퓨터로 전달되는 이벤트를 차단, 무시하는 동작을 수행하거나, 또는 현재 입력되는 이벤트를 받아서 처리하는 컴퓨터 상에서 실행되고 있는 응용 프로그램을 종료시키는 동작을 수행한다.
만약, 이벤트 감시부(610)에서 감시되는 이벤트와 데이터 감시부(620)에서 감시되는 데이터가 서로 직접 대응되는 상관 관계가 있는 경우, 또는 상기 이벤트와 데이터의 소정 시간 동안의 감지된 개수가 서로 동일하거나 거의 일치하는 경우, 또는 상기 이벤트와 데이터의 소정 시간 동안의 감지된 개수가 소정의 임계치 이상인 경우에는 이벤트 처리부(630)는 현재 입력수단에서 컴퓨터로 입력되고 있는 이벤트를 차단, 무시하거나, 또는 현재 입력되는 이벤트를 받아서 처리하는 컴퓨터 상에서 실행되고 있는 응용 프로그램을 종료시키게 된다.
상기 자동 입력 감지 장치(600)는 컴퓨터 내부에 설치되는 내부 부품 형태로 구성될 수도 있고, 또는 컴퓨터 외부로부터 별도로 연결되어 설치되는 별도의 장치 형태로 구성될 수도 있다. 또는, 상기 자동 입력 감지 장치(600)의 각 구성요소인 이벤트 감시부(610), 데이터 감시부(620), 및 이벤트 처리부(630)가 수행하는 각 기능을 구현하는 모듈들이 컴퓨터 자체의 구성에 의하여 가상적으로 구현되어, 그 컴퓨터 자체가 상기 자동 입력 감지 장치(600)로서 동작할 수도 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CO-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
도1은 자동 입력 장치와 컴퓨터 간의 연결을 나타내는 개념도이다.
도2는 본 발명의 일 실시예에 따른 자동 입력 감지 방법을 수행하기 위한 컴퓨터 운영체제 구성을 나타내는 개념도이다.
도3은 본 발명의 일 실시예에 따른 자동 입력 감지 방법을 나타내는 흐름도이다.
도4는 본 발명의 다른 실시예에 따른 자동 입력 감지 방법을 나타내는 흐름도이다.
도5는 본 발명의 또 다른 실시예에 따른 자동 입력 감지 방법을 나타내는 흐름도이다.
도6은 본 발명의 실시예에 따른 자동 입력 감지 장치의 구성을 나타내는 개념도이다.

Claims (20)

  1. 하드웨어 형태의 자동 입력 장치에 의하여 발생하는 자동 입력 이벤트를 감지하는 자동 입력 감지 방법에 있어서,
    입력 수단에 의하여 발생되어 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시 모듈을 컴퓨터 운영 체제 내에서 구동시키는 단계;
    상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시 모듈을 상기 컴퓨터 운영 체제 내에서 구동시키는 단계;
    상기 입력 수단으로 전달되는 데이터가 감지될 경우, 이벤트 처리부가 상기 감지된 데이터에 대응되는 이벤트가 상기 입력 수단으로부터 상기 컴퓨터로 전달되는지 검사하는 단계; 및
    상기 이벤트 처리부가 상기 감지된 데이터에 대응되는 이벤트가 상기 입력 수단으로부터 상기 컴퓨터로 전달되는 것으로 판단하는 경우, 상기 이벤트 처리부가 상기 감지된 데이터에 대응되는 이벤트를 비정상적인 이벤트로 처리하는 단계를 포함하는
    자동 입력 감지 방법.
  2. 제1항에 있어서,
    상기 이벤트 감시 모듈은 상기 입력 수단에 관련된 상기 컴퓨터 운영 체제 내의 디바이스 드라이버 스택 상에 위치되어 구동되는 것을 특징으로 하는
    자동 입력 감지 방법.
  3. 제2항에 있어서,
    상기 이벤트 감시 모듈은 상기 입력 수단의 이벤트를 필터링할 수 있도록 상기 디바이스 드라이버 스택 상의 임의의 위치에서 구동되는 필터 드라이버인 것을 특징으로 하는
    자동 입력 감지 방법.
  4. 제2항에 있어서,
    상기 이벤트 감시 모듈은 상기 디바이스 드라이버 스택 상에 존재하는 임의의 드라이버를 후킹하여 상기 입력 수단의 이벤트를 모니터링하는 후킹 드라이버인 것을 특징으로 하는
    자동 입력 감지 방법.
  5. 제1항에 있어서,
    상기 데이터 감시 모듈은 상기 입력 수단에 관련된 상기 컴퓨터 운영 체제 내의 디바이스 드라이버 스택 상에 위치되어 구동되는 것을 특징으로 하는
    자동 입력 감지 방법.
  6. 제5항에 있어서,
    상기 데이터 감시 모듈은 상기 입력 수단으로 전달되는 데이터를 필터링할 수 있도록 상기 디바이스 드라이버 스택 상의 임의의 위치에서 구동되는 필터 드라이버인 것을 특징으로 하는
    자동 입력 감지 방법.
  7. 제5항에 있어서,
    상기 데이터 감시 모듈은 상기 디바이스 드라이버 스택 상에 존재하는 임의의 드라이버를 후킹하여 상기 입력 수단으로 전달되는 데이터를 모니터링하는 후킹 드라이버인 것을 특징으로 하는
    자동 입력 감지 방법.
  8. 제1항에 있어서,
    상기 비정상적인 이벤트로 처리하는 단계에서 상기 입력 수단으로부터 전달되는 이벤트가 비정상적인 이벤트로 판단된 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 응용 프로그램을 종료하는 것을 특징으로 하는
    자동 입력 감지 방법.
  9. 제1항에 있어서,
    상기 비정상적인 이벤트로 처리하는 단계는,
    상기 입력 수단으로부터 전달되는 이벤트가 비정상적인 이벤트로 판단된 경우, 감시 카운터를 증가시키는 단계; 및
    상기 감시 카운터가 소정의 임계치 이상이 되었을 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 응용 프로그램을 종료 단계를 포함하는 것을 특징으로 하는
    자동 입력 감지 방법.
  10. 하드웨어 형태의 자동 입력 장치에 의하여 발생하는 자동 입력 이벤트를 감지하는 자동 입력 감지 방법에 있어서,
    입력 수단에 의하여 발생되어 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시 모듈을 컴퓨터 운영 체제 내에서 구동시키는 단계;
    상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시 모듈을 상기 컴퓨터 운영 체제 내에서 구동시키는 단계;
    소정의 시간 동안 상기 데이터 감시 모듈에 의해 감지된 상기 입력 수단으로 전달되는 데이터의 개수를 상기 데이터 감시 모듈이 카운트하는 단계;
    상기 소정의 시간 동안 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수를 상기 이벤트 감시 모듈이 카운트하는 단계;
    상기 데이터 감시 모듈에 의해 감지된 데이터의 개수와 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수를 이벤트 처리부가 비교하는 단계; 및
    상기 데이터 감시 모듈에 의해 감지된 데이터의 개수와 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수의 차가 소정 임계값 이하인 경우, 상기 이벤트 처리부가 상기 입력 수단으로부터 상기 컴퓨터로 전달되는 이벤트를 비정상적인 이벤트로 처리하는 단계를 포함하는
    자동 입력 감지 방법.
  11. 제10항에 있어서,
    상기 비정상적인 이벤트로 처리하는 단계에서 상기 입력 수단으로부터 전달되는 이벤트가 비정상적인 이벤트로 판단된 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 응용 프로그램을 종료하는 것을 특징으로 하는
    자동 입력 감지 방법.
  12. 하드웨어 형태의 자동 입력 장치에 의하여 발생하는 자동 입력 이벤트를 감지하는 자동 입력 감지 방법에 있어서,
    입력 수단에 의하여 발생되어 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시 모듈을 컴퓨터 운영 체제 내에서 구동시키는 단계;
    상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시 모듈을 상기 컴퓨터 운영 체제 내에서 구동시키는 단계;
    소정의 시간 동안 상기 데이터 감시 모듈에 의해 감지된 상기 입력 수단으로 전달되는 데이터의 개수를 상기 데이터 감시 모듈이 카운트하는 단계;
    상기 소정의 시간 동안 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수를 상기 이벤트 감시 모듈이 카운트하는 단계; 및
    상기 데이터 감시 모듈에 의해 감지된 데이터의 개수와 상기 이벤트 감시 모듈에 의해 감지된 이벤트의 개수 모두 소정 임계값 이상인 경우, 이벤트 처리부가 상기 입력 수단으로부터 상기 컴퓨터로 전달되는 이벤트를 비정상적인 이벤트로 처리하는 단계를 포함하는
    자동 입력 감지 방법.
  13. 제12항에 있어서,
    상기 비정상적인 이벤트로 처리하는 단계에서 상기 입력 수단으로부터 전달되는 이벤트가 비정상적인 이벤트로 판단된 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 응용 프로그램을 종료하는 것을 특징으로 하는
    자동 입력 감지 방법.
  14. 제1항 내지 제13항의 방법을 컴퓨터 상에서 수행하는 컴퓨터 프로그램을 저장한 컴퓨터가 읽을 수 있는 기록 매체.
  15. 하드웨어 형태의 자동 입력 장치에 의하여 발생되어 컴퓨터로 입력되는 자동 입력 이벤트를 감지하는 자동 입력 감지 장치에 있어서
    입력 수단에 의하여 발생되어 상기 컴퓨터로 전달되는 이벤트를 모니터링 할 수 있는 이벤트 감시부;
    상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링 할 수 있는 데이터 감시부;
    상기 이벤트 감시부에 의해 감시되는 이벤트 및 상기 데이터 감시부에 의해 감시되는 데이터를 각각 전달받아 상기 이벤트 감시부에 의해 감시되는 이벤트와 상기 데이터 감시부에 의해 감시되는 데이터 간의 상관관계를 분석하고, 상기 이벤트 감시부에 의해 감시되는 이벤트가 상기 데이터 감시부에 의해 감시되는 데이터에 의해서 발생되는 것으로 판단되는 경우, 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 이벤트 처리부를 포함하는
    자동 입력 감지 장치.
  16. 제15항에 있어서,
    상기 이벤트 처리부는 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 상기 컴퓨터에서 구동되는 응용 프로그램을 종료하는 것을 특징으로 하는
    자동 입력 감지 장치.
  17. 하드웨어 형태의 자동 입력 장치에 의하여 발생되어 컴퓨터로 입력되는 자동 입력 이벤트를 감지하는 자동 입력 감지 장치에 있어서
    입력 수단에 의하여 발생되어 상기 컴퓨터로 전달되는 이벤트를 모니터링하여 그 개수를 카운트하는 이벤트 감시부;
    상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링하여 그 개수를 카운트하는 데이터 감시부;
    소정 시간 동안 상기 이벤트 감시부에 의해 감시되는 이벤트의 개수 및 상기 데이터 감시부에 의해 감시되는 데이터의 개수를 전달받아 둘 간의 차를 계산하고, 상기 계산된 차 값이 소정의 임계치 이하인 경우, 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 이벤트 처리부를 포함하는
    자동 입력 감지 장치.
  18. 제17항에 있어서,
    상기 이벤트 처리부는 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 상기 컴퓨터에서 구동되는 응용 프로그램을 종료하는 것을 특징으로 하는
    자동 입력 감지 장치.
  19. 하드웨어 형태의 자동 입력 장치에 의하여 발생되어 컴퓨터로 입력되는 자동 입력 이벤트를 감지하는 자동 입력 감지 장치에 있어서
    입력 수단에 의하여 발생되어 상기 컴퓨터로 전달되는 이벤트를 모니터링하여 그 개수를 카운트하는 이벤트 감시부;
    상기 컴퓨터로부터 상기 입력 수단으로 전달되는 데이터를 모니터링하여 그 개수를 카운트하는 데이터 감시부;
    소정 시간 동안 상기 이벤트 감시부에 의해 감시되는 이벤트의 개수 및 상기 데이터 감시부에 의해 감시되는 데이터의 개수를 전달받아 소정의 임계치와 비교하고, 상기 이벤트의 개수 및 상기 데이터의 개수가 모두 상기 소정의 임계치 이상인 경우, 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 이벤트 처리부를 포함하는
    자동 입력 감지 장치.
  20. 제19항에 있어서,
    상기 이벤트 처리부는 상기 입력 수단에 의해 발생되는 이벤트를 비정상적인 이벤트로 처리하는 경우, 상기 이벤트를 무시하거나, 상기 이벤트를 전달받아 처리하는 상기 컴퓨터에서 구동되는 응용 프로그램을 종료하는 것을 특징으로 하는
    자동 입력 감지 장치.
KR1020080006081A 2008-01-21 2008-01-21 하드웨어를 통해 발생하는 자동 입력 감지 방법 및 그 장치 KR100976861B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080006081A KR100976861B1 (ko) 2008-01-21 2008-01-21 하드웨어를 통해 발생하는 자동 입력 감지 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080006081A KR100976861B1 (ko) 2008-01-21 2008-01-21 하드웨어를 통해 발생하는 자동 입력 감지 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20090080224A KR20090080224A (ko) 2009-07-24
KR100976861B1 true KR100976861B1 (ko) 2010-08-23

Family

ID=41291356

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080006081A KR100976861B1 (ko) 2008-01-21 2008-01-21 하드웨어를 통해 발생하는 자동 입력 감지 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100976861B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139916B1 (ko) 2010-10-25 2012-04-30 주식회사 엠게임스튜디오 하드웨어를 통한 자동 입력 감지 장치 및 그 방법
KR101171717B1 (ko) 2011-12-28 2012-09-13 (주)네오위즈게임즈 온라인 게임의 아이템 경매장용 자동 프로그램 방지 방법 및 서버

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110764834B (zh) * 2019-08-31 2023-11-24 广州市中海达测绘仪器有限公司 一种自动化安全监测平台、管理方法及存储介质
KR102541906B1 (ko) 2021-02-15 2023-06-12 (주)참건강한세상 전염 예방 기능을 갖춘 내시경 마스크

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040042731A (ko) * 2002-11-15 2004-05-20 엘지엔시스(주) 호스트 시스템의 파일 및 레지스트리 모니터링방법
US6813713B2 (en) 2000-10-19 2004-11-02 Nec Electronics Corporation Data processing apparatus capable of dealing with illegal external input in an operative state and preventing useless power consumption in a stopped state
KR100685672B1 (ko) 2004-11-29 2007-02-23 주식회사 안철수연구소 컴퓨터 프로그램에 의한 자동입력 방지방법
KR20080015623A (ko) * 2006-08-16 2008-02-20 주식회사 안철수연구소 입력 데이터의 자동 입력 감지 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813713B2 (en) 2000-10-19 2004-11-02 Nec Electronics Corporation Data processing apparatus capable of dealing with illegal external input in an operative state and preventing useless power consumption in a stopped state
KR20040042731A (ko) * 2002-11-15 2004-05-20 엘지엔시스(주) 호스트 시스템의 파일 및 레지스트리 모니터링방법
KR100685672B1 (ko) 2004-11-29 2007-02-23 주식회사 안철수연구소 컴퓨터 프로그램에 의한 자동입력 방지방법
KR20080015623A (ko) * 2006-08-16 2008-02-20 주식회사 안철수연구소 입력 데이터의 자동 입력 감지 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139916B1 (ko) 2010-10-25 2012-04-30 주식회사 엠게임스튜디오 하드웨어를 통한 자동 입력 감지 장치 및 그 방법
KR101171717B1 (ko) 2011-12-28 2012-09-13 (주)네오위즈게임즈 온라인 게임의 아이템 경매장용 자동 프로그램 방지 방법 및 서버
WO2013100400A1 (ko) * 2011-12-28 2013-07-04 (주)네오위즈게임즈 온라인 게임의 아이템 경매장용 자동 프로그램 방지 방법 및 서버
US9457280B2 (en) 2011-12-28 2016-10-04 Intellectual Discovery Co., Ltd. Auto program preventing method for auction house for on-line game item and server therefor

Also Published As

Publication number Publication date
KR20090080224A (ko) 2009-07-24

Similar Documents

Publication Publication Date Title
KR100968268B1 (ko) 마우스 및 키보드 자동 입력 감지 방법
US11654365B2 (en) Secure anti-cheat system
KR100976861B1 (ko) 하드웨어를 통해 발생하는 자동 입력 감지 방법 및 그 장치
US11395971B2 (en) Auto harassment monitoring system
WO2008020710A1 (en) Method for detecting automatically generated input signals and apparatus thereof
US20090143144A1 (en) Add-in card based cheat detection platform for online applications
JP2009509647A5 (ko)
EP3740294B1 (en) System and method for fraud prevention in esports
CN110465081B (zh) 用于玩网络游戏的系统和方法
KR101201495B1 (ko) 컴퓨터시스템에서 자동 입력 차단장치 및 방법
KR101139916B1 (ko) 하드웨어를 통한 자동 입력 감지 장치 및 그 방법
KR102502495B1 (ko) 안티 치트 검출을 위한 시스템 및 방법
KR101610065B1 (ko) 로봇 프로그램에 의한 게임 플레이 검출 방법
JP2006081609A (ja) ゲームシステム、ゲームプログラム、及び記録媒体
KR20200009862A (ko) 대국 게임 부정행위 방지 방법 및 그 장치
WO2010107149A1 (en) Method and apparatus for detecting automatic input event generated by hardware device
US11850519B2 (en) Tracking in-game events and generating event reports across multiple gaming applications
EP4068127A1 (en) Systems and methods for determining execution state
JP2010110640A (ja) ゲームシステム、ゲームプログラム、及び記録媒体
KR101156760B1 (ko) 스캔 코드를 이용한 자동 입력 감지 장치 및 그 방법
CN115501612A (zh) 游戏中的外挂检测方法、装置、存储介质和处理器
KR20170137298A (ko) 온라인 게임의 핵툴 대응 장치, 시스템 및 방법
KR20190043325A (ko) 사용자에게 보상을 제공하기 위한 방법, 장치, 및 컴퓨터 프로그램

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: 20130812

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140812

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150812

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160812

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180813

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190812

Year of fee payment: 10