KR101011145B1 - 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체 - Google Patents

응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체 Download PDF

Info

Publication number
KR101011145B1
KR101011145B1 KR1020100056506A KR20100056506A KR101011145B1 KR 101011145 B1 KR101011145 B1 KR 101011145B1 KR 1020100056506 A KR1020100056506 A KR 1020100056506A KR 20100056506 A KR20100056506 A KR 20100056506A KR 101011145 B1 KR101011145 B1 KR 101011145B1
Authority
KR
South Korea
Prior art keywords
application module
program
user
operating system
module
Prior art date
Application number
KR1020100056506A
Other languages
English (en)
Inventor
김종영
이종일
Original Assignee
주식회사 파수닷컴
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 파수닷컴 filed Critical 주식회사 파수닷컴
Priority to KR1020100056506A priority Critical patent/KR101011145B1/ko
Priority to PCT/KR2010/008744 priority patent/WO2011159005A1/ko
Priority to US13/823,642 priority patent/US9098701B2/en
Priority to EP10853306.8A priority patent/EP2595052A4/en
Application granted granted Critical
Publication of KR101011145B1 publication Critical patent/KR101011145B1/ko

Links

Images

Classifications

    • 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
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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
    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체가 개시된다. 본 발명에 따른 응용 모듈 삽입 장치의 바람직한 실시예는, 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받기 위한 제1콜백 함수 및 사용자가 실행을 명령한 프로그램에 대응하는 이미지의 구동여부를 통지받기 위한 제2콜백 함수를 운영 체제에 등록하는 함수등록부, 제1콜백 함수를 통해 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는 프로세스 정보 획득부, 제2콜백 함수를 통해 파악된 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되면 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스를 응용 모듈 인젝션 대상 프로세스로 선정하는 프로세스 확인부, 응용 모듈 인젝션 대상 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 제1엔트리 포인트를 삽입되는 응용 모듈의 제2엔트리 포인트로 변경하는 컨텍스트 변경부, 및 응용 모듈 인젝션 대상 프로세스에 응용 모듈을 삽입하는 응용 모듈 삽입부를 구비한다. 본 발명에 따르면, 단일한 방법을 사용하여 예측 가능한 단일 시점에 모든 프로세스에 응용 모듈을 삽입할 수 있다.

Description

응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체{Device for injecting an application module, computing device having a function of injecting an application module and recoding medium recoding program for executing a method for injecting an application module}
본 발명은 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체에 관한 것으로, 보다 상세하게는 실행 프로그램의 실행과정에서 해당 실행 프로그램과 관련된 프로세스의 영역에 특정한 기능을 가진 응용 모듈을 삽입하는 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체에 관한 것이다.
소스 코드를 보유하고 있지 않거나 시판되고 있는 응용 프로그램에 임의의 특정한 기능(예를 들면, 악성 코드 탐지 기능, 디지털 저작권 관리 기능 등)을 추가하기 위해서는 후킹이라는 기술을 사용하여야 한다. 이때 응용 프로그램에 특정한 기능 모듈을 해당 응용 프로그램에 대응하는 프로세스의 주소 공간으로 침투시켜주는 동작을 삽입 또는 인젝션(injection)이라 한다.
한편 보호 모드 환경의 운영체제에서 응용 프로그램에 대응하는 프로세스의 영역에 특정한 기능을 수행하는 모듈을 인젝션하기 위해 기존에 제안된 방법에는 레지스트리를 이용하는 방법(AppInt_DLLs), 윈도우 후킹 함수를 이용하는 방법(SetWindowsHook), 리모트 스레드(Remote Thread)를 이용하는 방법(CreatRemoteThread), 커널 콜백 함수를 이용하는 방법(Process Create Notify Callback + CreateRemoteThread) 등이 있다. 그러나 레지스트리를 이용하는 방법은 User32.dll을 사용하는 응용 프로그램에 대해서만 적용할 수 있고, 윈도우 후킹 함수를 이용하는 방법은 그래픽 사용자 인터페이스(Graphic User Interface : GUI)를 사용하지 않는 명령형 실행 프로그램에는 적용할 수 없다는 문제가 있다. 또한 리모트 스레드를 이용하는 방법은 새로 실행되는 프로그램에는 적용되지 않으며, 커널 콜백 함수를 이용하는 방법은 시점 문제로 인한 예외 사항이 발생한다는 문제가 있다. 나아가 앞서 언급한 종래의 인젝션 방법은 VISTA, Windows7 등과 같은 운영체제에 대해서는 사용자 권한 제어(User Account Control : UAC) 기능에 대한 별도의 대응이 필요한 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는, 응용 프로그램의 실행과 관련한 운영 체제의 동작시점과 상황에 무관하게 특정한 기능을 수행하는 모듈을 응용 프로그램에 대응하는 프로세스의 특정 공간에 인젝션할 수 있는 응용 모듈 삽입 장치 및 응용 모듈 삽입 기능을 구비한 정보처리장치를 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 응용 프로그램의 실행과 관련한 운영 체제의 동작시점과 상황에 무관하게 특정한 기능을 수행하는 모듈을 응용 프로그램에 대응하는 프로세스의 특정 공간에 인젝션할 수 있는 정보처리장치의 응용 모듈 삽입 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 응용 모듈 삽입 장치의 바람직한 실시예는, 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받기 위한 제1콜백 함수 및 상기 사용자가 실행을 명령한 프로그램에 대응하는 이미지의 구동여부를 통지받기 위한 제2콜백 함수를 상기 운영 체제에 등록하는 함수등록부; 상기 제1콜백 함수를 통해 상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는 프로세스 정보 획득부; 상기 제2콜백 함수를 통해 파악된 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되면 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스를 응용 모듈 인젝션 대상 프로세스로 선정하는 프로세스 확인부; 상기 응용 모듈 인젝션 대상 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 제1엔트리 포인트를 삽입되는 응용 모듈의 제2엔트리 포인트로 변경하는 컨텍스트 변경부; 및 상기 응용 모듈 인젝션 대상 프로세스에 상기 응용 모듈을 삽입하는 응용 모듈 삽입부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 컴퓨팅 장치의 바람직한 실시예는, 운영 체제 및 인젝션 모듈을 실행하는 프로세서; 및 상기 운영 체제 및 상기 인젝션 모듈이 저장되는 메모리;를 구비하며, 상기 인젝션 모듈은, 상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받기 위한 제1콜백 함수 및 상기 사용자가 실행을 명령한 프로그램에 대응하는 이미지의 구동여부를 통지받기 위해 상기 제2콜백 함수를 상기 운영 체제에 등록하는 함수등록모듈; 상기 제1콜백 함수를 통해 상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는 프로세스 정보 획득모듈; 상기 제2콜백 함수를 통해 파악된 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되면, 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스를 응용 모듈 인젝션 대상 프로세스로 선정하는 프로세스 확인모듈; 상기 응용 모듈 인젝션 대상 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 제1엔트리 포인트를 삽입되는 응용 모듈의 제2엔트리 포인트로 변경하는 컨텍스트 변경모듈; 및 상기 응용 모듈 인젝션 대상 프로세스에 상기 응용 모듈을 삽입하는 응용 모듈 삽입모듈;을 구비한다.
상기의 또 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체의 바람직한 실시예는, (a) 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는 단계; (b) 상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 이미지의 구동여부를 통지받는 단계; (c) 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되면, 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스를 응용 모듈 인젝션 대상 프로세스로 선정하는 단계; (d) 상기 응용 모듈 인젝션 대상 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 제1엔트리 포인트를 삽입되는 응용 모듈의 제2엔트리 포인트로 변경하는 단계; 및 (e) 상기 응용 모듈 인젝션 대상 프로세스에 상기 응용 모듈을 삽입하는 단계;를 포함하는 응용 모듈 삽입 방법을 컴퓨터에서 실행시키기 위한 프로그램을 저장한다.
본 발명에 따른 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체에 의하면, 운영 체제의 프로세스 생성 흐름을 기초로 특정한 기능을 수행하는 모듈을 실행되는 응용 프로그램에 대응하는 프로세스의 특정 공간에 인젝션함으로써, 별도의 사용자 모드에서 동작하는 별도 에이전트의 도움없이 특정한 기능을 수행하는 모듈의 인젝션이 가능하다. 또한 운영 체제이 윈도우일 경우에 부팅과 동시에 인젝션 모듈을 동작시킬 수 있으며, 기존의 인젝션 방식과의 충돌을 최소화할 수 있다. 나아가 멀티 코어 중앙처리장치에 대응할 수 있으며, 운영 체제의 종류 및 처리 능력과 관계없이 동일한 방법에 의해 응용 모듈을 인젝션할 수 있다. 또한 단일한 방법을 사용하여 예측 가능한 단일 시점에 모든 프로세스에 응용 모듈을 삽입할 수 있어 응용 모듈 인젝션을 안정적으로 수행할 수 있다.
도 1은 마이크로소프트 윈도우 운영 체제가 사용자로부터 응용 프로그램의 실행명령을 입력받은 경우에 Win32 API의 프로세스 생성 과정을 도시한 도면,
도 2는 종래의 모듈 인젝션 구조를 도시한 도면,
도 3은 본 발명에 따른 응용 모듈 삽입 장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 4는 본 발명에 따른 응용 모듈 삽입 장치에서의 응용 모듈 삽입 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도,
도 5는 본 발명에 따른 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치에 대한 바람직한 실시예의 구성을 도시한 도면, 그리고,
도 6은 본 발명에 따른 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치에서 응용 모듈을 인젝션하는 과정을 도시한 도면이다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체의 바람직한 실시예에 대해 상세하게 설명한다.
본 발명에 대한 설명시, "컴포넌트(component)" 및 "시스템(system)"이라는 용어는 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행중인 소프트웨어 중 어느 하나에 해당하는 컴퓨터 관련 실체를 의미한다. 예를 들어, 컴포넌트는 프로세서 상에서 동작하는 프로세스, 객체, 실행가능한 것, 실행 스레드, 프로그램, 컴퓨터일 수 있으나, 이에 한정되지 않으며, 일 예로 서버 상에서 작동하는 애플리케이션 및 서버 모두가 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스, 실행 스레드 등에 상주할 수 있고, 컴포넌트는 하나의 컴퓨터상에 존재하거나 다수의 컴퓨터에 분산되어 존재할 수 있다.
API(Application Programming Interface)는 응용 프로그램이 운영체제가 제공하는 기능을 사용할 수 있도록 하는 인터페이스로서, 일예로 Win32 API는 응용 프로그램에서 마이크로소프트 윈도우 운영 체제가 제공하는 수천 개의 함수를 사용할 수 있도록 한다. 이하에서는 편의상 마이크로소프트사의 윈도우 운영 체제에서 제공하는 Win32 API를 예로 들어 설명하나, 본 발명은 마이크로소프트 윈도우 운영체제를 전제로 하지 않는다. 따라서 본 발명은 운영 체제의 종류와 관계없이 본 발명이 적용된 해당 운영 체제에서 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성 흐름에 대응하여 동작한다.
도 1은 마이크로소프트 윈도우 운영 체제가 사용자로부터 응용 프로그램의 실행명령을 입력받은 경우에 Win32 API의 프로세스 생성 과정을 도시한 도면이다.
도 1을 참조하면, 사용자가 특정한 프로그램을 실행하도록 명령을 입력하면, 운영 체제는 해당 프로그램의 실행 파일(즉, 확장자가 'exe'인 파일)을 열고 섹션 개체를 생성한다(S100). 다음으로 운영 체제는 해당 프로그램에 대응하는 실행 프로세스 개체를 생성한다(S110). 이 과정에서 운영 체제는 프로세스 커널 개체인 EPROCESS(Executive Process)를 할당하고 초기화한다. 또한 운영 체제는 초기 프로세스 주소 공간을 생성한 후 커널이 스레드 스케줄링을 하기 위해 필요한 기본 정보를 담고 있는 개체인 KPRCESS(Kernal Process)를 할당하고 초기화하고, 프로세스 주소 공간의 설정을 종료한다. 또한 운영 체제는 EPROCESS 개체와 연관된 데이터 구조체로서 시스템 공간에 존재하는 프로세스 환경 개체인 PEB(Process Environment Block)을 초기화한 후 실행 프로세스 개체에 대한 설정을 종료한다.
다음으로 운영 체제는 초기 스레드 개체를 생성한다(S120). 이때 운영 체제는 ETHREAD(Exevutable Thread), TEB(Thread Environment Block) 및 KTHREAD(Kernal Thread)를 할당하고 초기화한다. 또한 운영 체제는 스택(Stack)과 컨텍스트(Context)를 생성하고 초기화한다. 다음으로 운영 체제는 새롭게 생성된 실행 프로세스 개체와 관련된 정보를 Win32 서브 시스템에 통지한다(S130). 이때 운영 체제로부터 Win32 서브 시스템에 통지되는 데이터는 프로세스와 스레드 핸들, PPID(Parent Process ID) 및 플래그와 같은 프로세스 관련 정보이다. Win32 서브 시스템은 윈도우의 기본적인 서브 시스템으로서, 32비트 응용 프로그램이 동작할 수 있게 도와 주고 기본적인 윈도우의 사용자 인터페이스를 제공한다. 다음으로 운영 체제는 초기 스레드를 시작한다(S140). 이 과정에서 운영 체제는 커널 스택의 초기 컨텍스트를 구축하고 시작한다. 다음으로 운영 체제는 새로운 프로세스의 컨텍스트에서 프로세스 초기화와 이미지 초기화를 수행한다(S150). 마지막으로 운영 체제는 사용자가 실행을 명령한 프로그램에 대해 요구되는 DLL들을 로드하고, DLL 엔트리 포인트를 호출하여 프로그램을 실행한다(S160).
한편 종래의 모듈 인젝션 기법은 유저 모드에서 동작하는 별도의 독립적인 인젝션 모듈에 의해 사용자가 실행을 명령한 응용 프로그램에 특정한 기능을 수행하는 모듈을 인젝션한다. 도 2에는 이와 같은 종래의 모듈 인젝션 구조가 도시되어 있다. 도 2를 참조하면, 사용자가 특정한 응용 프로그램의 실행을 명령하면, 응용 계층(210)은 해당 명령을 운영 체제(220)에 전달한다(S210). 다음으로 드라이버(230)는 프로세스 생성 콜백을 통해 운영 체제(220)로부터 특정한 응용 프로그램에 대응하는 프로세스의 생성사실을 확인한다(S220). 다음으로 드라이버(230)는 장치 입출력 제어를 이용하여 유저 모드에서 동작하는 인젝션 에이전트(240)에 프로세스 생성사실을 통지한다(S230). 다음으로 인젝션 에이전트(240)는 장치 입출력 제어를 통해 드라이버(230)로부터 프로세스 생성사실을 통지받으면(S240), 원격 스레드 생성 함수를 이용하여 특정한 기능을 수행하는 모듈을 인젝션한다(S250).
이상과 같이 종래의 모듈 인젝션 기법에서 인젝션 모듈은 유저 모드에서 동작하므로 별도의 에이전트가 필요하다. 또한 인젝션 모듈이 동작하기 이전에 이미 시작된 프로세스 또는 빨리 실행되고 종료되는 프로세스에 모듈을 인젝션하는 것이 불가능하다는 문제가 있다. 본 발명은 이와 같은 종래의 모듈 인젝션 기법의 문제점을 해결하기 위해 커널 모드에서 동작하는 인젝션 모듈에 의해 운영 체제에 의한 프로세스 생성 통지와 이미지 로드 통지를 이용하여 특정한 기능을 수행하는 모듈을 인젝션하는 구조를 취한다.
도 3은 본 발명에 따른 응용 모듈 삽입 장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명에 따른 응용 모듈 삽입 장치(300)는, 함수등록부(310), 프로세스 정보 획득부(320), 프로세스 확인부(330), 컨텍스트 변경부(340), 응용 모듈 삽입부(350) 및 메모리(360)를 포함한다.
함수등록부(310)는 본 발명이 적용되는 컴퓨터와 같은 정보처리장치의 메모리에 로딩되어 동작하는 운영 체제로부터 사용자가 특정한 프로그램의 실행명령 입력시 해당 프로그램에 대응하는 프로세스의 생성여부를 통지받기 위한 콜백 함수(즉, Process Create Notify Callback) 및 해당 프로그램에 대응하는 이미지의 구동여부를 통지받기 위한 콜백 함수(Image Load Notify Callback)를 운영 체제에 등록한다. 이때 ProcessCallback 함수는 특별한 조건없이 프로세스 생성시 생성되는 프로세스의 정보를 저장하기 위한 프로세스 저장 공간 할당 및 정보 저장 처리를 수행하는 함수이다.
프로세스 정보 획득부(320)는 운영 체제에 등록된 콜백 함수(즉, Process Create Notify Callback)를 통해 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는다.
프로세스 확인부(330)는 운영 체제에 등록된 콜백 함수(즉, Image Load Notify Callback)를 통해 운영 체제로부터 사용자가 실행을 명령한 프로그램의 형식을 확인한다. Image Load Notify Callback 함수는 사용자가 수행을 명령한 프로그램의 파일 포맷(즉, exe, dll, txt, dat 등과 같은 파일 형식)을 콜백받기 위한 함수이다. 따라서 프로세스 확인부(330)는 운영 체체로부터 사용자가 실행을 명령한 프로그램의 형식을 확인한 후 사전에 설정된 형식의 프로그램(예를 들면, 파일 포맷이 exe인 프로그램)이 실행된 경우에만 응용 모듈의 인젝션을 수행하도록 제어한다. 또한 프로세스 확인부(330)는 운영 체제로부터 입력받은 프로세스가 이미 응용 모듈의 인젝션이 완료된 프로세스인지 여부를 확인한다. 운영 체제에 콜백 함수를 등록하면, 프로세스 정보 획득부(320)는 운영 체제로부터 모든 프로세스의 생성정보를 통지받게 된다. 따라서 새롭게 운영 체제로부터 통지받은 프로세스에 이미 응용 모듈이 인젝션되었다면, 중복적으로 응용 모듈을 인젝션할 필요가 없다. 이러한 문제를 해결하기 위해 프로세스 확인부(330)는 인젝션이 완료된 프로세스의 목록을 참조하여 콜백 함수에 의해 운영 체제로부터 통지받은 프로세스 생성정보 중에서 아직 응용 모듈 인젝션이 수행되지 않은 프로세스만을 선택적으로 관리한다. 이때 인젝션이 완료된 프로세스의 목록은 메모리(360)에 저장된다.
컨텍스트 변경부(340)는 사용자가 실행을 명령할 프로그램에 대해 생성된 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 엔트리 포인트를 삽입되는 응용 모듈의 엔트리 포인트로 변경한다. 이 과정에서 컨텍스트 변경부(340)는 운영 체제가 제공하는 컨텍스트 정보의 획득을 위한 함수를 이용하여 해당 컨텍스트에 포함되어 있는 엔트리 포인트에 관한 정보를 획득하며, 컨텍스트의 정보의 변경을 위한 함수를 이용하여 해당 컨텍스트의 엔트리 포인트를 변경한다. 또한 컨텍스트 변경부(340)는 현재 프로세스의 주소 공간에 응용 모듈에 대응하는 코드(예를 들면, 어셈블 언어로 작성된 소스 코드)를 삽입하기 위한 저장공간을 확보하며, 모듈 인젝션 코드를 생성하여 해당 저장 공간에 복사한다. 그리고 컨텍스트 변경부(340)는 해당 컨텍스트에 저장된 시작 주소를 변경하며, 시작 주소와 관련된 스레드 정보를 변경한다.
응용 모듈 삽입부(350)는 사용자가 실행을 명령한 프로그램에 대응하는 프로세스에 응용 모듈을 인젝션한다. 이때 삽입되는 응용 모듈은 프로그램에 대한 디지털 저작권의 관리를 위한 코드, 바이러스 검출을 위한 코드 등이 될 수 있다. 또한 인젝션되는 응용 모듈은 필수적으로 컨텍스트 변경부(340)가 획득한 생성된 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 원래의 엔트리 포인트를 호출하는 루틴을 포함한다. 이와 같은 응용 모듈의 인젝션을 통해 운영 체제는 컨텍스트 변경부(340)에 의해 변경된 엔트리 포인트를 호출하여 인젝션된 응용 모듈을 로드한다. 그리고 다음으로 인젝션된 응용 모듈이 사용자가 실행을 명령한 프로그램에 대응하는 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 원래의 엔트리 포인트를 호출하게 된다.
도 4는 본 발명에 따른 응용 모듈 삽입 장치에서의 응용 모듈 삽입 방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
도 4를 참조하면, 함수등록부(310)는 본 발명이 적용되는 컴퓨터와 같은 정보처리장치의 메모리에 로딩되어 동작하는 운영 체제로부터 프로세스의 생성여부를 통지받기 위한 콜백 함수 및 해당 프로그램에 대응하는 이미지의 구동여부를 통지받기 위한 콜백 함수를 운영 체제에 등록한다(S400). 다음으로 프로세스 정보 획득부(320)는 운영 체제에 등록된 콜백 함수를 통해 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는다(S410).
다음으로 프로세스 확인부(330)는 운영 체제에 등록된 콜백 함수를 통해 운영 체제로부터 사용자가 실행을 명령한 프로그램의 형식을 확인한다(S420). 만약 사용자가 실행을 명령한 프로그램이 응용 모듈의 삽입 대상이 아닌 것으로 확인되면, 응용 모듈의 삽입 동작은 종료된다. 이와 달리 사용자가 실행을 명령한 프로그램이 응용 모듈의 삽입 대상인 것으로 확인되면, 프로세스 확인부(330)는 운영 체제로부터 입력받은 프로세스가 이미 응용 모듈의 인젝션이 완료된 프로세스인지 여부를 확인한다(S430). 만약 운영 체제로부터 입력받은 프로세스가 이미 응용 모듈의 인젝션이 완료된 프로세스로 확인되면, 응용 모듈의 삽입 동작은 종료된다. 이와 달리 운영 체제로부터 입력받은 프로세스가 이미 응용 모듈의 인젝션이 수행되지 않은 프로세스로 확인되면, 프로세스 확인부(330)는 최종적으로 해당 프로세스를 응용 모듈의 인젝션 대상 프로세스로 확정한다(S440). 사용자가 실행을 명령한 프로그램의 응용 모듈 삽입 대상 여부에 대한 확인과정과 응용 모듈의 인젝션 완료 여부에 대한 확인과정은 순서를 변경하여 수행될 수 있다.
다음으로 컨텍스트 변경부(340)는 응용 모듈의 인젝션 대상 프로세스로 확정된 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 엔트리 포인트를 삽입되는 응용 모듈의 엔트리 포인트로 변경한다(S450). 마지막으로 응용 모듈 삽입부(350)는 사용자가 실행을 명령한 프로그램에 대응하는 프로세스에 응용 모듈을 인젝션한다(S460).
도 5는 본 발명에 따른 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치에 대한 바람직한 실시예의 구성을 도시한 도면이다.
도 5를 참조하면, 본 발명에 따른 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치(500)에 대한 바람직한 실시예는, 프로세서(510)와 메모리(520)를 구비한다. 프로세서(510)는 운영 체제(512)를 실행하며, 운영 체제(512)는 메모리(520)에 저장될 수 있다. 또한 프로세서(510)는 메모리(520)에 저장되어 있는 프로그램 어플리케이션(522)으로부터 컴퓨터 프로그램 지시사항을 검색하고 실행한다. 또한 프로세서(510)는 인젝션 모듈(514)을 실행한다. 이때 인젝션 모듈(514)은 드라이버 형태로 구현되어 레지스트 설정을 통해 운영 체제(512)의 부팅시 적절한 시점에 자동으로 실행될 수 있으며, 공통 프로그램 어플리케이션의 일 요소로서 구현될 수도 있다. 이와 같은 인젝션 모듈(514)은 도 3 및 도 4를 참조하여 설명한 응용 모듈 삽입 장치와 실질적으로 동일하며, 소프트웨어 또는 하드웨어로서 구현될 수 있다. 한편 메모리(520)에는 문서, 멀티미디어 파일, 데이터 파일 등 프로그램 데이터(524)가 저장되며, 나아가 메모리(520)의 일부 공간을 인젝션 모듈(514)이 사용할 수 있다.
도 6은 본 발명에 따른 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치에서 응용 모듈을 인젝션하는 과정을 도시한 도면이다. 도 6에 도시된 실시예는 마이크로소프트 윈도우를 운영 체제로 사용하는 컴퓨팅 장치에서 대상 프로세스에 응용 모듈을 삽입하는 예이다.
도 6을 참조하면, 사용자가 특정한 프로그램(예를 들면, notepad.exe)에 대한 실행명령을 입력하면, 운영 체제(512)는 등록되어 있는 제1콜백 함수(예를 들면, Process Create Notify Callback)를 통해 인젝션 모듈(514)에 프로세스 생성을 통지하며, 인젝션 모듈(514)은 생성된 프로세스에 대한 인지처리를 수행한다. 프로세스에 대한 인지처리는 인젝션 모듈(514)의 프로세스 정보 획득부(320)에 의해 수행된다. 다음으로 대상 프로세스의 생성 및 실행 절차를 수행함에 따라 대상 프로세스에 대응하는 이미지가 로드되면, 운영 체제(512)는 등록되어 있는 제2콜백 함수(예를 들면, Image Load Notify Callback)를 통해 인젝션 모듈(514)로 실행 모듈의 로드 사실을 통지하며, 인젝션 모듈(514)은 실행 모듈에 대한 인지처리를 수행한다. 실행 모듈에 대한 인지처리는 인젝션 모듈(514)의 프로세스 확인부(330)에 의해 수행된다. 이때 인젝션 모듈(514)은 해당 실행 모듈이 응용 모듈의 삽입 대상으로 설정되어 있는 프로그램 형식(예를 들면, 파일 형식이 exe인 실행 프로그램)에 해당하는지 여부를 확인한다. 만약 해당 실행 모듈이 응용 모듈의 삽입 대상으로 설정되어 있는 프로그램 형식을 가진 것으로 확인되면, 인젝션 모듈(514)은 해당 실행 모듈에 응용 모듈의 인젝션을 수행하도록 제어한다. 나아가 인젝션 모듈(514)은 해당 프로세스가 응용 모듈의 삽입이 완료된 프로세스인지 여부를 확인한다. 만약 해당 프로세스에 대한 응용 모듈의 삽입이 수행되지 않은 것으로 확인되면, 인젝션 모듈(514)은 해당 프로세스에 대한 정보(즉, 운영 체제(512)는 등록되어 있는 콜백 함수를 통해 획득한 프로세스 식별정보, 스레드 식별정보 등)를 등록한다. 이러한 등록과정은 도 3을 참조하여 설명한 바와 같이 프로세스 확인부(330)가 컨텍스트 변경부(340)로 해당 프로세스에 대한 정보를 제공하는 방식, 프로세스 확인부(330)가 해당 프로세스에 대한 정보를 메모리(360)에 저장하고 컨텍스트 변경부(340)가 메모리(360)로부터 이러한 정보를 독출하는 방식 등의 형태로 이루어진다. 이때 도 3에 도시된 응용 모듈 삽입 장치에 구비된 메모리(360)는 도 5에 도시된 컴퓨팅 장치에 구비된 메모리(522)와 동일한 구성요소일 수 있다.
다음으로 인젝션 모듈(514)은 해당 프로세스에 대응하는 스레드 컨텍스트의 엔트리 포인트를 응용 모듈에 해당하는 코드의 엔트리 포인트로 변경한다. 이와 같은 엔트리 포인트의 변경은 도 3을 참조하여 설명한 바와 같이 인젝션 모듈(514)의 컨텍스트 변경부(340)에 의해 수행된다. 마지막으로 인젝션 모듈(514)은 대상 프로세스에 응용 모듈을 삽입하며, 이에 따라 응용 모듈이 로드된다. 이와 같은 응용 모듈의 삽입은 도 3을 참조하여 설명한 바와 같이 인젝션 모듈(514)의 응용 모듈 삽입부(340)에 의해 수행된다. 아울러 삽입되는 응용 모듈에는 원래의 엔트리 포인트를 호출하는 루틴을 포함되며, 따라서 인젝션된 응용 모듈이 로드된 이후에 원래의 엔트리 포인트를 호출하여 대상 프로세스에 대한 실행이 이루어지게 된다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.

Claims (11)

  1. 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받기 위한 제1콜백 함수 및 상기 사용자가 실행을 명령한 프로그램에 대응하는 이미지의 구동여부를 통지받기 위한 제2콜백 함수를 상기 운영 체제에 등록하는 함수등록부;
    상기 제1콜백 함수를 통해 상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는 프로세스 정보 획득부;
    상기 제2콜백 함수를 통해 파악된 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되면, 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스를 응용 모듈 인젝션 대상 프로세스로 선정하는 프로세스 확인부;
    상기 응용 모듈 인젝션 대상 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 제1엔트리 포인트를 삽입되는 응용 모듈의 제2엔트리 포인트로 변경하는 컨텍스트 변경부; 및
    상기 응용 모듈 인젝션 대상 프로세스에 상기 응용 모듈을 삽입하는 응용 모듈 삽입부;를 포함하는 것을 특징으로 하는 응용 모듈 삽입 장치.
  2. 제 1항에 있어서,
    상기 프로세스 확인부는 상기 제2콜백 함수를 통해 파악된 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되고, 상기 운영 체제로부터 상기 사용자가 실행을 명령할 프로그램에 대응하여 생성된 프로세스가 인젝션이 완료된 프로세스의 목록에 존재하지 않는 경우에 상기 운영 체제로부터 생성을 통지받은 프로세스를 상기 응용 모듈 인젝션 대상 프로세스로 선정하는 것을 특징으로 하는 응용 모듈 삽입 장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 응용 모듈은 상기 제1엔트리 포인트를 호출하는 루틴을 포함하는 것을 특징으로 하는 응용 모듈 삽입 장치.
  4. 제 1항 또는 제 2항에 있어서,
    상기 응용 모듈은 디지털 저작권의 관리를 위한 코드인 것을 특징으로 하는 응용 모듈 삽입 장치.
  5. 운영 체제 및 인젝션 모듈을 실행하는 프로세서; 및
    상기 운영 체제 및 상기 인젝션 모듈이 저장되는 메모리;를 포함하며,
    상기 인젝션 모듈은,
    상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받기 위한 제1콜백 함수 및 상기 사용자가 실행을 명령한 프로그램에 대응하는 이미지의 구동여부를 통지받기 위한 제2콜백 함수를 상기 운영 체제에 등록하는 함수등록모듈;
    상기 제1콜백 함수를 통해 상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는 프로세스 정보 획득모듈;
    상기 제2콜백 함수를 통해 파악된 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되면, 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스를 응용 모듈 인젝션 대상 프로세스로 선정하는 프로세스 확인모듈;
    상기 응용 모듈 인젝션 대상 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 제1엔트리 포인트를 삽입되는 응용 모듈의 제2엔트리 포인트로 변경하는 컨텍스트 변경모듈; 및
    상기 응용 모듈 인젝션 대상 프로세스에 상기 응용 모듈을 삽입하는 응용 모듈 삽입모듈;을 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  6. 제 5항에 있어서,
    상기 프로세스 확인모듈은 상기 제2콜백 함수를 통해 파악된 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되고, 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스가 인젝션이 완료된 프로세스의 목록에 존재하지 않는 경우에 상기 운영 체제로부터 생성을 통지받은 프로세스를 상기 응용 모듈 인젝션 대상 프로세스로 선정하는 것을 특징으로 하는 컴퓨팅 장치.
  7. 제 5항 또는 제 6항에 있어서,
    상기 응용 모듈은 상기 제1엔트리 포인트를 호출하는 루틴을 포함하는 것을 특징으로 하는 컴퓨팅 장치.
  8. (a) 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받는 단계;
    (b) 상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 이미지의 구동여부를 통지받는 단계;
    (c) 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되면, 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스를 응용 모듈 인젝션 대상 프로세스로 선정하는 단계;
    (d) 상기 응용 모듈 인젝션 대상 프로세스에 해당하는 스레드의 컨텍스트에 포함되어 있는 제1엔트리 포인트를 삽입되는 응용 모듈의 제2엔트리 포인트로 변경하는 단계; 및
    (e) 상기 응용 모듈 인젝션 대상 프로세스에 상기 응용 모듈을 삽입하는 단계;를 포함하는 응용 모듈 삽입 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  9. 제 8항에 있어서,
    상기 (a)단계 전에, 상기 운영 체제로부터 사용자가 실행을 명령한 프로그램에 대응하는 프로세스의 생성여부를 통지받기 위한 제1콜백 함수 및 상기 사용자가 실행을 명령한 프로그램에 대응하는 이미지의 구동여부를 통지받기 위한 제2콜백 함수를 상기 운영 체제에 등록하는 단계를 더 포함하는 것을 특징으로 하는 기록매체.
  10. 제 8항에 있어서,
    상기 (c)단계에서, 상기 사용자가 실행을 명령한 프로그램의 형식이 사전에 설정된 형식의 프로그램에 해당되고, 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스가 인젝션이 완료된 프로세스의 목록에 존재하지 않는 경우에 상기 사용자가 실행을 명령한 프로그램에 대응하여 생성된 프로세스를 상기 응용 모듈 인젝션 대상 프로세스로 선정하는 것을 특징으로 하는 기록매체.
  11. 제 8항 또는 제 10항에 있어서,
    상기 응용 모듈은 상기 제1엔트리 포인트를 호출하는 루틴을 포함하는 것을 특징으로 하는 기록매체.
KR1020100056506A 2010-06-15 2010-06-15 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체 KR101011145B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100056506A KR101011145B1 (ko) 2010-06-15 2010-06-15 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체
PCT/KR2010/008744 WO2011159005A1 (ko) 2010-06-15 2010-12-08 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체
US13/823,642 US9098701B2 (en) 2010-06-15 2010-12-08 Application module injection device, computing device including application module injection function, and recording medium for recording program for executing application module injection method
EP10853306.8A EP2595052A4 (en) 2010-06-15 2010-12-08 DEVICE FOR INJECTING AN APPLICATION MODULE, COMPUTER DEVICE COMPRISING AN INJECTION FUNCTION OF AN APPLICATION MODULE, AND RECORDING MEDIUM HAVING A PROGRAM FOR EXECUTING A METHOD FOR INJECTING AN APPLICATION MODULE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100056506A KR101011145B1 (ko) 2010-06-15 2010-06-15 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체

Publications (1)

Publication Number Publication Date
KR101011145B1 true KR101011145B1 (ko) 2011-01-26

Family

ID=43616822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100056506A KR101011145B1 (ko) 2010-06-15 2010-06-15 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체

Country Status (4)

Country Link
US (1) US9098701B2 (ko)
EP (1) EP2595052A4 (ko)
KR (1) KR101011145B1 (ko)
WO (1) WO2011159005A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101462829B1 (ko) * 2014-01-29 2014-11-21 (주) 퓨전데이타 가상화 정보 가공장치 및 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101206853B1 (ko) * 2011-06-23 2012-11-30 주식회사 잉카인터넷 네트워크 접근 제어시스템 및 방법
CN103379481B (zh) * 2012-04-26 2015-05-06 腾讯科技(深圳)有限公司 一种实现安全防护的方法
CN105740028B (zh) * 2016-03-03 2019-07-12 珠海豹趣科技有限公司 一种访问控制方法及装置
US9734337B1 (en) * 2017-01-24 2017-08-15 Malwarebytes Inc. Behavior-based ransomware detection
CN111198723B (zh) * 2018-11-19 2023-03-07 深圳市优必选科技有限公司 一种进程注入方法、终端设备及计算机可读存储介质
CN111142969A (zh) * 2019-12-27 2020-05-12 贵阳动视云科技有限公司 64位程序调用32位程序模块的方法、装置、介质及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060112037A1 (en) * 2004-10-21 2006-05-25 International Business Machines Corporation Process and implementation for using byte code insertion to modify a class definition to define and use probes for application components
US20080295081A1 (en) * 2007-05-21 2008-11-27 Andre Laurent Albot Framework for conditionally executing code in an application using conditions in the framework and in the application
KR100927442B1 (ko) * 2007-08-16 2009-11-19 주식회사 마크애니 가상 응용프로그램 생성 시스템, 가상 응용프로그램 설치방법, 네이티브 api 호출 처리 방법 및 가상응용프로그램 수행 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591379B1 (en) * 2000-06-23 2003-07-08 Microsoft Corporation Method and system for injecting an exception to recover unsaved data
US8606950B2 (en) * 2005-06-08 2013-12-10 Logitech Europe S.A. System and method for transparently processing multimedia data
US7707558B2 (en) * 2005-06-10 2010-04-27 Symantec Corporation Operating system loader modification
US7814549B2 (en) * 2006-08-03 2010-10-12 Symantec Corporation Direct process access
US20080226069A1 (en) * 2007-03-14 2008-09-18 Encrypted Shields Pty Ltd Apparatus and Method for Providing Protection from Malware
JP4824127B2 (ja) * 2007-08-29 2011-11-30 シーディーネットワークス カンパニー リミテッド デジタルメディアコンテンツの無断複製(不正コピー)に対する保護
US9015704B2 (en) * 2008-03-24 2015-04-21 International Business Machines Corporation Context agent injection using virtual machine introspection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060112037A1 (en) * 2004-10-21 2006-05-25 International Business Machines Corporation Process and implementation for using byte code insertion to modify a class definition to define and use probes for application components
US20080295081A1 (en) * 2007-05-21 2008-11-27 Andre Laurent Albot Framework for conditionally executing code in an application using conditions in the framework and in the application
KR100927442B1 (ko) * 2007-08-16 2009-11-19 주식회사 마크애니 가상 응용프로그램 생성 시스템, 가상 응용프로그램 설치방법, 네이티브 api 호출 처리 방법 및 가상응용프로그램 수행 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101462829B1 (ko) * 2014-01-29 2014-11-21 (주) 퓨전데이타 가상화 정보 가공장치 및 방법

Also Published As

Publication number Publication date
EP2595052A4 (en) 2014-04-30
US20140150103A1 (en) 2014-05-29
WO2011159005A1 (ko) 2011-12-22
US9098701B2 (en) 2015-08-04
EP2595052A1 (en) 2013-05-22

Similar Documents

Publication Publication Date Title
KR101011145B1 (ko) 응용 모듈 삽입 장치, 응용 모듈 삽입 기능을 구비한 컴퓨팅 장치 및 응용 모듈 삽입 방법을 실행하기 위한 프로그램을 기록한 기록매체
US9195823B1 (en) System and method for intercepting process creation events
US8826269B2 (en) Annotating virtual application processes
US8887152B1 (en) Android application virtual environment
US6698016B1 (en) Method for injecting code into another process
EP2704004B1 (en) Computing device having a dll injection function, and dll injection method
KR101343176B1 (ko) 재부팅 없는 디스플레이 드라이버 업그레이드
US20010039612A1 (en) Apparatus and method for fast booting
JP2018041438A (ja) ファイル中の悪意のあるコードの検出システム及び方法
US20090064197A1 (en) Driver installer usable in plural environments
US20110113229A1 (en) Method for Shortening the Boot Time of a Computer System
US7739283B2 (en) System and method for using an RMI activation system daemon with non-java applications
US9189300B2 (en) Dynamic service discovery
US20140310694A1 (en) Using application state data and additional code to resolve deadlocks
CN110083399B (zh) 小程序运行方法、计算机设备及存储介质
US10521218B2 (en) Enhanced techniques for updating software
US9916149B2 (en) Information processing apparatus, control method for information processing apparatus, and storage medium of program for executing control method
US6829725B2 (en) Fault resistant operating system
US8776070B2 (en) Method and apparatus having resistance to forced termination attack on monitoring program for monitoring a predetermined resource
EP3128458B1 (en) User-mode component injection and atomic hooking
US8578368B2 (en) Injecting a file from the bios into an operating system
US9852029B2 (en) Managing a computing system crash
US20120144390A1 (en) Customized computer image preparation and deployment including virtual machine mode
US9003415B2 (en) Method and apparatus having resistance to forced termination attack on monitoring program for monitoring a predetermined resource
US20070260577A1 (en) Providing COM access to an isolated system

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170111

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180119

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190110

Year of fee payment: 9