KR100494499B1 - 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법 - Google Patents

실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법 Download PDF

Info

Publication number
KR100494499B1
KR100494499B1 KR10-2002-0079231A KR20020079231A KR100494499B1 KR 100494499 B1 KR100494499 B1 KR 100494499B1 KR 20020079231 A KR20020079231 A KR 20020079231A KR 100494499 B1 KR100494499 B1 KR 100494499B1
Authority
KR
South Korea
Prior art keywords
file
information
section
data
extracting
Prior art date
Application number
KR10-2002-0079231A
Other languages
English (en)
Other versions
KR20040051322A (ko
Inventor
정덕영
Original Assignee
주식회사 안철수연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 안철수연구소 filed Critical 주식회사 안철수연구소
Priority to KR10-2002-0079231A priority Critical patent/KR100494499B1/ko
Priority to US10/732,530 priority patent/US20040123136A1/en
Publication of KR20040051322A publication Critical patent/KR20040051322A/ko
Application granted granted Critical
Publication of KR100494499B1 publication Critical patent/KR100494499B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • 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
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를 이용한 바이러스 치료방법이 개시되어 있다. 본 발명에 따르면, 실행 중인 파일의 이미지 섹션(Image Section) 구조를 통해 오리지널 이미지(Original Image) 정보를 수정하는 단계; 실행가능 파일(PE File)의 헤더(Header) 정보를 통해 프라이비트 이미지(Private Image) 정보를 수정하는 단계; 데이터 섹션(Data Section)을 추출하는 단계; 데이터 섹션(Data Section)의 캐쉬뷰(CACHE View)를 추출하고, 캐쉬뷰(CACHE View)에 맵핑된 물리적 메모리의 정보를 수정하는 단계; 및 페이지 라이터(Page Writer)를 통해 물리적 메모리의 정보를 디스크에 저장하는 단계로 이루어져, 오리지널 이미지와 프라이비트 이미지 및 데이터 섹션을 수정하므로서, 실행 파일의 수정이 가능하여, 프로세스의 강제종료 없이 악성코드가 포함된 파일의 실행중에 바이러스 치료가 가능한 효과를 얻는다.

Description

실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를 이용한 바이러스 치료방법{DATA RETOUCHING METHOD FOR EXECUTING FILE ON REAL TIME AND VIRUS ELIMINATION METHOD USING THE DATA RETOUCHING METHOD THEREOF}
본 발명은 실행중인 파일에 대한 데이터 수정에 관한 것으로, 보다 상세히는 실행중인 파일의 오리지널 데이터를 수정하고, 이를 통해 실행중인 파일에 대한 악성코드를 실시간으로 수정할 수 있도록 하는 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를 이용한 바이러스 치료방법에 관한 것이다.
일반적으로 윈도우즈(Windows)와 같은 가상 메모리(Virtual Memory)를 지원하는 운영시스템에서는 가상 메모리 관리 및 효과적인 메모리 사용을 위해 실행되어지는 일부분의 내용만을 메모리에 올려 놓고 그렇지 않은 부분의 내용은 파일에서 필요시 읽어 들이고 있다. 이를 위해 운영시스템은 실행되어지는 동안에 해당 파일을 수정하지 못하도록 하고 있으며, 따라서 사용자는 실행중인 파일에 대하여 수정이 불가능하게 된다. 설령 수정이 이루어졌다 하여도 메모리에 실행중인 내용이 있을 시에는 그 내용이 사용되어지므로 실행되어지는 내용에는 변화를 줄 수가 없다.
이와 같은 운영시스템의 특징은 바이러스나 웜과 같은 악성 코드에서 바이러스에 대한 치료를 못하게 하는데 악용되어 진다. 현재는 이러한 문제점에 대한 임시적인 해결책으로 해당 모듈을 사용하는 프로세스에 대한 강제종료를 수행하거나, 이와 유사한 동작 즉, 현재 작업이 정지된 상태에서 바이러스 치료가 이루어진다. 이는 모든 프로세스에 자동으로 올라가는 모듈의 경우, 재부팅시 파일에 대한 교체를 수행하는 것으로, 작업자의 작업과 바이러스의 치료가 동시에 이루어지지 못하게 된다.
바이러스의 경우 자기 복제 능력을 갖고 있으며, 감염대상 코드의 실행구조를 변경하거나 내부 구조를 변경하여 대상 코드의 수행 전후에 바이러스가 실행될 수 있도록 변경하는 코드들의 집합을 갖는다. 따라서, 감염된 프로그램 즉, 바이러스 프로그램이 실행될 경우에는 심각한 부작용을 초래한다. 이러한 부작용은 CMOS 메모리 데이터를 삭제하거나, 하드디스크의 정보파괴, 플래시 메모리의 정보파괴 등을 통해 그 피해규모를 확산시킨다.
이로부터 안티 바이러스에 대한 강구책이 마련되고 있으며, 현재 사용되고 있는 바이러스 치료방법으로는 윈도우즈에서 제공되는 파일 I/O 방법을 취하고 있다. 이러한 파일 I/O 방법에 의한 파일수정은 특정 파일의 실행상태에서 해당 파일에 대한 수정이 불가능하게 되어 있을 뿐만 아니라, 바이러스와 같은 악성코드의 경우 대부분 실행중인 상태에서 동작되기 때문에 해당 모듈에 대한 강제 종료 또는 재부팅에 의한 방법을 선택할 수 밖에 없다. 이 때, 악성코드에 대한 파일 수정은 해당 파일의 사용을 종료시킨 후 파일을 수정할 수 밖에 없기 때문에, 실행파일의 종료는 불가피한 실정이다.
결국, 바이러스로 인한 프로세스의 강제종료로 인해 시스템의 안정성을 저하시킬 뿐만 아니라, 사용자의 작업 부담이 극대화됨에 따라, 프로세스를 강제종료 시키기에는 많은 무리가 따르고 있다. 따라서 현재 실행중인 모듈의 바이러스 치료를 위해 강제종료 혹은 재부팅이 없이 실행파일에 대한 실시간 수정이 가능한 시스템 개발이 시급하다는 문제가 제기되고 있다.
본 발명은 이와 같은 문제점을 해결하기 위해 창출된 것으로, 본 발명의 목적은 현재 실행중인 파일에 대해 실시간 데이터 보정과 이를 이용하여 실행중인 파일에 대한 바이러스 치료가 가능토록 함에 따라, 시스템의 재부팅 또는 프로세스의 강제종료가 없는 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를 이용한 바이러스 치료방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 관점에 따른 실행중인 파일에 대한 실시간 데이터 수정 방법은, (a) 이미지 섹션(Image Section)을 추출하고, 상기 이미지 섹션(Image Section)의 캐쉬뷰어(Cache Viewer)에 맵핑된 정보에 따라, 물리적 메모리 (Physical Memory)를 추출하며, 상기 물리적 메모리(Physical Memory)에 맴핑되어진 오리지널 이미지(Original Image)의 데이터를 수정하는 단계; (b) 상기 실행중인 파일의 피이파일(PE File) 구조에 따라 기록된 헤더(Header) 정보로부터 상기 가상 메모리(Virtual Memory)에 저장된 상기 실행중인 파일의 가상 어드레스(Virtual Address)정보를 추출하고, 상기 가상 어드레스 (Virtual Address) 정보에 대응한 프라이비트 이미지(Private Image) 정보를 수정하는 단계; 및 (c) 데이터 섹션(Data Section)을 추출하고, 상기 데이터 섹션(Data Section)의 캐쉬뷰어(CACHE Viewer)로부터 제공되는 맵핑정보에 따라 물리적 메모리의 정보를 수정하며, 페이지 라이터(Page Writer)를 이용하여 상기 물리적 메모리의 정보를 디스크에 저장하는 단계로 이루어진 것을 특징으로 한다.
구체적으로, 상기 단계(a)는 (a1) 악성코드를 보유한 실행 파일의 파일 오브젝트(File Object)를 통해 섹션 오브젝트 포인터(Section Object Pointers)를 검출하는 단계; (a2) 상기 섹션 오브젝트 포인터를 통해 이미지 섹션 포인터(Image Section Pointers)를 얻는 단계; (a3) 상기 이미지 섹션 포인터에 근거하여 이미지 섹션 구조를 통한 오리지널 데이터의 물리적 어드레스를 추출하는 단계; 및 (a4) 상기 물리적 어드레스에 저장된 실행 파일의 오리지널 이미지를 수정하는 단계로 이루어진 것을 특징으로 한다.
이하, 본 발명을 첨부된 예시도면에 의거 상세히 설명하면 다음과 같다.
또한, 이하 설명되는 용어는 인사이드 마이크로소프트 윈도우즈를 기반으로 사용되는 것으로, 특정 용어에 대해서 별도의 설명은 생략할 것이다. 용어에 대해서는 "Inside Microsoft Windows 2000 Third Edition" 서적을 참조할 수 있으며, "http://microsoft.com"에서도 검색이 가능함을 알려 둔다.
도 1은 본 발명에 따른 윈도우 기반 시스템의 개략적인 동작을 설명하기 위한 구성도이다. 도시된 바와 같이, 유저모드(User mode)와 시스템의 커널모드(Kernel mode) 사이에 존재하는 아이오 관리자(I/O Manager : 101), 파일의 입출력을 제어하기 위한 파일시스템 드라이버(File System Driver : 103), 상기 파일시스템 드라이버(103)의 제어하에 메모리 정보를 입출력하는 디스크 드라이버(Physical Disk Driver : 111), 가상 메모리(Virtual Memory : 107), 상기 가상 메모리(107)를 관리하기 위한 가상 메모리 관리자(Virtual Memory Manager : 105) 및 캐쉬 관리자(CACHE Manager : 109)로 구성된다.
상기 아이오 관리자(101)는 Read API(Application Programing Interface)을 사용한 파일 읽기 요청정보를 사용자로부터 수신하며, 수신된 파일 읽기 요청정보에 기초하여 파일 시스템을 찾는다. 상기 파일 시스템(103)은 상기 파일 읽기 요청정보가 해당 파일에 대한 최초 Read일 경우, 캐쉬 관리를 위한 Section object를 생성한다. 파일 시스템(103)은 상기 해당 파일에 대한 최초 Read가 아니거나, 상기 Section object의 생성이 완료되면, 상기 캐쉬 관리자(109)에게 해당 파일의 읽기에 대한 요청을 수행한다.
상기 캐쉬 관리자(109)는 요청한 파일 영역이 시스템 영역, 즉 상기 가상 메모리(107)의 영역으로 맵핑(Mapping)되어진 뷰(View)가 존재하는지 판단한다. 맵핑된 뷰가 존재하지 않으면, 읽기를 요청한 영역을 캐쉬 관리자에 의해 사용되는 가상 메모리 영역을 상기 해당 파일영역과 맵핑한다. 여기서 상기 맵핑은 맵핑된 뷰를 만들기 위해 새로운 섹션(Section)을 생성하여 뷰 맵핑(VIEW MAPPING)을 수행한다. 이 후, 캐쉬 관리자(109)는 상기 가상 메모리 영역에 대한 읽기 요청을 수행한다.
상기 가상 메모리(107)는 캐쉬 관리자(109)로부터 수신한 읽기 요청신호에 기초하여 해당 메모리 영역의 정보를 읽기시도한다. 그러나 가상 메모리(107)에는 상기 맵핑정보만이 존재함에 따라 오류가 발생하며, 이 때 'PAGE FAULT'신호를 생성한다. 상기 'PAGE FAULT'신호는 상기 가상 메모리 관리자(105)로 제공된다.
상기 가상 메모리 관리자(105)는 'PAGE FAULT'신호를 수신하며, 수신정보에 응답처리하기 위해 상기 가상 메모리(107)에 맵핑되어져 있는 파일정보에 기초하여 상기 파일시스템 드라이버(103)로 데이터를 요청한다. 이 때, 데이터 요청에 따른 가상 메모리 관리자(105)의 요청정보는 'NONCACHEED PAGING I/O FLAG'형태로 제공된다.
상기 파일시스템 드라이버(103)는 'NONCACHEED PAGING I/O FLAG' 형태의 READ IRP를 수신하며, 상기 디스크 드라이버(111)로 데이터를 요청한다. 디스크 드라이버(111)는 물리적 메모리(Physical Memory) 즉, 디스크를 통해 해당 데이터를 읽어 온다. 해당 데이터는 상기 가상 메모리 관리자(105)로 제공되며, 상기 'PAGE FAULT'가 발생한 가상 메모리(107)에는 정상적인 데이터가 저장된다.
캐쉬 관리자(109)는 상기 맵핑된 가상 메모리(107)의 메모리 영역으로부터 데이터를 읽어 들이며, 파일시스템 드라이버(103)를 통해 사용자로 제공함에 따라, 읽기요청이 완료된다.
한편, 파일이 실행중인 상태, 예컨대 해당 파일에 대해 최초 읽기가 수행될 때, 상기 캐쉬 관리자(109)로부터 생성되는 섹션(Section)은 이미지 로더(Image Loader)에 의해 오리지널 이미지 섹션(Original Image Section)이 생성된다. 그리고 데이터 형태의 읽기 요청시 빠른 대응을 위한 데이터 섹션(Data Section)이 생성된다. 또한, 데이터 수정시 오리지널 페이지를 저장하기 위해 프라이비트 이미지 페이지(Private Image Page)가 복사된다. 본 발명에서는 상기 오리지널 이미지 섹션과 데이터 섹션 및 프라이비트 이미지 페이지에 기록된 정보를 수정하므로서, 실행중인 모듈의 데이터를 정정한다. 즉, 실행중인 모듈에서의 악성 코드(바이러스)를 색출하고 이를 삭제하도록 한다.
여기서, 상기 오리지널 이미지(Original Image)는 파일 오브젝트(File Object)를 이용하여 섹션 오브젝트(Section Object)에 접근함에 따라, 이미지 섹션(Image Section)을 얻게되는데, 이미지 섹션(Image Section)으로부터 얻는 물리적 메모리에 저장된 데이터 이미지를 의미한다. 또한 상기 프라이비트 이미지(Private Image)는 특정 프로세스에서 일부분의 데이터 수정으로 윈도우즈의 카피 온 라이트(Copy on Write)에 의해 새로이 만들어진 이미지를 의미한다.
한편, 상기 오리지널 이미지는 해당 파일에 대해 공유되는 공통코드, 즉 하나의 파일이 다수의 프로세스에 의해 운용될 때 사용되는 코드이고, 상기 프라이비트 이미지는 코드가 변경된 경우 새로운 메모리에 변경된 코드만을 탑재하는데, 이 때 사용하는 코드부를 의미한다.
도 2는 실행중인 파일에 대한 가상 메모리 구조를 나타낸 구성도이다.
도시된 바와 같이, 실행중인 이미지 정보(201)는 상기 캐쉬 관리자(109)에 의해 이미지 섹션(Image Section : 203) 및 데이터 섹션(Data Section : 295)가 생성되며, 상기 오리지널 이미지 섹션(203)은 실행되고 있는 코드의 수정시 새로운 맵핑을 수행하여 동일 내용의 정보를 복사토록 하고 있다. 즉, 카피 온 라이터(Copy On Write) 개념을 도입하여 상기한 프라이비트 이미지 페이지(Private Image Page : 207a,207b)를 형성한다.
상기 오리지널 이미지 섹션(203)은 특정의 프로세스를 통해 해당 파일을 로드시킬 경우, 이미지 로더(Image Loader)에 의해 만들어진 섹션 오브젝트(Object)를 통해 해당 이미지 섹션이 만들어진다. 이미지 섹션은 해당 파일을 세그먼트 (Segment) 단위로 메모리 맵핑이 이루어진다. 상기 오리지널 이미지 섹션(203)에서 맵핑된 이미지 정보는 맵핑된 메모리의 코드에 따라 디스크 드라이버(111)가 구동되어 디스크로부터 데이터를 읽어 들인다.
오리지널 이미지 섹션(203)은 해당 파일의 데이터가 저장된 어드레스의 정보를 저장하는 데이터 세그먼트(Data Segment)와 소정의 명령어를 저장하는 코드 세그먼트(Code Segment)로 구분된다.
상기 프라이비트 이미지 페이지(207a,207b)는 소정의 모듈이 둘 이상의 특정 프로세스에 의해 공유되고 있을 때, 어느 하나의 특정 프로세스에 의해 해당 모듈의 코드가 수정되어질 경우, 수정된 모듈의 코드로 인해 타 프로세스에 영향을 주지 않도록 하기 위해 동일한 내용의 페이지를 더 생성한다. 그리고 생성된 새로운 페이지를 해당 프로세스에 다시 맵핑한 후, 맵핑된 페이지에 수정내용이 적용되도록 하고 있다.
상기 데이터 섹션(Data Section : 205)은 상기 이미지 로더(Image Loader)에 의해 만들어진 섹션 오브젝트(Object)를 통해 만들어진다. 데이터 섹션(205)은 특정 모듈이 한번 읽어진 후, 데이터 형태의 읽기 요청시 빠른 대응을 위한 것으로, 이를 위해 상기 캐쉬 관리자(109)에 의해 캐쉬 뷰(CACHE View)가 맵핑된다.
또한 만약 특정 코드부분의 데이터 수정이 이루어졌을 경우, 카피 온 라이트(Copy on Write)에 의해 프라이비트(Private) 페이지가 생성되고, 이 때 사용되어진 물리 메모리는 오리지널 이미지의 가상메모리(107)에는 나타나지 않게 된다.
실행중인 파일은 'File Object'가 존재하며, 상기 'File Object'는 'Section Object Pointers'를 보유하며, 상기 'Section Object Pointers'는 'Data Section Object', 'Shared Cache Map', 'Image Section Object'를 보유한다. 따라서 'Section Object Pointers'에 의해 'Image Section Object'를 얻으며, 'Image Section Object'인 Object 파일을 통해 'Image Section Pointers'를 얻는다.
상기 'Image Section Pointers'는 이미지 섹션의 구조를 보유하며, 이를 통해 해당 파일의 코드 세그먼트를 추출한다. 코드 세그먼트는 상기 가상 메모리 관리자(105)에 의해 오리지널 데이터의 물리적 어드레스(Physical Address)를 찾으며, 물리적 어드레스에 저장된 오리지널 데이터를 수정한다.
도 3은 프라이비트 페이지들로 구성된 이미지 수정을 설명하기 위한 구성도이다.
도시된 바와 같이, 디스크에 저장된 오리지널 이미지의 파일 옵셋(File Offset) 내용과 이에 대응하여 메모리로 로드된 이미지를 도시하고 있다. 오리지널 이미지는 윈도우의 이미지 로더(Image Loader)에 의해 PE구조에 따른 파일 섹션이 맵핑된다. 이 때, 프라이비트 이미지를 수정하기 위해서는, 현재 실행중인 특정 파일의 Offset내용이 로드된 메모리의 내용을 수정해야 하며, 따라서 파일의 이미지가 메모리로 탑재될 때, PE 이미지 헤더(PE Image Header)를 통해 가상 메모리의 어드레스를 추적한다. 그리고, 추적된 어드레스를 통해 프라이비트 이미지를 수정한다.
이 후, 데이터 섹션의 추적을 통해 데이터 섹션의 캐쉬뷰(CACHE View)를 얻어낸 후, 이 캐쉬뷰(CACHE View)에 맵핑되어진 물리적 메모리의 정보를 수정함으로써, 윈도우 내부의 메모리 관리자에 의해 사용되어지는 페이지 라이터(Page Writer)가 물리적 메모리의 정보를 디스크에 저장함에 따라 수정이 이루어진다.
따라서, 상기 오리지널 이미지, 프라이비트 이미지 및 데이터 섹션을 통한 물리적 메모리의 정보를 수정하므로서, 현재 실행중인 파일의 정보가 수정된다. 실시간 실행 파일의 수정은 악성 코드의 수정이 가능하며, 프로세스의 강제종료가 없게 된다.
이상 설명된 바와 같이 본 발명에 따른 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를 이용한 바이러스 치료방법은, 실행중인 파일에 대하여 오리지널 이미지를 수정하고, PE파일의 이미지 헤더를 통해 가상 메모리에 로드된 프라이비트 이미지의 어드레스를 추출하므로서, 해당 어드레스를 통한 프라이비트 이미지를 수정한다. 그리고 섹션 오브젝트 포인터(Section Object Pointers)를 통해 데이터 섹션을 추적하여 맵핑된 물리메모리의 정보를 수정함으로써 메모리 관리자에 의해 사용되는 페이지 라이터(Page Writer)가 데이터를 수정토록 한다. 이와 같은 본 발명을 통해, 실행중인 파일의 오리지널 이미지와 프라이비트 이미지 및 데이터 섹션을 수정할 수 있어, 직접적인 파일 수정이 가능할 뿐만 아니라, 프로세스의 강제종료 없이 악성코드가 포함된 파일의 바이러스 치료가 가능한 효과를 얻는다.
또한 본 발명을 통해, 실행중인 파일의 수정이 가능하게 됨에 따라, 운행중인 시스템에 방해없이 바이러스를 치료할 수 있으며, 이는 인터넷을 통해 확산되는 바이러스를 긴급하게 치료할 수 있는 실시간 바이러스 치료효과를 갖는다.
이상에서 설명한 것은 본 발명에 따른 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를 이용한 바이러스 치료방법을 실시하기 위한 하나의 실시예에 불과한 것으로, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
도 1은 본 발명에 따른 윈도우 환경에서의 데이터 읽기 과정을 설명하기 위한 구성도이다.
도 2는 본 발명에 따른 실행 파일의 메모리 구조를 나타낸 구성도이다.
도 3은 본 발명에 따른 프라이비트 이미지(Private Image)에 대한 수정을 설명하기 위한 구성도이다.
<도면의 주요 부분에 대한 부호의 설명>
101 : 입출력 관리자(I/O Manager) 103 : 파일시스템 드라이버
105 : 가상 메모리 관리자 107 : 가상 메모리
109 : 캐쉬 관리자(Cache Manager) 111 : 디스크 드라이버
201 : 실행중인 이미지 정보 203 : 오리지널 이미지 섹션
205 : 데이터 섹션 207a,207b : 프라이비트 이미지

Claims (4)

  1. 가상 메모리(Virtual Memory)를 지원하는 운영시스템에서 실행중인 파일에 대한 데이터를 실시간으로 수정하기 위한 방법에 있어서,
    (a) 이미지 섹션(Image Section)을 추출하고, 상기 이미지 섹션(Image Section)의 캐쉬뷰어(Cache Viewer)에 맵핑된 정보에 따라, 물리적 메모리 (Physical Memory)를 추출하며, 상기 물리적 메모리(Physical Memory)에 맴핑되어진 오리지널 이미지(Original Image)의 데이터를 수정하는 단계;
    (b) 상기 실행중인 파일의 피이파일(PE File) 구조에 따라 기록된 헤더(Header) 정보로부터 상기 가상 메모리(Virtual Memory)에 저장된 상기 실행중인 파일의 가상 어드레스(Virtual Address)정보를 추출하고, 상기 가상 어드레스 (Virtual Address) 정보에 대응한 프라이비트 이미지(Private Image) 정보를 수정하는 단계; 및
    (c) 데이터 섹션(Data Section)을 추출하고, 상기 데이터 섹션(Data Section)의 캐쉬뷰어(CACHE Viewer)로부터 제공되는 맵핑정보에 따라 물리적 메모리의 정보를 수정하며, 페이지 라이터(Page Writer)를 이용하여 상기 물리적 메모리의 정보를 디스크에 저장하는 단계로 이루어진 것을 특징으로 하는 실행중인 파일에 대한 실시간 데이터 수정 방법.
  2. 가상 메모리(Virtual Memory)를 지원하는 운영시스템에서 실행중인 파일에 대한 데이터를 실시간으로 수정하기 위한 방법에 있어서,
    (a) 이미지 섹션(Image Section)을 추출하고, 상기 이미지 섹션(Image Section)의 캐쉬뷰어(Cache Viewer)에 맵핑된 정보에 따라, 물리적 메모리 (Physical Memory)를 추출하며, 상기 물리적 메모리(Physical Memory)에 맴핑되어진 오리지널 이미지(Original Image)의 악성 데이터를 삭제하는 단계;
    (b) 상기 실행중인 파일의 피이파일(PE File) 구조에 따라 기록된 헤더(Header) 정보로부터 상기 가상 메모리(Virtual Memory)에 저장된 상기 실행중인 파일의 가상 어드레스(Virtual Address)정보를 추출하고, 상기 가상 어드레스 (Virtual Address) 정보에 대응한 프라이비트 이미지(Private Image)의 악성코드 정보를 삭제하는 단계; 및
    (c) 데이터 섹션(Data Section)을 추출하고, 상기 데이터 섹션(Data Section)의 캐쉬뷰어(CACHE Viewer)로부터 제공되는 맵핑정보에 따라 물리적 메모리의 정보를 수정하며, 페이지 라이터(Page Writer)를 이용하여 상기 물리적 메모리의 수정된 정보를 디스크에 저장하는 단계로 이루어진 것을 특징으로 하는 실행중 파일에서의 실시간 바이러스 치료방법.
  3. 제 2 항에 있어서, 상기 단계(a)는
    (a1) 상기 실행중 파일의 파일 오브젝트(File Object)를 추출하고, 상기 파일 오브젝트(File Object)에서 보유한 섹션 오브젝트 포인터(Section Object Pointers)를 검출하는 단계;
    (a2) 상기 섹션 오브젝트 포인터를 통해 이미지 섹션 포인터(Image Section Pointers)를 얻는 단계;
    (a3) 상기 이미지 섹션 포인터에 근거하여 이미지 섹션 구조를 통한 오리지널 데이터의 물리적 어드레스를 추출하는 단계; 및
    (a4) 상기 물리적 어드레스에 저장된 상기 오리지널 이미지의 악성코드 정보를 삭제하는 단계로 이루어진 것을 특징으로 하는 실행중 파일에서의 실시간 바이러스 치료방법.
  4. 제 2 항에 있어서, 상기 단계 (c)의 데이터 섹션은,
    악성코드를 보유한 실행 파일의 파일 오브젝트(File Object)를 통해 섹션 오브젝트 포인터(Section Object Pointers)를 검출하고, 상기 섹션 오브젝트 포인터(Section Object Pointers)를 이용해 데이터 섹션을 추출하는 것을 특징으로 하는 실행중 파일에서의 실시간 바이러스 치료방법.
KR10-2002-0079231A 2002-12-12 2002-12-12 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법 KR100494499B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0079231A KR100494499B1 (ko) 2002-12-12 2002-12-12 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법
US10/732,530 US20040123136A1 (en) 2002-12-12 2003-12-11 Method for modifying executing file on real time and method for managing virus infected file using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0079231A KR100494499B1 (ko) 2002-12-12 2002-12-12 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법

Publications (2)

Publication Number Publication Date
KR20040051322A KR20040051322A (ko) 2004-06-18
KR100494499B1 true KR100494499B1 (ko) 2005-06-10

Family

ID=32588778

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0079231A KR100494499B1 (ko) 2002-12-12 2002-12-12 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법

Country Status (2)

Country Link
US (1) US20040123136A1 (ko)
KR (1) KR100494499B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974886B1 (ko) * 2007-12-10 2010-08-11 한국전자통신연구원 파일에 삽입된 악성 코드 제거 장치 및 방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7103876B1 (en) * 2001-12-26 2006-09-05 Bellsouth Intellectual Property Corp. System and method for analyzing executing computer applications in real-time
KR20040089386A (ko) * 2003-04-14 2004-10-21 주식회사 하우리 메모리를 감염시키는 바이러스의 치료방법, 프로그램을기록한 컴퓨터로 읽을 수 있는 기록매체 및 바이러스의치료장치
US8234638B2 (en) * 2004-12-28 2012-07-31 Hercules Software, Llc Creating a relatively unique environment for computing platforms
US20060156397A1 (en) * 2005-01-13 2006-07-13 Steven Dai A New Anti-spy method without using scan
WO2007014276A2 (en) * 2005-07-25 2007-02-01 Hercules Software, Llc Direct execution virtual machine
US20070192761A1 (en) * 2006-02-15 2007-08-16 Ravi Sahita Method for adding integrity information to portable executable (PE) object files after compile and link steps
WO2007137090A2 (en) * 2006-05-16 2007-11-29 Hercules Software, Llc Hardware support for computer speciation
KR100968267B1 (ko) * 2008-06-13 2010-07-06 주식회사 안철수연구소 컴파일러 구분에 의한 악성코드 진단장치 및 방법
US8930894B2 (en) * 2008-10-08 2015-01-06 Oracle America, Inc. Method and system for executing an executable file
US10452817B1 (en) * 2009-04-08 2019-10-22 Trend Micro Inc File input/output redirection in an API-proxy-based application emulator
KR101582919B1 (ko) * 2009-05-27 2016-01-07 삼성전자 주식회사 전자장치 및 그 부팅방법
US8584242B2 (en) * 2011-07-12 2013-11-12 At&T Intellectual Property I, L.P. Remote-assisted malware detection
US9268936B2 (en) * 2012-07-27 2016-02-23 Mandiant, Llc Physical memory forensics system and method
US9582665B2 (en) 2014-01-21 2017-02-28 Operation and Data integrity Ltd. Technologies for protecting systems and data to prevent cyber-attacks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168114A (ja) * 1992-11-30 1994-06-14 Nippon Syst Project:Kk コンピュータウイルス防御装置
KR20000063357A (ko) * 2000-06-29 2000-11-06 오경수 무선 바이러스 방역 시스템 및 방역 방법
KR20010092079A (ko) * 2000-03-20 2001-10-24 권석철 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법
KR20020024225A (ko) * 2002-02-06 2002-03-29 (주) 세이프아이 실시간 안티 바이러스 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182178A (ja) * 1993-02-19 1995-07-21 Nec Corp プリロードモジュール修正システム
US6988163B2 (en) * 2002-10-21 2006-01-17 Microsoft Corporation Executing binary images from non-linear storage systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168114A (ja) * 1992-11-30 1994-06-14 Nippon Syst Project:Kk コンピュータウイルス防御装置
KR20010092079A (ko) * 2000-03-20 2001-10-24 권석철 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법
KR20000063357A (ko) * 2000-06-29 2000-11-06 오경수 무선 바이러스 방역 시스템 및 방역 방법
KR20020024225A (ko) * 2002-02-06 2002-03-29 (주) 세이프아이 실시간 안티 바이러스 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100974886B1 (ko) * 2007-12-10 2010-08-11 한국전자통신연구원 파일에 삽입된 악성 코드 제거 장치 및 방법

Also Published As

Publication number Publication date
KR20040051322A (ko) 2004-06-18
US20040123136A1 (en) 2004-06-24

Similar Documents

Publication Publication Date Title
KR100494499B1 (ko) 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법
US7665123B1 (en) Method and apparatus for detecting hidden rootkits
US8078740B2 (en) Running internet applications with low rights
US8607342B1 (en) Evaluation of incremental backup copies for presence of malicious codes in computer systems
US6698016B1 (en) Method for injecting code into another process
US7831791B2 (en) Method of address space layout randomization for windows operating systems
US20100154062A1 (en) Virus Scanning Executed Within a Storage Device to Reduce Demand on Host Resources
US20090249052A1 (en) Booting an electronic device using flash memory and a limited function memory controller
US7437759B1 (en) Kernel mode overflow attack prevention system and method
JP2013520744A (ja) 最小ブートイメージの生成方法及びその装置
US8079032B2 (en) Method and system for rendering harmless a locked pestware executable object
CN1330324A (zh) 数据处理装置与控制非挥发性存储设备重写的方法
US20050044292A1 (en) Method and apparatus to retain system control when a buffer overflow attack occurs
CN101414329B (zh) 删除正在运行中的病毒的方法
US20080148226A1 (en) Apparatus, method, and computer readable medium thereof for generating and utilizing a feature code to monitor a program
US7523319B2 (en) System and method for tracking changed LBAs on disk drive
JP2005316599A (ja) 割込制御装置
US8107337B2 (en) Image processing apparatus and data erasing method
CN1920786A (zh) 实现操作系统安全控制的系统及方法
US6591366B1 (en) Method and configuration for loading data for basic system routines of a data processing system
US8572742B1 (en) Detecting and repairing master boot record infections
US20050138263A1 (en) Method and apparatus to retain system control when a buffer overflow attack occurs
WO2009029450A1 (en) Method of restoring previous computer configuration
US11893113B2 (en) Return-oriented programming protection
JP4627266B2 (ja) 未知のマルウェアによる情報漏洩防止システム

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

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140602

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160601

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190603

Year of fee payment: 15