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

KR100800090B1 - System for real-time watching irp dispatching to windows device driver and method thereof - Google Patents

System for real-time watching irp dispatching to windows device driver and method thereof Download PDF

Info

Publication number
KR100800090B1
KR100800090B1 KR1020060084332A KR20060084332A KR100800090B1 KR 100800090 B1 KR100800090 B1 KR 100800090B1 KR 1020060084332 A KR1020060084332 A KR 1020060084332A KR 20060084332 A KR20060084332 A KR 20060084332A KR 100800090 B1 KR100800090 B1 KR 100800090B1
Authority
KR
South Korea
Prior art keywords
irp
api
real
control
information
Prior art date
Application number
KR1020060084332A
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 KR1020060084332A priority Critical patent/KR100800090B1/en
Application granted granted Critical
Publication of KR100800090B1 publication Critical patent/KR100800090B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/22Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A system and a method for monitoring an IRP(I/O(Input/Output) Request Packet) dispatched to a Windows device driver in real-time are provided to solve problems owing to integration between the device driver and an IRP processing module by separating the device driver and the IRP processing module, and secure stability of the device driver and correct a product quickly by changing/applying a user mode application to the device driver easily even though an IRP processing mode is changed. An IRP control driver(203) delays the IRP received from an OS(Operating System) and transceives IRP information with an IRP control policy module(201). The IRP control policy module determines to block the IRP depending on harmfulness of the IRP received from the IRP control driver. The IRP control driver includes an IRP delayer(203a) delaying transfer of the IRP until the harmfulness is checked, an IRP information transmitter(203b) transmitting the IPR information checked in the IRP delayer to the IRP control policy module, and an IRP processing mode receiver(203c) receiving an IRP processing mode from the IRP control policy module and transferring the IPR processing mode to the IRP delayer.

Description

윈도우 디바이스 드라이버로 디스패치되는 IRP(I/O Request Packet)의 실시간 감시 장치 및 그 방법{System for Real-time Watching IRP Dispatching to Windows Device Driver and Method thereof}System for Real-time Watching IRP Dispatching to Windows Device Driver and Method about dispatching IRP (Dispatched by Windows Device Driver)

도 1은 마이크로소프트사의 윈도우 NT계열 OS의 아키텍처Figure 1 shows the architecture of Microsoft's Windows NT-based OS.

도 2는 본 발명의 일 실시예에 따른 IRP 실시간 감시 시스템 구성도2 is a block diagram of an IRP real-time monitoring system according to an embodiment of the present invention

도 3은 본 발명의 일 실시예에 따른 IRP 지연을 이용한 실시간 감시 방법 흐름도3 is a flowchart illustrating a real-time monitoring method using an IRP delay according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 IRP 지연을 이용한 실시간 감시 상세 흐름도4 is a detailed flowchart of real time monitoring using IRP delay according to an embodiment of the present invention.

{도면의 주요 부분의 부호에 대한 설명}{Description of Signs of Major Parts of Drawings}

201 : IRP 제어 정책 모듈부 202 : 입출력 관리부201: IRP control policy module unit 202: I / O management unit

203 : IRP 제어드라이버부 203a : IRP 지연부203: IRP control driver section 203a: IRP delay section

203b : IRP 정보송신부 203c : IRP 처리수신부203b: IRP information transmitter 203c: IRP processing receiver

본 발명은 윈도우 디바이스 드라이버로 디스패치되는 IRP(I/O Request Packet)의 실시간 감시 장치 및 그 방법에 관한 것이다.The present invention relates to an apparatus and a method for real-time monitoring of an I / O request packet (IRP) dispatched to a Windows device driver.

IRP를 제어하거나 차단을 하기 위해서는 특정 기준(이하 제어 정책)에 의해서 제어, 혹은 차단 여부를 결정하게 되는데 종래의 디바이스 드라이버기술은 해당 제어 정책 모듈과 디바이스 드라이버가 통합되어 하나로 구성되어 왔다. In order to control or block the IRP, it is determined whether to control or block based on a specific criterion (hereinafter, referred to as a control policy). The conventional device driver technology has been configured by integrating the control policy module and the device driver.

현대에 와서 해당 기준이 복잡, 다양해졌고 급격히 변화하기 때문에 IRP를 통제하기 위한 제어정책의 변경이 빈번하게 일어나고 이러한 변경을 적용하기 위해서는 디바이스 드라이버 자체에 포함된 제어 정책모듈의 코드변경을 통해서 이루어지고 있다. 따라서 디바이스 드라이버 자체의 코드변경으로 실제 적용을 위해서는 안정성 확보를 위한 테스트 기간이 과도하게 소요되고 있다. Since the standard is complicated, diversified, and rapidly changed in modern times, the change of control policy to control IRP occurs frequently, and the change is made through code change of the control policy module included in the device driver itself. . Therefore, the test period for securing stability is excessively required for the actual application due to the code change of the device driver itself.

이와 같이 종래의 디바이스 드라이버는 제어정책이 변경될 때 실제 적용까지는 상당히 많은 시간이 소요됨으로써 바이러스나 해커의 공격에 신속하게 대응하지 못하는 어려움이 있다.As such, the conventional device driver takes a considerable time until its actual application when the control policy is changed, which makes it difficult to respond quickly to virus or hacker attacks.

따라서 상기와 같은 문제점을 해결하기 위해서, IRP의 제어 정책 모듈과 해당 디바이스 드라이버 간의 분리가 필요하다. 즉 IRP 제어 정책 모듈은 다른 디바이스 드라이버로 구성되거나 유저 모드의 실행 가능 프로그램으로 제공될 필요가 있다. Therefore, in order to solve the above problems, separation between the control policy module of the IRP and the device driver is required. That is, the IRP control policy module needs to be composed of other device drivers or provided as an executable program in user mode.

이러한 구조를 갖고 실시간 처리를 위해서는 디바이스 드라이버에 디스패치될 IRP를 IRP 제어 정책 모듈에 의해 결정될 처리 방법을 수신하기까지 지연시켜야 하고 지연되어 실시간 처리되는 시간은 디바이스 드라이버와 제어 정책 모듈이 하나로 통합된 기존의 방식과 비교하여 전혀 손색이 없어야 한다. With this structure, real-time processing requires delaying the IRP to be dispatched to the device driver until receiving the processing method to be determined by the IRP control policy module, and the delayed real-time processing time is achieved by integrating the device driver and the control policy module into one. Compared to the method should be at all intact.

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 그 목적은 실시간의 IRP의 감시가 가능한 장치 및 그 방법을 제공하는 데 있다.The present invention has been made to solve the above problems, and an object thereof is to provide an apparatus and method capable of monitoring the IRP in real time.

상기와 같은 목적을 달성하기 위하여 본 발명은 윈도우 시스템의 저항 없이 IRP를 지연 시키는 방법을 제공하고 지연상태에서 해당 IRP의 정보를 IRP 제어정책 모듈로 전송하는 방법, 전송 후 제어 정책 모듈로부터 IRP처리 방법을 수신하는 방법을 제공한다. In order to achieve the above object, the present invention provides a method for delaying the IRP without resistance of the window system, and transmitting the information of the corresponding IRP to the IRP control policy module in the delay state, and the method for processing the IRP from the control policy module after transmission. Provides a way to receive it.

멀티 프로세스환경에서 동작하는 윈도우 커널 레벨의 환경에서 목적 IRP의 지연으로 여타의 프로세스 동작에 문제가 되지 않도록 하는 방법이며 종래의 실시간 처리방법에 비해 속도저하 문제를 일으키지 않는다. IRP를 지연시키기 위해서 event, semaphore, mutex, critical section등과 같이 윈도우에서 제공하는 동기화 객체를 사용하게 되며 각각의 Target IRP에 대해서 동기화 객체를 각각 생성하여 IRP 지연 기능을 구현한다. IRP 정보를 제어 정책 모듈로 전송하기 위해서 본 발명 에서는 디바이스 드라이버와 분리된 제어 정책 모듈 간에 공유된 event나 apc call, 또는 디바이스 io 제어 code를 사용한다. 제어 정책 모듈로부터 IRP 처리 방법을 수신 후 IRP를 지연한 동기화 객체를 활성화함으로써 IRP를 지연 상태에서 Active 상태로 복귀하고 수신받은 처리방법대로 IRP를 처리하게 된다. 이상과 같이 본 발명에서는 multi 프로세스 환경에서 공유 자원의 동기화를 위해서 사용되는 윈도우 커널 동기화 객체를 IRP의 진행을 지연 지키는 방법으로 활용하였고 각각의 IRP에 대해서 동기화 객체를 할당하여 사용함으로써 각각의 프로세스에 독립적으로 동작하게 구현하는 방법을 제공한다.In the Windows kernel level environment operating in a multi-process environment, the delay of the target IRP does not cause any problem in the process, and it does not cause the problem of speed reduction compared to the conventional real-time processing method. In order to delay IRP, synchronization objects provided by windows such as event, semaphore, mutex, critical section, etc. are used, and IRP delay function is implemented by creating synchronization objects for each target IRP. In order to transmit the IRP information to the control policy module, the present invention uses a shared event, apc call, or device io control code between the device driver and the separated control policy module. After receiving the IRP processing method from the control policy module, by activating the synchronization object that delayed the IRP, the IRP is returned from the delayed state to the active state and the IRP is processed according to the received processing method. As described above, in the present invention, the Windows kernel synchronization object used for synchronization of shared resources in a multi-process environment is used as a method of delaying the progress of the IRP, and the synchronization object is allocated to each IRP to be used independently of each process. It provides a way to make it work.

마이크로소프트사의 윈도우 NT 계열은 도 1과 같이 일반 어플리케이션들이 실행되는 유저 모드와 디바이스 드라이버가 실행되는 커널 모드 그리고 운영체제의 커널로 구분되어 있으며 유저 모드 어플리케이션과 커널 모드의 디바이스 드라이버간에, 또는 커널 모드 드라이버 간의 통신은 IRP(I/O 요청 패킷)라는 구조체를 통하여 이루어진다.Microsoft's Windows NT series is divided into the user mode in which general applications are executed, the kernel mode in which device drivers are executed, and the kernel of the operating system, as shown in FIG. 1, between user mode applications and kernel mode device drivers, or between kernel mode drivers. Communication occurs through a structure called IRP (I / O Request Packet).

이상의 IRP를 관리하는 OS 커널 모듈은 I/O 관리부로 명명된 커널 모듈이며 유저 모드의 어플리케이션에 의한 커널 모드의 자원 접근은 IRP를 통하지 않고는 허용되지 않는다. 윈도우 OS 운영의 근간이 되는 IRP의 제어는 윈도우 OS 구성의 핵심을 이루고 있으며 커널 Level에서만 IRP를 제어할 수가 있다. The OS kernel module that manages the above IRP is a kernel module named the I / O management unit, and the kernel mode resource access by the user mode application is not allowed through the IRP. The control of IRP, which is the foundation of Windows OS operation, forms the core of Windows OS configuration. IRP can be controlled only at the kernel level.

IRP를 제어하기 위한 일반적인 방법은 도 1에서의 윈도우 디바이스 드라이버에 필터 디바이스 드라이버형태로 Attach 시키거나 윈도우 디바이스 드라이버의 디 스패치 루틴을 훅킹하는 훅킹 디바이스 드라이버를 통해서이며, 본 발명은 IRP를 제어하기 위해 사용되는 이상의 방법 이외에 어떠한 형태의 디바이스 드라이버에 적용 가능하다. A general method for controlling the IRP is shown in FIG. Through the hooking device driver attaching to the Windows device driver in the form of a filter device driver or hooking the dispatch routine of the Windows device driver, the present invention can be applied to any type of device driver other than the above method used for controlling the IRP. Do.

도 2는 본 발명의 IRP 실시간 감시 시스템을 개략적으로 도시한 것으로, 크게 윈도우의 디바이스 드라이버로 디스패치되는 IRP를 제어하기 위한 IRP 제어 드라이버부(203)와 해당 드라이버와 통신을 하기 위한 유저 모드의 IRP 제어 정책 모듈부(201)로 구성되며 IRP 제어 드라이버부(203)는 IRP를 지연시키는 지연부(203a)와 IRP정보를 송신하는 송신부(203b), IRP 제어 정책 모듈로부터 IRP 처리 방법을 수신하는 수신부(203c)로 구성되어 있다. 지연부(203a)에서 IRP를 지연시켜 놓은 후 IRP에 대한 정보를 송신부(203b)를 통해서 유저 모드의 IRP 제어 정책 모듈부(201)로 넘겨 준다. IRP 제어 정책 모듈부(201)에서는 주어진 IRP의 유해성 여부를 판단하여 차단 할건지 정상처리 할건지 여부를 IRP 처리 수신부(203c)로 전송한다. 수신부(203c)에서는 지연부에서 IRP를 wait 시키기 위해 사용한 동기화 객체를 활성화 시켜 제어를 IRP 지연부(203a)로 넘긴다. 이때 제어를 넘겨받은 IRP 지연부(203a)에서는 동기화 객체가 활성화되었는지를 확인한 후 IRP를 차단 또는 정상 처리한다.2 schematically illustrates an IRP real-time monitoring system of the present invention, in which an IRP control driver unit 203 for controlling an IRP dispatched to a device driver of a window and an IRP control of a user mode for communicating with a corresponding driver are shown. The IRP control driver unit 203 includes a delay unit 203a for delaying the IRP, a transmitter unit 203b for transmitting IRP information, and a receiver unit for receiving an IRP processing method from the IRP control policy module ( 203c). After delaying the IRP in the delay unit 203a, the information on the IRP is passed to the IRP control policy module unit 201 in the user mode through the transmitter 203b. The IRP control policy module 201 determines whether the given IRP is harmful and transmits whether to block or normal processing to the IRP processing receiver 203c. The receiver 203c activates the synchronization object used by the delay unit to wait for the IRP, and passes control to the IRP delay unit 203a. At this time, the IRP delay unit 203a, which has transferred control, checks whether the synchronization object is activated, and then blocks or normalizes the IRP.

이와 같이 구성된 본 발명의 작용 및 효과를 상세하게 설명하면 다음과 같다. Referring to the operation and effect of the present invention configured as described in detail as follows.

도 3 및 도 4에서와 같이 IRP 제어 드라이버를 구성하는 IRP 지연부에서는 Target IRP를 유저 모드의 IRP 제어 모듈로부터 어떻게 처리되어야 할지를 수신받 기 전까지 해당 IRP를 지연 지킨다.As shown in FIG. 3 and FIG. 4, the IRP delay unit constituting the IRP control driver delays the corresponding IRP until receiving the target IRP from the IRP control module in the user mode.

IRP처리를 지연시키기 위해서 윈도우 동기화 객체를 사용하는데 지연 시키길 원하는 각각의 IRP에 대하여 동기화 객체를 각각 Create하여 윈도우 디바이스 드라이버로 Target IRP를 전송하기 전에 KeWaitForMutexObject(), KeWaitForSingleObject(), KeWaitForMultipleObjects() API중 하나를 선택하여 생성된 동기화 객체가 활성화될 때까지 wait시킨다(S304a). 이상의 API를 사용하기 전에 IRP정보를 저장한 구조체의 포인터를 IRP 송신부로 넘겨준다(S302). 또한, 이상의 API를 사용할 때 최대 wait시간을 위한 Time Out값을 설정해서 무한 wait를 방지할 수 있다(S304b). 생성된 동기화 객체의 활성화는 IRP 처리 수신부에서 활성화 시킨다. Use Windows synchronization objects to delay IRP processing. For each IRP you want to delay, create one synchronization object and send one of the KeWaitForMutexObject (), KeWaitForSingleObject (), KeWaitForMultipleObjects () APIs before sending the target IRP to the Windows device driver. Select to wait until the created synchronization object is activated (S304a). Before using the above API, the pointer of the structure storing the IRP information is transferred to the IRP transmitting unit (S302). In addition, when the above API is used, infinite wait can be prevented by setting a time out value for the maximum wait time (S304b). The activation of the created synchronization object is activated by the IRP processing receiver.

[표 1]은 지연 효과를 만들기 위한 API에 대한 설명이다. [표 1]에서 주어진 커널 객체 중 하나를 선택하여 wait 동작을 수행하면 된다. Table 1 describes the APIs for creating delay effects. In Table 1, select one of the given kernel objects to perform the wait operation.

API 명API name API에서 사용하는 커널 객체Kernel Objects Used by the API 설 명Explanation KeWaitForSingleObject()KeWaitForSingleObject () Event, mutex, semaphore, and timerEvent, mutex, semaphore, and timer 윈도우 동기화 객체가 활성화 될 때 까지 waitWait until the window synchronization object becomes active KeWaitForMultipleObjects()KeWaitForMultipleObjects () event, mutex, semaphore, and timerevent, mutex, semaphore, and timer 윈도우 동기화 객체가 활성화 될 때 까지 waitWait until the window synchronization object becomes active KeWaitForMutexObject()KeWaitForMutexObject () MutexMutex 윈도우 동기화 객체인 Mutex가 활성화 될 때 까지 waitWait until the mutex, a window synchronization object, becomes active

[표 1]에 주어진 API가 Return되어 wait가 풀렸을 때 주어진 동기화 객체의 상태가 Time out이 아닌 정상 활성화가 이루어 졌는지 확인하기 위해서 [표 2]와 같은 API함수를 사용한다.When the API given in [Table 1] is returned and the wait is released, the API functions as shown in [Table 2] are used to check whether the status of the given synchronization object is normally activated, not Time out.

커널 동기화 객체Kernel synchronization object 동기화 객체의 상태 확인Check the status of sync objects 설 명Explanation EventEvent KeReadStateEvent()KeReadStateEvent () event객체의 활성화 상태 확인Check the activation status of the event object MutexMutex KeReadStateMutex()KeReadStateMutex () mutex객체의 활성화 상태 확인Check the activation status of mutex objects SemaphoreSemaphore KeReadStateSemaphore()KeReadStateSemaphore () semaphore객체의 활성화 상태 확인Check activation status of semaphore object TimerTimer KeReadStateTimer()KeReadStateTimer () timer객체의 활성화 상태 확인Check the activation status of timer object

[표 2]의 함수를 사용하여 확인된 객체가 정상 활성화 되었다면 IRP 처리 수신부에서 수신한 내용대로 IRP를 처리한다.If the identified object is normally activated using the function in [Table 2], the IRP processing receiver processes the IRP as received.

IRP 제어 드라이버를 구성하는 IRP 정보 송신부에서는 IRP 지연부에서 넘겨 받은 정보를 IRP 제어 모듈과 공유된 event를 사용하여 IRP 제어 모듈이 해당 정보를 가져 갈수 있도록 알려 준다(S303b). Event를 받은 IRP 제어 모듈에서는 디바이스Io제어() API를 통해서 IRP정보를 IRP 제어 드라이버로부터 가져온다. 유저 모드의 어플리케이션과 커널 모드의 디바이스 드라이버간의 event의 공유를 위해서는 디바이스 드라이버에서 공유할 Event를 먼저 생성시키는데 IoCreateSynchronizationEvent() API를 이용한다. 만들어진 Event는 유저 Level의 어플리케이션에서 OpenEvent()를 통해서 공유 하게 된다. The IRP information transmitting unit constituting the IRP control driver informs the IRP control module to take the information received from the IRP delay unit using the event shared with the IRP control module (S303b). The IRP control module that receives the event gets IRP information from the IRP control driver through the device Io control () API. To share an event between a user-mode application and a kernel-mode device driver, the IoCreateSynchronizationEvent () API is used to first create an event to be shared by the device driver. The created event is shared by OpenEvent () in user level application.

IRP 제어 모듈은 IRP의 유해성 여부를 검사하여 처리방법(차단 또는 정상처리)을 디바이스Io제어() API를 통해서 IRP 제어 드라이버의 IRP 처리 수신부로 전송한다(S303b). The IRP control module checks the harmfulness of the IRP and transmits a processing method (blocking or normal processing) to the IRP processing receiving unit of the IRP control driver through the device Io control () API (S303b).

IRP 제어 드라이버를 구성하는 IRP 처리 수신부에서는 유저 모드의 IRP 제어 모듈로부터 넘겨 받은 IRP 처리 방법을 적용하기 위해서 IRP 지연부에서 만들어서 IRP 정보 송신부로 넘겨준 구조체에 처리 방법을 Write한다. 이후에 IRP 지연에 사용된 동기화 객체를 [표 3]의 API를 사용하여 활성화 시켜 제어를 IRP 지연부로 넘겨준다(S304d). 제어를 넘겨 받은 IRP 지연부에서는 IRP를 처리하고 동기화 객체를 삭제하여 하나의 IRP에 대한 One Cycle을 종료하게 된다. 이상의 Cycle이 반복하여 각각의 IRP에 적용 되어 진다.In order to apply the IRP processing method received from the IRP control module in the user mode, the IRP processing receiving unit constituting the IRP control driver writes the processing method in the structure made by the IRP delay unit and passed to the IRP information transmitting unit. Thereafter, the synchronization object used for the IRP delay is activated by using the API of [Table 3], and the control is transferred to the IRP delay unit (S304d). The IRP delay unit that takes over control terminates the one cycle for one IRP by processing the IRP and deleting the synchronization object. The above cycle is repeated and applied to each IRP.

동기화 객체 Synchronization object 동기화 객체를 활성화 시키는 APIAPIs to activate synchronization objects 설 명Explanation EventEvent KeSetEvent()KeSetEvent () Event를 signaled state로 변경 Change event to signaled state MutexMutex KeReleaseMutex()KeReleaseMutex () Mutex를 signaled state로 변경 Change mutex to signaled state SemaphoreSemaphore KeReleaseSemaphore()KeReleaseSemaphore () Semaphore를 signaled state로 변경 Change Semaphore to signaled state TimerTimer KeSetTimer()KeSetTimer () Timer를 signaled state로 변경 Change Timer to signaled state

상술한 바와 같이 본 발명에 따르면, 종래의 디바이스 드라이버개발 방법처럼 하나의 디바이스 드라이버에 IRP 처리 모듈이 통합되어 개발됨으로서 발생할 수 있는 여러 문제점을 해결 할 수 있도록 디바이스 드라이버와 IRP 처리 모듈을 따로 분리 할 수 있게 한다.As described above, according to the present invention, the device driver and the IRP processing module can be separated separately to solve various problems which may occur due to the integrated development of the IRP processing module in one device driver as in the conventional device driver development method. To be.

또한, IRP처리 방법이 변경되더라도 유저 모드의 어플리케이션을 변경해서 손쉽게 디바이스 드라이버에 적용 할 수 있게 해줌으로서 제품 형상관리나 디바이스 드라이버안정성 확보, 신속한 제품 수정 변경 등을 손쉽게 이루어 낼 수 있다.In addition, even if the IRP processing method is changed, the user mode application can be changed and easily applied to the device driver, so that product configuration management, device driver stability, and rapid product modification can be easily performed.

Claims (11)

입출력 요청 패킷(I/O Request Packet, 'IRP')을 실시간으로 감시하는 장치에 있어서,In the device for monitoring the I / O Request Packet (IRP) in real time, 운영체제로부터 전송된 IRP를 지연시킨 후 상기 IRP에 대한 정보를 송수신 하는 IRP 제어 드라이버부; 및An IRP control driver unit for transmitting and receiving information on the IRP after delaying the IRP transmitted from an operating system; And 상기 IRP에 대한 정보를 수신한 후 상기 IRP에 대한 유해성 여부를 판단하여 차단 여부를 결정하는 IRP 제어 정책 모듈부를 포함하는 IRP 실시간 감시장치.After receiving the information on the IRP IRP real-time monitoring device including an IRP control policy module for determining whether to block by determining whether or not harmful to the IRP. 제 1항에 있어서, 상기 IRP 제어 드라이버부는The method of claim 1, wherein the IRP control driver unit 유해성 여부를 확인할 때 까지 IRP의 전달을 지연시키는 IRP 지연부;An IRP delay unit that delays the delivery of the IRP until it is confirmed whether harmful; 상기 IRP 지연부에서 확인된 IRP에 대한 정보를 IRP 제어 정책 모듈부로 송신하는 IRP 정보 송신부; 및An IRP information transmitter for transmitting information on the IRP identified by the IRP delay unit to an IRP control policy module unit; And IRP 제어 정책 모듈부로부터 IRP 처리방법을 수신한 후 이를 상기 IRP 지연부에 전달하는 IRP 처리 수신부를 포함하는 것을 특징으로 하는 IRP 실시간 감시장치.IRP real-time monitoring device comprising an IRP processing receiving unit for receiving the IRP processing method from the IRP control policy module unit and delivers it to the IRP delay unit. 입출력 요청 패킷(I/O Request Packet, 'IRP')을 실시간으로 감시하는 방법에 있어서,In the method for monitoring the I / O Request Packet (IRP) in real time, A) 디스패치로 IRP를 수신하는 단계;A) receiving an IRP with dispatch; B) IRP에 대한 정보를 IRP 제어모듈부로 전달하는 단계;B) transmitting information on the IRP to the IRP control module unit; C) IRP처리 관련 정보를 수신할 때 까지 대기하는 단계; 및C) waiting for receiving IRP processing related information; And D) IRP 처리결과에 따라 IRP 차단여부를 결정하는 단계를 포함하는 IRP 실시간 감시방법.D) IRP real-time monitoring method comprising the step of determining whether to block the IRP according to the IRP processing result. 제 3항에 있어서, 상기 단계 B)는The method of claim 3, wherein step B) B1) IRP에 대한 정보 구조체 생성후 IRP 정보 송신부로 전달하는 단계;B1) generating an information structure for the IRP and passing it to the IRP information transmitter; B2) IRP정보 구조체를 유저모드 어플리케이션이 가져가도록 공유 이벤트를 생성하는 단계; 및B2) generating a sharing event for the user mode application to take the IRP information structure; And B3) 유저 모드의 IRP 제어모듈부가 IRP 정보를 토대로 처리방법을 IRP 처리수신부로 전달하는 단계를 포함하는 것을 특징으로 하는 IRP 실시간 감시방법.B3) the IRP real-time monitoring method comprising the step of transmitting the processing method to the IRP processing receiver by the IRP control module unit of the user mode based on the IRP information. 제 4항에 있어서, The method of claim 4, wherein B4) 동기화 객체 활성화 여부를 판단하고 그렇지 않은 경우 동기화 객체를 활성화 하는 단계를 더 포함하는 것을 특징으로 하는 IRP 실시간 감시방법. B4) determining whether to activate the synchronization object, and if not, further comprising the step of activating the synchronization object. 제 3항에 있어서, 상기 단계 C)는 The method of claim 3, wherein step C) C1) 원도우 동기화 객체를 생성한 후 활성화될 때 까지 대기단계; 및C1) waiting for activation after creating a window synchronization object; And C2) 타임아웃인지를 판단하는 단계를 포함하는 것을 특징으로 하는 IRP 실시간 감시방법.C2) IRP real-time monitoring method comprising the step of determining whether the timeout. 제 3항에 있어서, 상기 단계 D)는The method of claim 3, wherein step D) IRP처리결과가 차단으로 되어 있으면 IRP를 차단하고, 그렇지 않으면 IRP를 정상처리하는 것을 특징으로 하는 IRP 실시간 감시방법.IRP real-time monitoring method characterized in that if the IRP processing result is blocked, block the IRP, otherwise IRP normal processing. 제 3항에 있어서, 상기 단계 C)는The method of claim 3, wherein step C) IRP를 정상 처리하여 윈도우 디바이스 드라이버로 제어를 넘기기 전 윈도우 동기화 객체인 event, semaphore, mutex, timer중 하나를 선택하여 생성한 후 KeWaitForSingleObject(), KeWaitForMultipleObjects(), KeWaitForMutexObject() API의 인자로 넘겨주어 생성된 동기화 객체가 활성화 될 때 까지 IRP의 진행을 Wait 시키는 것을 특징으로 하는 IRP 실시간 감시방법.Create and select one of the window synchronization objects event, semaphore, mutex, and timer before passing the control to the Windows device driver by passing the IRP to the KeWaitForSingleObject (), KeWaitForMultipleObjects (), KeWaitForMutexObject () API. IRP real-time monitoring method characterized by waiting for the progress of the IRP until the synchronized object is activated. 제 8항에 있어서, The method of claim 8, KeWaitForSingleObject(), KeWaitForMultipleObjects(), KeWaitForMutexObject() API를 사용함에 있어서 인자로 Time Out값을 최대 지연 시간으로 설정하고 Time Out이 발생 하였을 때는 활성화 되기를 기다리는 동기화 객체가 event 인경우는 KeSetEvent() API로, Mutex인 경우는 KeReleaseMutex() API로, Semaphore인 경우는 KeReleaseSemaphore() API로, Timer인 경우는 KeSetTimer() API로 활성화 상태로 만들어 줌으로서 IRP 처리 수신부에서 해당 동기화 객체의 상태를 보고 Time out이 발생하였는지 여부를 확인하는 것을 특징으로 하는 IRP 실시간 감시방법.When using the KeWaitForSingleObject (), KeWaitForMultipleObjects (), KeWaitForMutexObject () API, set the Time Out value as the maximum delay time and use the KeSetEvent () API if the synchronization object to be activated when the Time Out occurs is an event. In the case of KeReleaseMutex () API, Semaphore in case of KeReleaseSemaphore () API, and in case of Timer, it is activated by KeSetTimer () API. IRP real-time monitoring method, characterized in that the check. 제 4항에 있어서, 상기 단계 B2)의 공유 이벤트를 발생시키는 방법은The method of claim 4, wherein the method of generating a sharing event of step B2) 커널 모드 에서 IoCreateSynchronizationEvent() API를 이용해서 Event를 생성하고 유저 모드에서 OpenEvent()함수를 사용하여 Event를 Open함으로서 Event를 공유하여 사용하고 해당 event는 IRP 지연부에서 IRP 정보 구조체의 포인터를 넘겨 받았을 때 활성화 시켜 유저 모드의 어플리케이션이 구조체를 가져 갈 수 있도록 알려주고 IRP 정보 구조체 내용을 공유하기 위해서 해당 구조체 포인터를 디바이스Io제어() API를 이용하여 공유하는 것을 특징으로 하는 IRP 실시간 감시방법.When creating an event using the IoCreateSynchronizationEvent () API in kernel mode and opening the event using the OpenEvent () function in user mode, the event is shared and used when the event is passed a pointer to an IRP information structure from the IRP delay unit. IRP real-time monitoring method characterized by sharing the structure pointer by using device Io control () API to inform user mode application to take structure and enable sharing of IRP information structure contents. 제 5항에 있어서, 상기 단계 B5)에서 동기화 객체를 활성하하는 방법은 유저 모드의 IRP 제어 모듈로부터 디바이스Io제어() API를 통해서 넘겨 받은 IRP 처리 방법에 대하여 지연 되어진 IRP의 정보 구조체에 해당 처리 방법을 기록한 후 해당 IRP를 지연 시키기 위해서 생성된 동기화 객체의 상태를 Event인 경우는 KeReadStateEvent() API로, Mutex인 경우는 KeReadStateMutex() API로, Semaphore인 경우는 KeReadStateSemaphore() API로, Timer인 경우는 KeReadStateTimer() API를 이용하여 확인 하여 활성화 되지 않았다면 활성화 시켜서 IRP의 지연상태를 해제하는 것을 특징으로 하는 IRP 실시간 감시방법.The method according to claim 5, wherein the method of activating the synchronization object in the step B5) corresponds to the information structure of the IRP delayed with respect to the IRP processing method passed from the IRP control module in the user mode through the device Io control API API. After recording the method, the state of the synchronization object created to delay the IRP is KeReadStateEvent () API for Event, KeReadStateMutex () API for Mutex, KeReadStateSemaphore () API for Semaphore, and Timer IRP real-time monitoring method characterized in that by using the KeReadStateTimer () API to check if it is not activated by activating the delay state of the IRP.
KR1020060084332A 2006-09-01 2006-09-01 System for real-time watching irp dispatching to windows device driver and method thereof KR100800090B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060084332A KR100800090B1 (en) 2006-09-01 2006-09-01 System for real-time watching irp dispatching to windows device driver and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060084332A KR100800090B1 (en) 2006-09-01 2006-09-01 System for real-time watching irp dispatching to windows device driver and method thereof

Publications (1)

Publication Number Publication Date
KR100800090B1 true KR100800090B1 (en) 2008-02-01

Family

ID=39342049

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060084332A KR100800090B1 (en) 2006-09-01 2006-09-01 System for real-time watching irp dispatching to windows device driver and method thereof

Country Status (1)

Country Link
KR (1) KR100800090B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032508A (en) * 2019-03-04 2019-07-19 百富计算机技术(深圳)有限公司 Function driver test method, terminal device and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020033859A (en) * 2000-10-30 2002-05-08 송영호 Linux security kernel
KR20020091340A (en) * 2001-05-30 2002-12-06 라인식 real time Intrusion Detection System based Linux kernel
KR20040042731A (en) * 2002-11-15 2004-05-20 엘지엔시스(주) File and registry monitoring method for host system
KR20040048466A (en) * 2002-12-03 2004-06-10 한국전자통신연구원 Intrusion detection system and method based on kernel module in security gateway system for high-speed intrusion detection on network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020033859A (en) * 2000-10-30 2002-05-08 송영호 Linux security kernel
KR20020091340A (en) * 2001-05-30 2002-12-06 라인식 real time Intrusion Detection System based Linux kernel
KR20040042731A (en) * 2002-11-15 2004-05-20 엘지엔시스(주) File and registry monitoring method for host system
KR20040048466A (en) * 2002-12-03 2004-06-10 한국전자통신연구원 Intrusion detection system and method based on kernel module in security gateway system for high-speed intrusion detection on network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110032508A (en) * 2019-03-04 2019-07-19 百富计算机技术(深圳)有限公司 Function driver test method, terminal device and storage medium
CN110032508B (en) * 2019-03-04 2022-05-27 百富计算机技术(深圳)有限公司 Function driver test method, device, terminal device and storage medium

Similar Documents

Publication Publication Date Title
CN106547618B (en) Communication system and electronic equipment
CN106548077B (en) Communication system and electronic equipment
CN106547633B (en) Multi-channel communication system and electronic device
EP2003553A1 (en) Input/output control apparatus, input/output control system, and input/output control method
WO2009147802A1 (en) Priority controller and priority control method
CN109313623B (en) Method and device for switching serial port data transmission state
CN106034120B (en) method and system for multi-process access to trusted application
EP3402172A1 (en) A data processing system
US8959534B2 (en) Enabling legacy applications to achieve end-to-end communication with corresponding legacy device services
KR100800090B1 (en) System for real-time watching irp dispatching to windows device driver and method thereof
KR101498965B1 (en) A system and method for isolating the internet and the intranet by using the virtual machines
US6507861B1 (en) System and method for avoiding deadlock in a non-preemptive multi-threaded application running in a non-preemptive multi-tasking environment
US8214449B2 (en) Method and apparatus for switching communication channel in shared memory communication environment
US6128679A (en) Computer for executing I/O instructions, by emulation, in a foreign application program wherein the emulator result thread is blocked from running between processes
WO2023185478A1 (en) Method and apparatus for communication between application programs, and storage medium and program product
US20210392117A1 (en) Tunnel Portals Between Isolated Partitions
US12112206B2 (en) Control device for controlling multiple applications based on priority-based message encryption arbitration
KR101119458B1 (en) Asynchronous communications technique
WO1998043174A1 (en) Method for emulating video port manager interface
JPH08110883A (en) Access method for non-scsi device
JP2000099349A (en) Inter-processing task application control data flow
JPH06274436A (en) Data transfer system
CN115604372A (en) Method and device for keeping protocol message uninterrupted in warm start process
CN113176957A (en) Remote application automation system based on RPC
JPH11167528A (en) Time-out control method for data processing system

Legal Events

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

Payment date: 20110125

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee