KR100370229B1 - 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법 - Google Patents

멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법 Download PDF

Info

Publication number
KR100370229B1
KR100370229B1 KR10-2000-0014013A KR20000014013A KR100370229B1 KR 100370229 B1 KR100370229 B1 KR 100370229B1 KR 20000014013 A KR20000014013 A KR 20000014013A KR 100370229 B1 KR100370229 B1 KR 100370229B1
Authority
KR
South Korea
Prior art keywords
program
original
copy
storage device
execution
Prior art date
Application number
KR10-2000-0014013A
Other languages
English (en)
Other versions
KR20010092079A (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-2000-0014013A priority Critical patent/KR100370229B1/ko
Publication of KR20010092079A publication Critical patent/KR20010092079A/ko
Application granted granted Critical
Publication of KR100370229B1 publication Critical patent/KR100370229B1/ko

Links

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
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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
    • G06F9/44594Unloading
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이 자신이 저장되어 있는 저장영역을 수정하는 방법에 관한 것으로, 보다 상세하게는 프로그램이 실행중일 때 저장영역의 해당프로그램에 대한 쓰기(Write)금지 특성을 가진 운영체제상에서 실행중인 프로그램의 복사본을 이용하여 상기 원본 프로그램이 저장된 영역을 수정하는 방법에 관한 것이다.
본 발명은 (1) 원본 프로그램을 실행시킨 후 상기 원본의 복사본 프로그램을 생성시키는 단계와, (2) 상기 단계에 의해 생성한 복사본 프로그램을 실행시킨 후 원본 프로그램을 종료하는 단계를 포함하도록 구성함으로써,
(a) 복사본의 프로세스에 의하여 원본 프로그램을 수정하는 것이 가능하며. (b) 자체 업데이트가 필요한 프로그램에 적용할 수 있으며, (c) 특히 바이러스에 감염된 백신프로그램 자체에 대한 진단 및 치료가 가능하게 하는 장점을 지닌다.

Description

멀티태스킹 운영체제 환경하에서 실행중인 프로그램이 자신이 저장되어 있는 저장영역을 수정하는 방법 {The method to modify the executable file which is stored in a storage deivce, while it is running under multi-tasking OS}
본 발명은 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이 자신이 저장되어 있는 저장영역을 수정하는 방법에 관한 것으로, 보다 상세하게는 프로그램이 실행중일 때 저장영역의 해당프로그램에 대한 쓰기(Write)금지 특성을 가진 운영체제상에서 실행중인 프로그램의 복사본을 이용하여 상기 원본 프로그램이 저장된 영역을 수정(이하 자기수정이라 약칭하기로 한다)하는 방법에 관한 것이다.
과거 90년대 중반까지 MS-DOS 와 같이 싱글태스킹 방식이면서 메모리 관리방식이 단순한 운영체제가 퍼스날컴퓨터에 설치되어 사용되어 오다가 최근에는 마이크로소프트사의 윈도우즈(Windows) 및 유닉스(UNIX)의 사용이 보편화되면서 그와 같은 멀티태스킹 운영체제의 사용이 빠르게 확산되고 있다. 이러한 멀티태스킹 운영체제는 동시에 두 개이상의 작업을 할 수 있게 하는 다중작업(Multitask, 멀티태스크)기능을 지원하고 가상메모리을 사용해 실제메모리의 크기보다 큰 프로그램도 동작시킬 수 있는 기능을 가지고 있다.
MS-DOS상에서는 실행중인 프로그램이 자기수정이 쉽게 이루어진다. 그 이유는 실행중인 프로그램이 자기자신을 수정할 수 있도록 쓰기허가를 운영체제가 제공하기 때문이다. MS-DOS는 프로그램을 실행하기 위해 메모리로 적재할 때 실행프로그램 전체를 적재한 후 실행시키므로 저장장치에 저장되어 있는 해당프로그램이 실행 중에 수정되더라도 실행중인 프로그램의 동작에 영향을 미치지 않기 때문에 쓰기작업이 가능하도록 설계되었다.
도 1에 도시한 바와 같이 MS-DOS를 기반으로 한 응용프로그램들은 필요에 의해 간단하게 자기수정을 가능케하는 특징을 지니고 있다.
상기 도 1에 의한 종래 MS-DOS 기반의 자기수정방법은 사용자에 의해 해당 프로그램의 자기수정요청(101)이 있을 때 해당프로그램을 수정(102)한 후 해당 프로그램을 정상적으로 수행(103)하고, 자기수정요청(101)이 없을 때에는 그냥 해당 프로그램을 정상수행(103)하는 방법에 의하여 간단하게 이루어진다.
하지만 최근에 멀티태스킹 운영체제가 확산되면서 이를 기반으로 한 응용프로그램들은 상기와 같은 방법으로는 자기수정이 불가능하다. 그 이유는 운영체제가 실행프로그램을 실행시키기 위하여 메모리로 적재할 때 프로그램전체를 적재하지 않고 해당시점에서 필요한 영역만을 적재하는 동적적재(Dynamic Loading)방식으로 프로그램을 실행시키기 때문이다. 수정이 가능할 경우 그 영향이 동작중인 프로세스(실행중인 프로그램을 프로세스라고 한다)에 미치기 때문에 실행 중인 프로그램에 대하여는 저장영역에 쓰기권한이 금지되어 있다.
도 2는 상기와 같은 멀티태스킹 운영체제하에서의 종래 자기수정방법을 나타내는 플로우 다이어그램으로서, 상기와 같은 운영체제하에서 작동되는 응용프로그램은 자기자신을 갱신할 필요가 있을 것을 대비하여 갱신/수정만을 담당하는 프로그램 A(소위 업데이터 등이 이에 포함된다)와 실제로 동작을 수행할 프로그램 B로 분리구성되어 있다. 상기 구성에 의하면 사용자에 의해 자기수정요청이 있는 경우 프로그램 A에 의해 프로그램 B를 수정한 후 프로그램 B를 실행하는 방식을 취하나 이 경우라도 A자신이 갱신될 필요가 있을 경우에는 이렇다할 수정방법이 마련되어 있지 않으므로 문제가 있다.
특히 안티바이러스 프로그램(Anti-Virus Program 이하 백신 또는 백신 프로그램)의 경우 자기자신이 바이러스에 감염되어 있을 가능성에 대비 자기자신의 감염여부를 진단하고 치료시 자기수정을 할 수 있는 기능이 구비되어 있어야 하는데 종래의 방법을 응용한다면 백신프로그램을 정상적인 백신동작을 수행하는 프로그램과 그 프로그램을 진단/치료해주는 프로그램으로 분리하고 진단/치료해주는 프로그램을 먼저 동작시키고 이 프로그램이 백신동작을 하는 프로그램을 진단/치료한후 실행시키면 된다. 그러나 진단/치료해주는 프로그램자체의 바이러스 감염에 대한 대책을 다시 세워야하는 문제점이 있어 백신프로그램들은 이 같은 문제를 아직까지도 해결하지 못하고 있는 실정이다.
이와 같이 아직까지 이렇다 할 방법이 개발되어 있지 않은 현 실정 하에서 상기와 같은 문제해결을 위하여는 실행중인 프로그램 자체에 자기수정이 가능한 새로운 프로그램수정방법의 개발이 절실하게 요구된다 할 것이다.
본 발명자는 멀티태스킹 운영체제 하에서 상기한 종래 프로그램이 지니는 한계를 극복하기 위한 방안으로 복사본의 프로세스를 이용한 원본 프로그램 수정방식을 제안한다.
본 발명의 목적은 복사본의 프로세스로 원본 프로그램의 프로그램내용을 수정하여 운영체제에서 오는 제한을 극복하는 방법을 제공하는데 있으며,
본 발명의 또 다른 목적으로는 이 방법으로 백신프로그램 자체에 대한 바이러스의 진단 및 치료를 가능하게 하고자 하는데 있다.
또한 본 발명의 또 다른 목적으로는 원본 프로그램의 수정이 있은 후에 상기 복사본을 자동 삭제함으로써 이후에도 안전한 시스템 환경을 계속 유지하고자 하는 데에 있다.
도 1은 싱글태스킹 운영체제하에서의 종래 자기수정방법을 나타내는 플로우 다이어그램.
도 2는 멀티태스킹 운영체제하에서의 종래 자기수정방법을 나타내는 플로우 다이어그램.
도 3은 멀티태스킹 운영체제하에서의 '프로그램공유규칙'에 대한 설명도.
도 4는 본 발명의 방법을 설명하는 절차 흐름도.
도 5는 본 발명에 의한 자기수정에 의한 자체 업데이트 방법을 나타내는 플로우 다이어그램.
도 6은 본 발명에 의한 백신 프로그램 자체진단 및 치료방법을 나타내는 설명도.
도 7은 본 발명에 의한 컴퓨터바이러스에 대한 백신프로그램의 자체진단 및 치료과정을 나타내는 플로우 다이어그램.
도 8은 본 발명에 있어 해당 프로그램의 실행종료 후 삭제설정기능이 없는 운영체제에 있어서의 바이러스 진단 및 치료과정을 나타내는 플로우 다이어그램.
윈도우즈(windows), 유닉스(unix) 등을 포함한 멀티태스킹(Multitasking)환경을 지원하는 운영체제에 있어서는 이른바 '프로그램공유규칙'이 적용되고 있다. 상기 프로그램공유규칙이라 함은 원본 프로그램을 기반으로 생성된 자신의 프로세스는 모태인 원본 프로그램에 대하여 쓰기(Write)에 대한 액세스권한이 주어지지 않는 것을 의미한다.
따라서 상기 운영체제하에서는 자신의 프로그램에 대하여 읽기(Read)권한만이 부여되고 쓰기권한이 주어지지 않으므로 인해 자신의 프로그램에 대한 편집 및 수정 등의 작업이 불가능하게 된다.
도 3은 소위 멀티태스킹 운영체제하에서의 '프로그램공유규칙'을 보여주고있다.
운영체제는 사용자가 실행을 위해 저장장치내의 하나의 프로그램을 선택(마우스를 이용하여 클릭하는 행위 등을 포함)을 하게 되면 저장장치로부터 해당 프로그램을 메모리영역으로 읽어들여 메모리 영역에 해당 프로그램의 프로세스를 생성시키고 이를 실행시키는 인터페이스 구조를 가지고 있다. 상기 도면에서 보면 저장장치(301)에 저장되어 원본 프로그램(302)을 사용자가 선택하면 메모리영역(303)에 원본 프로그램의 프로세스(304)가 생성된 후 실행이 이루어진다(a). 하지만 상기 프로세스(304)는 자신의 원본 프로그램에 대하여는 쓰기권한이 주어지지 않으므로 편집, 수정 등이 불가능하게 된다(b).
본 발명은 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이 자신이 저장되어 있는 저장영역을 수정하는 방법에 관한 것으로서,
(1) 원본 프로그램을 실행시킨 후 상기 원본의 복사본 프로그램을 저장장치에 생성시키는 단계와,
(2) 상기 단계에 의해 생성한 복사본 프로그램을 메모리에서 실행시킨 후 실행중인 원본 프로그램을 종료하는 단계를 포함한다.
상기 (2)의 단계에 사용된 용어 중 '복사본 프로그램의 실행'에는 원본 프로그램에 대한 쓰기(자기수정)가 포함되는 의미로 사용된다. 이하 상기와 같은 의미로 사용하기로 한다.
상기 과정을 통하여 실행이 되는 복사본 프로그램은 원본 프로그램에 대하여쓰기허가가 주어지므로 자기수정이 가능하게 된다. 따라서 상기 본 발명이 적용가능한 프로그램은 프로그램의 성격상 자기수정의 필요성, 즉 쓰기 권한의 필요성이 있는 모든 프로그램을 포함함은 당업자에게 있어 자명하다.
도 4는 상기 본 발명의 방법을 설명하는 절차 흐름도로서, 원본 프로그램의 실행(401)은 통상적으로 키보드조작에 의하거나 마우스 등을 이용한 클릭 이벤트로서 이루어지며 상기 원본 프로그램의 복사본 프로그램을 저장장치에 생성하는 단계(402)를 포함한다. 상기에서 저장장치는 하드디스크, 플로피 디스크, 롬 등의 마그네틱 저장매체 또는 씨디, 디브이디 등의 광학적 판독 및 기록장치를 포함한 읽고 쓰기가 가능한 저장매체이다. 상기 복사본 프로그램은 상기 저장장치의 소정영역에 할당되어 저장된다.
이때 복사본 프로그램은 해당 운영체제에 의해 원본 프로그램과는 별개 프로그램으로 인식되어지도록 프로그램의 이름을 원본과 다르게 지정하는 등의 조치를 취할 수 있다. 상기 조치로는 구체적으로는 복사본 프로그램의 실행요청시 복사본임을 알리는 인수를 전달하는 방식에 의하여 이루어지는 것이 바람직하다.
본 발명은 상기 복사본 프로그램의 생성단계(402)를 거친 후 복사본 프로그램의 실행(403)은 통상적인 프로그램의 실행과 같이 메모리에서 이루어지며 이 후 원본 프로그램을 종료(404)하고 상기 복사본 프로그램에 의한 원본 프로그램 쓰기를 시행하는 단계를 포함한다.
또한 상기 본 발명은 효율적인 컴퓨팅 환경을 유지하기 위해 복사본 프로그램의 실행종료와 함께 스스로 저장장치에서 삭제되도록 하는 단계를 추가하는 것이 바람직하다.
또한 본 발명은 멀티태스킹 운영체제하에서 프로그램의 자기수정에 의한 자체 업데이트 방법을 포함한다. 상기 자체 업데이트 방법은,
(1) 원본 프로그램을 실행시킨 후 상기 원본의 복사본 프로그램을 저장장치에 생성시키는 단계와,
(2) 상기 단계에 의해 생성한 복사본 프로그램을 메모리에서 실행시킨 후 원본 프로그램을 종료하는 단계 및,
(3) 상기 복사본 프로그램의 실행으로 원본 프로그램을 수정함으로써 원본을 업데이트시킨 후 원본 프로그램을 실행하는 단계를 포함한다.
상기에서 (1) 및 (2)의 단계는 전술한 바와 같으며, (3)의 원본 프로그램의 실행단계는 (2)의 단계를 거쳐 실행되는 복사본 프로그램에 의하여 원본 프로그램을 업데이트한 후 복사본 프로그램은 종료하면서 이 후 업데이트되어진 원본 프로그램이 실행되는 단계를 포함한다.
또한 상기 (3)의 단계는 인터넷을 통한 최신 업데이트 프로그램으로의 수정단계를 포함하는 것이 바람직하다. 상기의 인터넷을 통한 최신 업데이트 프로그램로의 수정은 인터넷 상에서 해당 프로그램의 공급업체가 제공하는 웹서버에 접속함으로써 현재까지 제공되는 업데이트 프로그램과 현재 사용자가 사용하는 프로그램과의 버전을 스스로 체크하여 가장 최신 버전의 프로그램으로 수정하는 과정을 포함한다. 상기의 경우 사용자는 원본 프로그램을 실행하는 하나의 이벤트만으로도 자동으로 최신 버전의 프로그램을 구비하게 되므로 매우 효과적이다.
도 5는 상기 프로그램의 자기수정에 의한 자체 업데이트 방법을 나타내는 플로우 다이어그램을 나타낸다.
프로그램 사용자가 원본이 되는 프로그램을 시작하면 상기 프로그램은 복사본이 아닌 원본에 해당(501)단계에서 복사본 여부를 판단한 결과)하므로 저장장치에 상기 원본에 대한 복사본 프로그램을 생성(502)한다. 원본 프로그램은 이후 상기 복사본 프로그램에 대하여 현재 사용 중인 운영체제가 이를 실행시킬 것을 요구(503)하면서 원본 프로그램 자신은 종료하는 과정을 포함하는 것이 바람직하다.
상기 단계에서 운영체제에 대하여 복사본 프로그램의 실행 요구시 피호출프로그램이 복사본임을 알리는 인수를 함께 전달하는 것이 바람직하다. 이때 인수에는 복사본의 프로그램 이름을 원본의 프로그램 이름과 다르게 구성하는 정보를 포함하는 것이 바람직하다.
상기 단계에 의하여 복사본 프로그램의 실행요청이 있는 경우 상기 복사본 프로그램은 원본 프로그램과 동일한 프로세스를 수행하므로 원본 프로그램의 초기 실행단계와 동일한 과정을 겪게 되지만, 복사본에 해당하므로(501에서 판단) 이후 업데이트서버에 접속(504)하여 버전 비교작업(505)을 통해 자기수정 즉 자체업데이트가 필요한지 판단한다(505). PC에 설치되어 있는 원본의 버전과 서버에 등록된동일파일의 버전을 비교하여 서버에 있는 파일이 최신의 버전이면 자기수정이 필요한 경우이다. 상기 업데이트서버는 저장장치에 최신버전의 파일을 보관하고 네트웍상의 원격지 PC 또는 상기 저장장치를 판독할수 있는 PC의 요청을 받아 최신버전의 파일을 공급할 수 있는 네트웍상의 시스템 또는 저장장치를 포함한다. 상기 단계에서 자기수정의 필요가 없다고 판단되는 경우에는 정상적으로 자신의 프로그램을 수행하면 되고, 이와는 달리 자기수정의 필요가 있는 경우에는 원본 프로그램을 갱신(업데이트)(507)하고, 이 후 원본의 실행을 현재의 운영체제에 요구(508)하며 자신의 복사본 프로그램은 종료하도록 하는 과정을 포함하는 것이 바람직하다.
상기 원본의 실행요구 단계(508)에서 원본을 실행시킬때 피호출프로그램이 원본임을 알리는 인수를 포함하는 것이 바람직하다.
또한 복사본의 실행종료시 저장장치로부터 삭제되도록 프로그램 자체에 설정하여 두는 것이 바람직하다. 이는 복사본의 실행이 종료하면 자동으로 운영체제에 의하여 삭제되도록 설정하는 것이 가능하며, 만일 상기와 같이 복사본 프로그램의 삭제가 불가능한 운영체제라 하더라도 사용자에 의한 초기실행은 항상 원본에서 출발하기 때문에 사용자 측면에서는 항상 최신버전으로 동작되는 것으로 보이게 된다. 또한 상기와 같이 복사본 프로그램의 실행종료 후 복사본 프로그램에 대한 삭제설정이 불가능한 경우에는 원본 프로그램의 실행요구시 복사본을 삭제토록 하는 인수를 함께 전달하는 방법에 의하여 삭제하는 것이 가능하다.
또한 본 발명에 의한 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법에는 컴퓨터바이러스에 대한 백신프로그램의 자체진단 및 치료방법을 포함한다.
컴퓨터 바이러스란 자기복제, 감염, 파괴작업을 수행하는 프로그램으로 일반프로그램과 마찬가지로 컴퓨터의 기억장소에서 실행이 되어진다. 컴퓨터 바이러스는 자기자신과 동일한 바이러스를 계속 증식시켜 나가며 연쇄적으로 다른 시스템에 전염을 일으키고 경우에 따라서는 디스켓을 포맷시키거나 원본프로그램에 손상을 입혀 시스템을 파괴하는 행위를 한다.
상기와 같은 컴퓨터 바이러스는 여러가지 기준에 의하여 분류되어질 수 있지만 그 중 동작원리에 따라 기억장소에 상주하는 형태와 상주하지 않는 형태로 분류할 수 있다. 비상주형 바이러스의 경우 감염된 프로그램이 실행이 될때 자신의 코드가 먼저 실행되게 하여 다른 프로그램을 감염시키지만 상주형 바이러스의 경우에는 감염된 프로그램이 한번 실행된 후 기억장소에 상주함으로써 이후에 실행되는 프로그램들을 계속하여 감염시켜 나간다.
백신 프로그램은 컴퓨터바이러스를 예방, 진단 또는 치료할 수 있는 프로그램으로 이들 프로그램도 컴퓨터 기억장소로 불려 읽혀져 실행이 되는 점에서 일반 프로그램과 다를 것이 없다. 따라서 비상주형 바이러스의 경우 감염된 프로그램이 실행되지만 않으면 이를 검색하는 백신프로그램을 감염시키는 염려는 없으나, 기억장소에 이미 바이러스가 상주하고 있는 경우에는 이를 치료하기 위하여 실행되는 백신프로그램도 바이러스에 감염될 수 있다.
백신프로그램이 바이러스에 의해 감염된 경우 스스로를 진단하고 치료하여야하지만 이미 자신의 프로그램이 실행중인 경우에는 원본프로그램에 대하여 읽기권한만 주어지고 쓰기권한이 주어지지 아니하므로 바이러스 진단은 가능하나 치료는 불가능하게 된다.
본 발명은 컴퓨터바이러스에 대한 백신프로그램의 자체진단 및 치료방법으로서 다음과 같은 단계를 포함한다.
(1) 원본 백신프로그램을 실행시킨 후 상기 원본의 복사본 프로그램을 저장장치에 생성시키는 단계와,
(2) 상기 단계에 의해 생성한 복사본 프로그램을 메모리에서 실행시킨 후 원본 백신프로그램을 종료하는 단계.
상기 단계에 의하여 복사본 프로그램은 원본 백신프로그램에 대하여 쓰기권한이 인정되므로 원본 백신프로그램을 진단 및 치료하는 것이 가능하게 된다.
원본 백신프로그램의 실행은 통상적으로 키보드조작에 의하거나 마우스 등을 이용한 클릭 이벤트로서 이루어지며 상기 원본 백신프로그램의 복사본 프로그램을 저장장치에 생성하는 단계를 포함한다.
이때 복사본 프로그램은 원본 백신프로그램과는 별개 프로그램으로 인식되어 동작되도록 하는 인수를 전달받을 수 있다.
본 발명은 상기 복사본 프로그램의 생성단계를 거친 후 복사본 프로그램의 실행은 통상적인 프로그램의 실행과 같이 메모리에서 이루어지며 이 후 원본 백신프로그램을 종료하고 상기 복사본 프로그램에 의한 원본 백신프로그램을 진단 및 치료하는 단계를 포함한다.
또한 본 발명은 상기 복사본 프로그램을 프로그램의 실행종료와 함께 스스로 저장장치에서 삭제하도록 하는 단계를 더 포함하는 것이 바람직하다. 상기 복사본 프로그램의 경우 원본 백신프로그램으로부터 유래된 '복사본'에 불과하지만 이 역시 저장장치의 특정영역에 저장되어 있는 프로그램으로서 바이러스에 감염되어 질 수 있음은 당연하다. 이러한 이유로 프로그램의 종료와 함께 복사본 프로그램을 저장장치에서 흔적도 없이 사라지게 함으로써 깨끗한 컴퓨팅 환경을 유지하는 것이 바람직하다.
도 6은 본 발명의 백신 프로그램 자체진단 및 치료방법을 도식화한 것으로서,
저장장치(601) 상의 특정영역에 위치한 원본이 되는 백신프로그램(603)과 상기 백신프로그램이 메모리 영역(605)에서 실행되는 프로세스(이하 'A 프로세스'라고 칭함)(607) 및 상기 원본 백신프로그램의 복사본 프로그램(이하 'B 프로세스'라고 칭함)(609)의 실행관계를 보여주고 있다.
상기 그림에서와 같이 바이러스에 감염된 원본 백신프로그램(바이러스는 도면상에 'V'자로 표시하였다)을 실행하면 먼저 메모리영역에 상주하는 바이러스가 있는지 확인한 후 존재하면 이를 제거한다. 그리고 메모리영역에서 A 프로세스가 형성되어 실행됨(a단계)과 동시에 메모리영역 및 선택된 드라이브내의 내용을 검색하여 바이러스 감염여부를 진단하고 치료하게 된다. 이때 A 프로세스는 자신의 프로그램에 대하여 '프로그램공유규칙'에 의하여 쓰기 권한이 없다. 따라서 A 프로세스는 바이러스에 감염된 원본 백신프로그램을 치료할 수 없게 된다. 이때 원본 백신프로그램의 복사본 프로그램을 저장장치에 생성하여(b단계) 상기 복사본 프로그램을 메모리영역으로 올려 실행시킴(c단계)과 동시에 A 프로세스를 종료(d단계)하면 B 프로세스는 원본인 백신프로그램과는 쓰기권한이 부여되므로 당해 백신프로그램의 바이러스 진단 및 치료가 가능하게 된다(e단계).
도 7은 상기 본 발명을 이용하여 컴퓨터바이러스에 대한 백신프로그램의 자체진단 및 치료과정을 설명하기 위한 플로우 다이어그램으로서,
프로그램 사용자가 원본인 백신프로그램을 시작하면 상기 프로그램은 복사본이 아닌 원본에 해당(701단계에서 원본여부 판단)하므로 실행과 함께 메모리영역을 진단 및 치료(703)하고, 저장장치에 상기 원본에 대한 복사본 프로그램을 생성(705)한다. 원본 백신프로그램은 이후 상기 복사본 프로그램에 대하여 현재 사용 중인 운영체제가 이를 실행시킬 것을 요구(707)하면서 원본 프로그램 자신은 종료하는 과정을 포함하는 것이 바람직하다.
상기 단계에서 복사본 생성시에는 복사본의 프로그램이름을 원본의 프로그램이름과 다르게 구성하는 것이 바람직하다. 그리고 운영체제에 대하여 복사본 프로그램의 실행 요구시 피호출프로그램이 복사본임을 알리는 인수를 함께 전달하고 또한 복사본의 실행종료 후에는 저장장치에서 삭제되도록 설정하여 두는 것이 바람직하다.
상기 단계에 의하여 복사본 프로그램의 실행요청이 있는 경우 상기 복사본 프로그램은 원본 프로그램과 동일한 프로세스를 수행하므로 원본 프로그램의 초기실행단계와 동일한 과정을 겪게 되지만, 복사본에 해당하므로(701단계에서 판단) 이후 원본 프로그램을 진단 및 치료(709)할 수 있게 된다. 복사본 프로그램에 의한 원본 프로그램의 진단 및 치료가 이루어진 후에 복사본 프로그램은 백신고유의 정상적인 프로그램으로서 동작하며 프로그램 종료시 상기 복사본 프로그램은 저장장치로부터 삭제되어진다.
상기 백신프로그램의 자체진단 및 치료방법에는 도 5에 도시한 프로그램 업데이트과정에서와는 달리 원본의 수정(바이러스의 치료)이 있은 후 원본 실행의 요청단계를 필요로 하는 것은 아니다. 그 이유는 상술한 업데이트과정은 사용자의 요구에 의한 실행시점에서 항상 최신의 프로그램이 동작될 것을 요하는 반면에 백신프로그램의 자체 진단 및 치료과정은 "프로그램의 동작과 무관한" 악성프로그램인 바이러스의 제거 후에도 프로그램의 동작에는 영향을 주지 않으므로 원본에 대한 재호출 없이도 복사본의 정상수행영역을 동작시키면 충분하기 때문이다.
상기에서 '프로그램의 동작과 무관한'의 의미는 바이러스들의 감염동작은 초기 실행시 자신이 먼저 동작되도록 실행흐름을 바꾸어 놓고, 해당 프로그램에 달라붙기 때문에 바이러스 부분을 제거하고 원래의 실행흐름으로 되돌리기만 하면 되고 이때 정상적으로 수행하는 영역자체가 변형되지 않는다는 의미로 사용된다.
앞서 설명한 바와 같이 운영체제에 따라서는 프로그램의 실행종료 후 삭제설정기능이 없는 경우도 있게 된다. 이러한 경우 별도로 원본에 복사본 삭제기능을 부여하여야 하는데 이러한 기능은 바이러스 진단 및 치료 프로그램의 전체 프로그램 수행과정이 종료된 후에 이루어져야 한다.
도 8은 본 발명의 또 다른 실시예로서 해당 프로그램의 실행종료 후 삭제설정기능이 없는 운영체제에 있어서의 바이러스 진단 및 치료과정을 보여주고 있다.
원본프로그램의 초기 실행과정은 이미 앞에서 설명한 바와 동일하며 복사본이 아닌 원본 프로그램이므로 복사본 삭제요청(802)단계에서 "아니오"의 절차를 밟게 된다. 그런 다음 복사본 프로그램을 저장장치의 소정영역에 생성(803)하고, 복사본의 실행을 요청(804)하고, 원본프로그램 자신은 종료하는 단계는 앞에서와 동일하다. 다만 상기 복사본 실행의 요청단계에서 프로그램 종료 후의 삭제설정이 불가능하므로 피프로그램의 호출시 복사본임을 알리는 인수전달만이 가능하다는 차이가 있다.
원본 프로그램의 종료 후 실행되는 프로그램은 복사본에 해당(801)하므로 원본 백신프로그램을 진단 및 치료(805)하고, 상기 복사본 프로그램이 정상적으로 수행된 후에 원본의 실행을 요청(806)하고, 피호출프로그램이 원본프로그램임을 알리는 인수와 함께 복사본 삭제요청 인수를 함께 운영체제에 전달한다.
상기 과정을 거친 후 실행되는 프로그램은 원본 백신프로그램이며 복사본 프로그램이 아니므로 복사본 삭제요청(802)에 따라 복사본을 삭제(807)할 수 있게 된다.
상기 설명한 백신프로그램의 자체진단 및 치료과정은 백신 프로그램을 사용하는 사용자에게는 느낄 수 없을 만큼 순식간에 발생하게 되므로 사용자는 종래와 변함없이 편리하게 사용할 수가 있다.
본 발명에 의한 자체 프로그램의 수정방법은 이상과 같이 멀티태스킹환경하에서 자신의 프로그램에 대한 쓰기권한이 요구되는 모든 프로그램에 적용이 가능함을 알 수 있다. 다만 운영체제에 따라 적용되는 구체적인 실시형태는 다소 차이가 있을 수 있으나 이는 당업자에 있어 오로지 어느 형식에 의할 것이냐 하는 선택의 문제일 뿐 본 발명의 권리범위를 벗어나는 것은 아니다.
본 발명에 의하면 복사본의 프로세스에 의하여 원본 프로그램(프로그램)을 수정하는 것이 가능하다. 또한 본 발명은 자체 업데이트가 필요한 프로그램에 적용할 수 있으며, 특히 바이러스에 감염된 백신프로그램 자체에 대한 진단 및 치료가 가능하게 된다. 또한 복사본에 의하여 바이러스에 대한 진단 및 치료가 행해진 이후에는 상기 복사본 프로그램을 삭제하도록 함으로써 깨끗한 컴퓨팅 환경을 제공하는 것이 가능한 효과가 있다.

Claims (23)

  1. 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이 자신이 저장되어 있는 저장영역을 수정하는 방법에 있어서,
    원본 프로그램을 메모리에서 실행시킨 후 상기 원본의 복사본 프로그램을 저장장치에 생성시키는 단계와,
    상기 단계에 의해 생성한 복사본 프로그램을 메모리에서 실행시킨 후 원본 프로그램의 실행을 종료하는 단계를 포함함으로써 복사본에 의해 원본 프로그램을 수정하는 것을 특징으로 하는 프로그램의 자기수정방법.
  2. 제 1항에 있어서, 상기 복사본 프로그램의 실행종료와 함께 저장장치에서 상기 복사본 프로그램은 삭제되도록 하는 단계를 추가로 구비하는 것을 특징으로 하는 프로그램의 자기수정방법.
  3. 삭제
  4. 제 1항에 있어서, 상기 저장장치로는 마그네틱 저장매체, 광학적 판독 및 기록 장치인 것을 특징으로 하는 프로그램의 자기수정방법.
  5. 제 1항 또는 제 2항에 있어서, 상기 원본 프로그램은 자신의 프로그램에 대하여 쓰기권한이 요구되어지는 프로그램임을 특징으로 하는 프로그램의 자기수정방법.
  6. 제 1항 또는 제 2항에 있어서, 상기 원본 프로그램은 복사본 프로그램을 저장장치에 생성한 후에 실행종료되도록 하는 것을 특징으로 하는 프로그램의 자기수정방법.
  7. 제 1항에 있어서, 상기 복사본 프로그램의 실행요구시 복사본임을 알리는 인수를 함께 전달하는 것을 특징으로 하는 프로그램의 자기수정방법.
  8. 제 1항에 있어서, 상기 원본 프로그램은 컴퓨터 바이러스 백신프로그램인 것을 특징으로 하는 프로그램의 자기수정방법.
  9. 제 8항에 있어서, 상기 복사본 프로그램의 실행종료와 함께 저장장치에서 상기 복사본 프로그램은 삭제되도록 하는 단계를 추가로 구비하는 것을 특징으로 하는 프로그램의 자기수정방법.
  10. 삭제
  11. 제 8항 또는 제 9항에 있어서, 상기 저장장치로는 마그네틱 저장매체, 광학적 판독 및 기록장치인 것을 특징으로 하는 프로그램의 자기수정방법.
  12. 제 8항 또는 제 9항에 있어서, 상기 원본 프로그램은 복사본 프로그램을 저장장치에 생성한 후에 실행종료되도록 하는 것을 특징으로 하는 프로그램의 자기수정방법.
  13. 제 8항 또는 제 9항에 있어서, 상기 복사본 프로그램의 실행요구시 복사본임을 알리는 인수를 함께 전달하는 것을 특징으로 하는 프로그램의 자기수정방법.
  14. 멀티태스킹 운영체제하에서 자체 업데이트를 위한 프로그램의 자기수정방법에 있어서,
    원본 프로그램을 메모리에서 실행시킨 후 상기 원본의 복사본 프로그램을 저장장치에 생성시키는 단계와,
    상기 단계에 의해 생성한 복사본 프로그램을 메모리에서 실행시킨 후 원본 프로그램의 실행을 종료시키는 단계 및,
    상기 복사본 프로그램의 실행으로 원본 프로그램을 수정함으로써 원본을 업데이트시킨 후 원본 프로그램을 메모리에서 실행시키는 단계를 포함하는 것을 특징으로 하는 프로그램의 자기수정방법.
  15. 제 14항에 있어서, 상기 복사본 프로그램의 실행종료와 함께 상기 복사본 프로그램은 저장장치에서 삭제되도록 하는 단계를 추가로 구비하는 것을 특징으로 하는 프로그램의 자기수정방법.
  16. 제 14항 또는 제 15항에 있어서, 상기 원본 프로그램과 동일한 복사본 프로그램은 저장장치에 생성하는 것을 특징으로 하는 프로그램의 자기수정방법.
  17. 제 14항 또는 제 15항에 있어서, 상기 저장장치로는 마그네틱 저장매체, 광학적 판독 및 기록장치인 것을 특징으로 하는 프로그램의 자기수정방법.
  18. 제 14항 또는 제 15항에 있어서, 상기 복사본 프로그램의 실행요구시 복사본임을 알리는 인수를 함께 전달하는 것을 특징으로 하는 프로그램의 자기수정방법.
  19. 제 14항 또는 제 15항에 있어서, 원본을 업데이트시킨 후 원본의 실행요구시 원본을 실행시킬때 피호출프로그램이 원본임을 알리는 인수를 함께 전달하는 것을 특징으로 하는 프로그램의 자기수정방법.
  20. 제 14항 또는 제 15항에 있어서, 원본 프로그램의 업데이트 정보는 해당 프로그램을 제공하는 웹서버로부터 네트워크를 통하여 제공되는 것을 특징으로 하는프로그램의 자기수정방법.
  21. 제 20항에 있어서, 상기 네트워크는 인터넷인 것을 특징으로 하는 프로그램의 자기수정방법.
  22. 제 8항 또는 제 14항에 있어서, 복사본 프로그램의 실행종료 후 복사본 프로그램에 대한 삭제설정이 불가능한 경우에 있어서,
    복사본 프로그램의 실행 종료와 함께 원본 프로그램을 메모리에서 실행하여 복사본을 저장장치에서 삭제토록 하는 단계를 추가로 구비하는 것을 특징으로 하는 프로그램의 자기수정방법.
  23. 제 22항에 있어서, 상기 원본 프로그램의 실행요청시 복사본 프로그램의 삭제요청인수를 함께 전달하는 것을 특징으로 하는 프로그램의 자기수정방법.
KR10-2000-0014013A 2000-03-20 2000-03-20 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법 KR100370229B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0014013A KR100370229B1 (ko) 2000-03-20 2000-03-20 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0014013A KR100370229B1 (ko) 2000-03-20 2000-03-20 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법

Publications (2)

Publication Number Publication Date
KR20010092079A KR20010092079A (ko) 2001-10-24
KR100370229B1 true KR100370229B1 (ko) 2003-01-29

Family

ID=19656720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0014013A KR100370229B1 (ko) 2000-03-20 2000-03-20 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법

Country Status (1)

Country Link
KR (1) KR100370229B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100494499B1 (ko) * 2002-12-12 2005-06-10 주식회사 안철수연구소 실행중인 파일에 대한 실시간 데이터 수정 방법 및 이를이용한 바이러스 치료방법
KR20040089386A (ko) * 2003-04-14 2004-10-21 주식회사 하우리 메모리를 감염시키는 바이러스의 치료방법, 프로그램을기록한 컴퓨터로 읽을 수 있는 기록매체 및 바이러스의치료장치
KR100818915B1 (ko) 2004-01-28 2008-04-04 삼성전자주식회사 무선 신호의 출력을 제어하기 위한 시스템, 장치 및 제어 방법
KR100927974B1 (ko) * 2007-10-09 2009-11-24 주식회사 안철수연구소 실행 이미지의 원본 코드 생성 시스템 및 그 방법

Also Published As

Publication number Publication date
KR20010092079A (ko) 2001-10-24

Similar Documents

Publication Publication Date Title
US7114184B2 (en) System and method for restoring computer systems damaged by a malicious computer program
AU2002250453A1 (en) System and method for restoring computer systems damaged by a malicious computer program
US7188127B2 (en) Method, system, and program for processing a file request
JP5079084B2 (ja) コンピュータ・システムの操作を防止するための方法及びデータ処理システム
JP4348036B2 (ja) ファイル中にバージョン固有プロパティを作成し保持する方法およびシステム
KR101201118B1 (ko) 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법
JP4931255B2 (ja) 仮想化されたファイル・システム
US20050081053A1 (en) Systems and methods for efficient computer virus detection
KR101806499B1 (ko) 파일 관리 방법 및 이를 이용한 파일 관리 장치
JPH08328846A (ja) ウィルス対応型記憶装置
JP2005129066A (ja) オペレーティングシステムリソース保護
PL180841B1 (pl) Sposób sterowania systemu komputerowego
JPH0844630A (ja) ファイルアクセス制御装置およびその制御方法
KR20100025116A (ko) 완전삭제를 이용한 자동적인 문서유출 방지 시스템
KR100370229B1 (ko) 멀티태스킹 운영체제 환경하에서 실행중인 프로그램이자신이 저장되어 있는 저장영역을 수정하는 방법
KR100613126B1 (ko) 컴퓨터에서의 악성 코드 제거 방법 및 그 장치, 그 방법을컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한기록매체
JP7332951B2 (ja) 処理サーバ、処理方法および処理プログラム
JP2005099982A (ja) ファイル監視装置
KR100413195B1 (ko) 비가시화 방법을 이용한 컴퓨터 파일 시스템 복원/보호 시스템 및 그 방법
US7269830B2 (en) Methods and hardware for safe memory allocation in arbitrary program environments
JPS5941208B2 (ja) ケイサンキシステムニオケルホゴソウチ
Allison A tale of two standards
JP2001202279A (ja) ファイル管理方法及びファイル管理プログラム記録媒体
Delfino A tour of DOS 6
Koeritz et al. Anomalies Encountered in Ada Exception Handling

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee