KR100766863B1 - 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그방법 - Google Patents

이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그방법 Download PDF

Info

Publication number
KR100766863B1
KR100766863B1 KR1020060123495A KR20060123495A KR100766863B1 KR 100766863 B1 KR100766863 B1 KR 100766863B1 KR 1020060123495 A KR1020060123495 A KR 1020060123495A KR 20060123495 A KR20060123495 A KR 20060123495A KR 100766863 B1 KR100766863 B1 KR 100766863B1
Authority
KR
South Korea
Prior art keywords
storage device
file
removable storage
log
registry
Prior art date
Application number
KR1020060123495A
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 KR1020060123495A priority Critical patent/KR100766863B1/ko
Application granted granted Critical
Publication of KR100766863B1 publication Critical patent/KR100766863B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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]
    • 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

Landscapes

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

Abstract

본 발명은 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그 방법에 관한 것으로, 소프트웨어 인스톨시 로컬디스크에 대한 파일의 기록, 삭제 및 속성변경을 모니터링하여 로컬 디스크 액세스 내역을 파일 로그로 기록하는 파일 모니터; 및 레지스트리에 액세스 하기 위한 명령어를 후킹하여 이를 레지스트리 로그로 기록하고, 기록된 것과 동일한 명령어를 생성하여 커널로 전송하는 필터 드라이버;를 구비하는 것으로 이동식저장장치에 저장되는 데몬(Disk And Execution MONitor); 및 상기 이동식저장장치의 설치시 자동실행되어 상기 데몬의 실행을 위한 환경을 구성하고, 데몬을 실행한 후 스스로 종료하는 환경구성 모듈;을 구비하는 것을 특징으로 한다.
이동식저장장치, 데몬, 파일 모니터, 필터 드라이버, 서비스 모니터, 환경구성 모듈, 라이센스 관리모듈, 라이센스 서버

Description

이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그 방법{SOFTWARE-INSTALLATION SYSTEM USING MOVABLE DATA STORAGE AND METHOD THEREOF}
도 1은 본 발명의 이동식저장장치를 이용한 소프트웨어 설치 시스템의 구성을 도식적으로 표현한 기능블록도이며,
도 2는 본 발명의 일실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법을 시계열적으로 도시한 플로우차트이며,
도 3는 본 발명의 이실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법의 실시과정을 시계열적으로 도시한 플로우차트이며,
도 4는 본 발명의 삼실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법의 실시과정을 시계열적으로 도시한 플로우차트이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 이동식저장장치 110 : 데몬
111 : 파일 모니터 112 : 필터 드라이버
113 : 서비스 모니터 120 : 환경구성 모듈
130 : 라이센스 관리모듈 200 : PC
300 : 라이센스 서버
본 발명은 소프트웨어의 인스톨시 설치관련 정보를 수집하여 이동식저장장치에 기록한 다음, 이동식저장장치를 다른 PC에 설치하여 해당 소프트웨어를 사용할 수 있도록 하기 위한 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그 방법에 관한 것이다.
보다 구체적으로는 소프트웨어의 인스톨시 로컬디스크의 액세스 과정을 모니터링하여 파일의 기록, 변경을 분석하고, 사용자모드(user-mode) 어플리케이션에 의하여 접근될 수 없는 레지스트리 액세스 과정을 소프트웨어 인터럽트의 처리과정에서 후킹하여 분석하고, 운영체계에 등록되는 서비스의 구동을 프로세스를 모니터링 함으로써 다수의 PC에서 동일한 어플리케이션을 사용할 수 있도록 하는 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그 방법에 관한 것이다.
컴퓨터 하드웨어와 소프트웨어 기술의 발달로 컴퓨팅 환경은 날로 복잡해져 가고 있으며, 유저들은 회사나 기타 여러 장소에서 동일한 환경에서 작업할 수 있기를 희망하고 있으나 점점 크기가 커져가는 소프트웨어를 매번 설치하고, 환경설정을 하는 것은 너무도 불편한 일이 되어버렸다.
이에 웹 서비스의 일환으로 자바 기반의 분산컴퓨팅 환경에서 웹에 접속하는 것만으로 언제든 동일한 작업환경에서 동일한 소프트웨어를 이용할 수 있도록 하는 기술이 개발되어 상용화된 바 있다. 그러나, 플랫폼에 독립적으로 어디서든 웹에 접속하는 것만으로 동일한 작업환경을 보장받을 수 있다는 장점에도 불구하고, (특히, 자바 가상머신 위에서 구동되는 경우) 지나치게 느린 동작속도와 인터넷 망의 대역폭의 한계로 인하여 매번 접속시마다 대용량의 데이터를 수신하여야 한다는 한계가 있어 시장의 환영을 받지 못하고 곧 사장되었다.
이러한 한계점을 극복하기 위하여, 2005년 미국 스탠포드 대학의 교수인 모니카 램(Monica Lam)은 Moka5라는 팀을 결성하여 LivePC라는 제품을 개발, 출시하기에 이르렀다(www.moka5.com 참조). LivePC는 사용자의 PC의 작업환경을 단일한 이미지로 만들어 USB 메모리 등을 이용해 다수의 다른 PC에서도 동일한 작업환경을 구현할 수 있도록 하는 기술로 인터넷 망을 통한 어플리케이션 스트리밍과는 달리 대역폭의 한계에 의한 문제점을 해결할 수 있었다. 그러나, vmware를 이용하여 에뮬레이션하는 방식을 채택함으로써 컴퓨터 하드웨어 발전속도에 발맞추어 비대해지는 운영체계와 응용소프트웨어의 구동속도는 현저하게 떨어질 수 밖에 없다는 태생적 한계를 내포하고 있다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 이동식저장장치를 이용하여 사용자의 PC의 작업환경과 동일한 작업환경을 다른 다수의 PC에서 제공하기 위한 이동식저장장치를 이용한 소프트웨어 설치 시스템을 제공하는 것이다.
본 발명의 다른 목적은 소프트웨어 인스톨 과정을 다양한 채널을 통하여 모니터링하여 이동식저장장치에 이미지화해 저장함으로써 다른 다수의 PC에서 인스톨 과정을 대폭 생략하여 이를 실행할 수 있도록 하기 위한 이동식저장장치를 이용한 소프트웨어 설치 방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위한 본 발명의 이동식저장장치를 이용한 소프트웨어 설치 시스템은 소프트웨어 인스톨시 로컬디스크에 대한 파일의 기록, 삭제 및 속성변경을 모니터링하여 로컬 디스크 액세스 내역을 파일 로그로 기록하는 파일 모니터; 및 레지스트리에 액세스 하기 위한 명령어를 후킹하여 이를 레지스트리 로그로 기록하고, 기록된 것과 동일한 명령어를 생성하여 커널로 전송하는 필터 드라이버;를 구비하는 것으로 이동식저장장치에 저장되는 데몬(Disk And Execution MONitor); 및
상기 이동식저장장치의 설치시 자동실행되어 상기 데몬의 실행을 위한 환경을 구성하고, 데몬을 실행한 후 스스로 종료하는 환경구성 모듈;을 구비하는 것을 특징으로 한다.
특히, 상기 데몬은 이동식저장장치의 고유식별번호를 라이센스 서버로 전송하여, 새롭게 컴파일된 동적링크라이브러리 파일을 수신함으로써 라이센스를 관리하는 라이센스 관리모듈;과
소프트웨어 인스톨 과정에서 운영체계에 등록되어 자동으로 구동되는 서비스 를 모니터링 하여 해당 서비스의 구동을 위한 파일경로와 인자값을 모니터링 하여 해당 파일을 상기 이동식저장장치 내부에 별도로 저장함과 동시에 저장된 경로와 인자값을 별도의 서비스 로그로 저장하는 서비스 모니터를 더 구비할 수 있다.
한편, 상기와 같은 목적을 달성하기 위한 본 발명의 일실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법은 소프트웨어 인스톨시, 로컬 디스크 액세스를 모니터링함과 동시에 레지스트리에 액세스하기 위한 명령어를 후킹하는 제 110 단계;
상기 제 110 단계에서 로컬 디스크로 파일이 저장된 경우 저장된 파일을 이동식저장장치 내부로 카피 또는 이동시키되, 기존의 저장경로와 상기 이동식저장장치 내부의 저장경로를 각각 기록하여 파일 로그를 저장하는 제 120 단계;
상기 제 110 단계에서 후킹된 레지스트리 액세스를 위한 명령어를 순차적으로 레지스트리 로그로 기록하되, 후킹된 명령어와 동일한 명령어를 커널로 전달하는 제 130 단계; 및
소프트웨어 인스톨이 완료됨에 따라 상기 이동식저장장치 내부에 해당 소프트웨어에 대한 이미지를 생성하는 제 140 단계;로 구성되는 것을 특징으로 한다.
한편, 상기와 같은 목적을 달성하기 위한 본 발명의 이실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법은 이동식저장장치를 설치함에 따라 상기 환경구성 모듈이 자동실행되어 데몬의 구동환경을 구축한 다음, 데몬을 구동하는 제 210 단계;
파일 로그를 읽어 이동식저장장치 내부에 저장된 파일을 상기 로그에 기록된 로컬디스크의 목표 경로로 각각 카피하되, 동일한 이름의 파일이 존재하는 경우 기존의 파일을 별도의 경로로 백업하되, 백업 전과 후의 경로를 백업 파일 로그에 기록하는 제 220 단계; 및
레지스트리 로그에 기록된 것과 동일한 레지스트리 액세스를 위한 명령어를 생성하여 커널로 전달하되, 상기 명령어에 의한 액세스 전의 레지스트리 값을 백업 레지스트리 로그에 저장하는 제 230 단계;로 구성되는 것을 특징으로 한다.
한편, 상기와 같은 목적을 달성하기 위한 본 발명의 삼실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법은 파일 로그를 읽어 로컬디스크의 목표 경로에 저장된 파일을 모두 삭제하되, 열려있는 파일이거나 실행중인 프로세스에 의하여 점유된 파일인 경우 이를 강제 종료 후 삭제하는 제 310 단계;
백업 파일 로그에 따라 백업된 파일을 기존의 경로로 이동시키는 제 320 단계;
백업 레지스트리 로그를 이용하여 레지스트리를 백업하는 제 330 단계; 및
백그라운드에서 실행중인 데몬을 종료하고, 환경구성 모듈에 의하여 구축된 데몬 구동환경을 제거하는 제 340 단계;로 구성되는 것을 특징으로 한다.
이하에서는, 첨부한 도면을 참조하여 본 발명의 이동식저장장치를 이용한 소 프트웨어 설치 시스템의 구성을 상세히 살펴보기로 한다. 도 1은 본 발명의 이동식저장장치를 이용한 소프트웨어 설치 시스템의 구성을 도식적으로 표현한 기능블록도이다.
이동식저장장치를 이용한 소프트웨어 설치 시스템은 이동식저장장치의 설치시 자동으로 실행되어 데몬의 구동을 돕는 환경구성 모듈(120)과 백그라운드에서 실행되는 데몬((Disk And Execution MONitor : 110) 및 라이센스 관리모듈(130)로 구성되며, 다수의 어플리케이션의 설치를 위한 이미지(140)를 포함한다.
데몬(110)은 파일 모니터(111), 필터 드라이버(112) 및 서비스 모니터(113)으로 구성되는데, 파일 모니터(111)는 일반적으로 IDE 채널 또는 SCSI 채널을 통해 연결되는 로컬디스크의 액세스를 모니터링 하기 위한 것으로, 데몬(110)의 구동후 PC(200)의 운영체계(OS)에서 제공하는 API를 이용하여 로컬디스크에 쓰기동작(write)이나 삭제(delete)와 같은 명령어가 수행되는지를 감시한다. 이러한 파일 모니터(111)는 로컬디스크에 대한 상기와 같은 액세스를 모니터링 하되, 특히, 파일의 기록이나 변경(속성, 크기, 생성일자)이 있는 경우, 로컬디스크에 파일이 기록된 경로를 파일 로그(file log)로 기록하여 이동식저장장치 내의 별도 경로로 이를 저장한다. 한편, 로컬디스크에 기록된 상기 파일을 이동식저장장치 내로 카피 또는 이동시킨다. 만약, 동일한 파일이 이미 존재하여 기록(overwrite)하지 않는 경우에도 해당 파일에 대한 경로를 파일 로그(file log)에 기록하고, 이동식저장장치 내에 이를 카피한다. (이 경우에는 파일의 이동(move) 명령어를 사용하지 않고, 원본을 그대로 둔 상태로 다른 경로에 사본을 생성하는 카피(copy) 명령어를 사용 한다.)
필터 드라이버(112)는 PC(200)의 운영체계에 대한 레지스트리의 액세스를 위한 API나 시스템 콜의 호출을 후킹(hooking)한다. 후킹이란 다음의 과정을 통해 이루어진다. 윈도우즈 9x 이후의 운영체계에서 레지스트리를 액세스하기 위한 시스템콜이나 API를 처리하기 위해서는 소프트웨어 인터럽트를 발생시켜 특권레벨이 높은 코드 세그먼트를 실행하게 된다. 소프트웨어 인터럽트가 발생하면 커널의 인터럽트 핸들러가 인터럽트 디스크립터 테이블(interrupt descriptor table : IDT)로부터 어떤 세그먼트에 인터럽트 서비스 루틴(interrupt service routine : ISR)이 존재하는지를 나타내는 오프셋과 세그먼트 셀렉터를 읽어 소프트웨어 인터럽트를 처리하며, 이때 사용자모드(user-mode)에서 동작중인 CPU가 커널모드(kernerl-mode)로 전환된다. 전역 디스크립터 테이블(global descriptor table : GDT)이나 지역 디스크립터 테이블(local descriptor table : LDT)의 경우 사용자모드 어플리케이션이 이를 직접 액세스할 수 없으므로, 인터럽트 디스크립터 테이블에 저장되어 있는 포인터(오프셋)를 다른 포인터로 대체함으로써 인터럽트 핸들러의 동작을 가로챌(hooking) 수 있다. 이러한 필터 드라이버(112)는 상기와 같이 레지스트리를 액세스 하기 위한 시스템 콜이나 API와 같은 함수를 후킹(hooking)하여, 이를 별도의 레지스트리 로그로 기록한다. 마이크로소프트사의 윈도우즈 NT 계열의 운영체계에서는 필터 드라이버(112)는 디바이스드라이버(sys)의 형태로 구현되며, 상기 데몬(110)의 실행시에 PC(200)의 메모리에 적재(load)된다.
서비스 모니터(113)는 소프트웨어의 인스톨시 운영체계에 등록되어 자동으로 수행되는 서비스를 모니터하기 위한 것이다. 유닉스(UNIX)나 마이크로 소프트사의 윈도우 9x, NT계열과 같은 일반적으로 사용되는 운영체계에서는 쉘 스크립터나 레지스트리를 이용하여 서비스 등록을 하고, 필요한 파일을 설치한 후 인자를 전달하여 실행함으로써 서비스 구동을 한다. 이러한 서비스 모니터(113)는 상기 파일 모니터(111) 또는 필터 드라이버(112)에 의하여 처리되지 않는 서비스의 등록 및 구동을 모니터링 하여 서비스의 등록 및 구동을 위해 필요한 파일의 경로 및 실행을 위한 인자를 별도의 서비스 로그로 저장한다. 레지스트리 또는 운영체계의 구동시 초기실행되는 배치파일이 변경된 경우에 변경된 값을 추적하는 방식으로 경로 및 인자를 얻을 수 있다.
환경구성 모듈(120)은 이동식저장장치를 PC(200)에 설치하는 경우 실행되어 데몬이 백그라운드에서 구동될 수 있도록 환경을 구성한다. PC(200)의 운영체계에서 지원하는 경우 자동실행될 수 있으며, 데몬 구동을 위해 필요한 파일을 PC(200)의 로컬디스크에 카피한 후 데몬을 메모리에 적재(load)한다.
라이센스 관리모듈(130)은 데몬(110)이 메모리에 적재되어 최초로 구동되는 경우 인터넷 망을 통하여 라이센스 서버(300)로 접속하여 이동식저장장치(100)의 고유식별번호를 전송한다. 라이센스 서버(300)에서는 고유식별번호를 이용하여 데몬(110)의 구동에 필요한 동적링크라이브러리 파일을 라이센스 관리모듈(130)로 전송하는데, 이를 수신한 라이센스 관리모듈(130)은 이동식저장장치(100)의 내부에 이를 저장하였다가, 매번 데몬(110)이 구동되는 때마다 이동식저장장치(100)의 고유식별번호가 대응하는 동적링크라이브러리 파일과 일치하는 것인지 판단하여 일치하지 않는 경우 에러를 발생시킨다. 이때, 이동식저장장치(100)의 고유식별번호는 제조자 정보를 나타내는 벤더(vendor) ID 또는 이동식저장장치(100) 마다 다르게 기록되는 하드웨어 키와 같은 것을 이용할 수 있다.
이미지(140)는 소프트웨어의 인스톨시마다 독립적으로 생성되는 것으로, 로컬디스크에 인스톨 되었던 파일로서 파일 모니터(111)에 의하여 카피 또는 이동된 것을 포함하며, 파일 모니터(111)에 의해 기록된 파일 로그, 필터 드라이버(112)에 의해 기록된 레지스트리 로그 및 서비스 모니터(113)에 의하여 기록된 서비스 로그를 포함한다. 다만, 이러한 이미지(140)는 하나의 파일로 압축되어 관리될 필요는 없다.
이동식저장장치(100)는 로컬디스크가 아닌 저장장치로 PC의 구동후에도 탈부착이 가능한 형태의 저장장치라면 그 형태에 구애받지 아니한다. 예를들어, USB나 IEEE1394 규격을 이용하여 PC(200)에 설치되는 플래쉬 타입의 메모리 또는 마이크로 드라이브나 하드디스크 등이 포함될 수 있다. 그러나, 파일 모니터(111) 또는 필터 드라이버(112) 등에 의한 재기록이 필요하므로 1회에 한하여 기록이 가능한 저장매체는 이에 포함되지 아니한다.
라이센스 서버(300)는 본 발명에 의한 이동식저장장치(100)를 이용한 소프트웨어 설치 시스템의 실행시에 라이센스를 검증하기 위한 것으로 상기 이동식저장장치(100)가 설치되는 PC(200)과는 인터넷을 통하여 접속될 수 있다.
이하에서는, 상기와 같은 구조를 갖는 이동식저장장치(100)를 이용한 소프트웨어 설치 시스템의 실제 동작과정을 첨부한 도면을 참조하여 상세히 살펴보기로 한다. 도 2는 본 발명의 일실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법의 실시과정을 시계열적으로 도시한 플로우차트이다. 상기에서 설명한 바와 중복되는 사항에 대한 설명은 생략한다.
이동식저장장치(100)을 PC(200)에 설치하면, 상기에서 설명한 바와 같이 환경구성 모듈(120)에 의하여 데몬(110)이 구동되고, 파일 모니터(111), 필터 드라이버(112) 및 서비스 모니터(113)가 백그라운드에서 실행된다. 이후, 사용자에 의하여 데몬(110)이 활성화된 후 PC(200)에 소프트웨어가 인스톨되면 그 과정을 상기 데몬(110)이 다음과 같은 과정을 거쳐 모니터링하게 된다.
우선, 파일 모니터(111)가 로컬 디스크 액세스를 모니터링하며, 필터 드라이버(112)가 레지스트리에 액세스하기 위한 명령어를 후킹한다(S110). 이때, 파일 모니터(111)는 로컬 디스크 액세스 전체를 모니터링 하거나, 일부 경로만을 모니터링 할 수도 있다. 필터 드라이버(112)는 소프트웨어 인터럽트를 처리하는 인터럽트 핸들러의 동작을 가로채는 방식으로 레지스트리에 대한 액세스를 모니터링한다. 레지스트리에 액세스하기 위해서는 시스템 콜이나 API를 이용해야 하는데, 이때 소프트웨어 인터럽트가 발생한다. IDT를 이용하면 인터럽트 핸들러의 동작을 후킹할 수 있음은 상술한 바와 같으며, 레지스트리에 액세스하기 위한 명령어를 후킹한다는 표현은 이와 같은 방식으로 커널의 인터럽트 핸들러의 동작을 가로채는 것을 의미한다.
서비스 모니터(113)은 소프트웨어의 인스톨 과정에서 운영체계에 서비스가 등록되는 경우 서비스의 등록 및 구동을 위하여 로컬디스크에 설치되는 파일의 경 로와 이를 실행하기 위하여 넘겨지는 인자값을 모니터링하고, 상기 파일을 이동식저장장치 내부에 별도로 저장함과 동시에 상기 파일에 대한 로컬디스크에서의 저장경로와 넘겨지는 인자값을 별도의 서비스 로그로 저장한다(S111).
S110 단계에서 로컬 디스크로 파일이 저장되거나 변경된 경우 파일 모니터(111)는 저장되거나 변경된 파일을 이동식저장장치(100) 내부로 카피 또는 이동시키되, 기존 로컬디스크에서의 저장경로와 이동식저장장치(100) 내부의 저장경로를 각각 기록하여 파일 로그를 저장한다(S120).
한편, 필터 드라이버(112)는 레지스트리 액세스를 위한 명령어를 모니터링하여 그 결과를 순차적으로 레지스트리 로그로 기록하되, 후킹된 명령어와 동일한 명령어를 커널로 전달한다(S130). 즉, 레지스트리 액세스를 통해 키값이 생성되거나, 변경되거나, 삭제되는 등의 동작을 위한 시스템 콜이나 API가 호출된 경우에 이를 상기에서 설명한 바와 같이 후킹하여 레지스트리 로그를 남기되, 동일한 시스템 콜이나 API를 호출하여 커널로 하여금 이를 처리하도록 한다.
이후, 소프트웨어의 인스톨 과정이 종료되면 S120 단계에서 카피 또는 이동된 파일과 파일 로그, 레지스트리 로그 및 서비스 로그를 특정 폴더에 저장하거나 압축하는 등의 방식으로 해당 소프트웨어에 대한 이미지(140)를 생성한다(S140).
한편, 이하에서는 본 발명의 이실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법을 도시한 도 3을 참조하여 그 실시과정을 시계열적으로 살펴보기로 한다.
이동식저장장치(100)를 PC(200)에 설치하면, 환경구성 모듈(120)에 의하여 데몬(110)이 구동되고, 파일 모니터(111), 필터 드라이버(112) 및 서비스 모니터(113)가 백그라운드에서 실행된다(S210). 데몬(110)이 활성화된 후 이동식저장장치(100)에 저장된 이미지(140)를 이용하여 해당 소프트웨어를 다른 PC(200')에서 사용하고자 하는 경우 다음과 같은 과정이 수행된다.
우선, 데몬(110)의 최초 실행시 라이센스 관리모듈(130)에서 이동식저장장치(100)의 고유식별번호를 라이센스 서버(300)로 전송하여, 고유식별번호를 이용하여 새롭게 컴파일된 동적링크라이브러리 파일을 수신한다(S212). 이후의 데몬(110) 실행에 있어서 라이센스 관리모듈(130)은 상기 동적링크라이브러리 파일을 분석하여 상기 이동식저장장치(100)의 고유식별번호와 일치하는 경우 S220 으로 분기하되, 일치하지 않는 경우나 새롭게 컴파일된 동적링크라이브러리 파일이 손상되거나 존재하지 않는 경우에는 S212로 분기한다(S211). 이때, S212로 분기하는 대신 데몬(110)의 실행을 강제로 종료할 수도 있다.
이후, 파일 모니터(111)에 의하여 소프트웨어의 인스톨시 기록된 파일 로그를 읽어 이동식저장장치(100) 내부에 생성된 이미지(140)로부터 로컬디스크의 목표 경로로 파일을 카피한다. 이때, 로컬디스크의 목표 경로에 이미 동일한 이름의 파일이 존재하는 경우 그 파일을 별도의 경로에 백업한다. 이때, 백업 이전의 경로(파일명 포함)와 백업 이후의 경로(파일명 포함)를 별도의 백업 파일 로그에 기록한다(S220).
이와는 별도로 레지스트리 로그를 읽어 로그에 기록된 것과 같은 레지스트리 액세스를 위한 API나 시스템 콜을 호출함으로써 커널로 하여금 키값의 생성, 변경 등과 같은 레지스트리 액세스를 처리하도록 한다. 그리고, 레지스트리 액세스에 ㅇ의하여 레지스트리 키값이 생성 또는 변경된 경우 원래의 레지스트리 값을 별도의 백업 레지스트리 로그에 저장한다(S230).
한편, 이와는 별도로 서비스 로그를 읽어 이동식저장장치 내부에 별도 저장된 서비스 구동을 위한 파일을 로컬디스크의 목적 경로로 설치함과 동시에 운영체계에 따라서는 레지스트리나 쉘 스크립트 등을 이용하여 서비스를 등록하며, 인자값을 전달하여 서비스를 구동한다(S240). 이에 의하여 다른 PC(200')에서 이동식저장장치(100)의 이미지(140)에 저장된 소프트웨어를 별도의 인스톨 과정 없이 실행할 수 있다.
도 4는 본 발명의 삼실시예에 의한 이동식저장장치를 이용한 소프트웨어 설치 방법을 도시한 플로우차트이다. 이하에서는 도 4를 참조하여 본 발명을 시계열적으로 설명하도록 한다.
백그라운드에서 실행중인 데몬(110)은 이동식저장장치(100)가 PC(200)로부터의 제거되는 이벤트의 발생시, 서비스 로그을 읽어 등록되어 구동중인 서비스를 강제종료후 운영체계로부터 제거한다(S309).
한편, 데몬(110)은 파일 로그를 읽어 로컬디스크의 목표 경로에 저장된 파일을 모두 삭제하되, 열려있는 파일이거나 실행중인 프로세스에 의하여 점유된 파일인 경우 해당 프로세스를 강제 종료 후 삭제한다(S310).
이후, 백업 파일 로그에 따라 백업된 파일을 기존의 경로로 이동시키며(S320), 이와는 별도로 백업 레지스트리 로그를 이용하여 레지스트리를 복구한다(S330).
모든 작업이 완료되면 백그라운드에서 실행중인 데몬(110)은 스스로 프로세스를 종료하고, 환경구성 모듈(120)에 의하여 데몬(110)의 구동을 위하여 구축된 환경을 모두 제거한다(S340).
이상에서 몇 가지의 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
상기와 같은 본 발명에 의하면, 이동식저장장치의 설치만으로 다수의 PC에서 동일한 작업환경을 구현할 수 있다는 현저한 효과가 발생한다.
특히, vmware 기반의 에뮬레이션이 아니라 PC의 작업환경을 어플리케이션 마다 다수의 PC에서 완전하게 동일한 환경으로 구축하여 줌으로써 실행속도의 문제를 해결하였으며, 네트워크를 통한 어플리케이션 스트리밍 기법과는 달리 대역폭의 한계로 인한 다운로드 속도의 문제를 해결하였다.
뿐만 아니라, 이동식저장장치의 제거시 원래의 상태로 PC의 작업환경을 완벽하게 되돌림으로써 보안성을 향상시킨다는 현저한 효과가 발생한다.

Claims (11)

  1. 소프트웨어 인스톨시 로컬디스크에 대한 파일의 기록, 삭제 및 속성변경을 모니터링하여 로컬 디스크 액세스 내역을 파일 로그로 기록하는 파일 모니터; 레지스트리에 액세스 하기 위한 명령어를 후킹하여 이를 레지스트리 로그로 기록하고, 기록된 것과 동일한 명령어를 생성하여 커널로 전송하는 필터 드라이버; 및 소프트웨어 인스톨 과정에서 운영체계에 등록되어 자동으로 구동되는 서비스를 모니터링 하여 해당 서비스의 구동을 위한 파일경로와 인자값을 모니터링 하여 해당 파일을 상기 이동식저장장치 내부에 별도로 저장함과 동시에 저장된 경로와 인자값을 별도의 서비스 로그로 저장하는 서비스 모니터;를 구비하는 것으로 이동식저장장치에 저장되는 데몬(Disk And Execution MONitor); 및
    상기 이동식저장장치의 설치시 자동실행되어 상기 데몬의 실행을 위한 환경을 구성하고, 데몬을 실행한 후 스스로 종료하는 환경구성 모듈;을 구비하는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 시스템.
  2. 제 1 항에 있어서,
    상기 필터 드라이버는 소프트웨어 인터럽트 발생시 인터럽터 디스크립트 테이블에 저장된 포인터를 다른 값으로 대체해서 어떤 API나 시스템콜이 호출되었는지 검출한 다음 동일한 API나 시스템콜의 인스턴스를 생성하여 호출함으로써 레지스트리에 액세스 하기 위한 명령어를 후킹하는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 시스템.
  3. 제 1 항 또는 제 2 항 중의 어느 한 항에 있어서,
    이동식저장장치의 고유식별번호를 라이센스 서버로 전송하여, 새롭게 컴파일된 동적링크라이브러리 파일을 수신함으로써 라이센스를 관리하는 라이센스 관리모듈;을 추가로 구비하는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 시스템.
  4. 제 3 항에 있어서,
    상기 라이센스 관리모듈은 상기 데몬의 구동시 상기 새롭게 컴파일된 동적링크라이브러리 파일을 분석하여 상기 이동식저장장치의 고유식별번호와 일치하지 않는 경우 에러를 발생시키는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 시스템.
  5. 이동식저장장치를 이용한 소프트웨어 설치 방법에 있어서,
    소프트웨어 인스톨시, 로컬 디스크 액세스를 모니터링함과 동시에 레지스트리에 액세스하기 위한 명령어를 후킹하는 제 110 단계;
    상기 제 110 단계에서 로컬 디스크로 파일이 저장된 경우 저장된 파일을 이동식저장장치 내부로 카피 또는 이동시키되, 기존의 저장경로와 상기 이동식저장장치 내부의 저장경로를 각각 기록하여 파일 로그를 저장하는 제 120 단계;
    상기 제 110 단계에서 후킹된 레지스트리 액세스를 위한 명령어를 순차적으로 레지스트리 로그로 기록하되, 후킹된 명령어와 동일한 명령어를 커널로 전달하는 제 130 단계; 및
    소프트웨어 인스톨이 완료됨에 따라 상기 이동식저장장치 내부에 해당 소프트웨어에 대한 이미지를 생성하는 제 140 단계;로 구성되는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 방법.
  6. 제 5 항에 있어서,
    상기 제 110 단계 이후, 서비스의 등록을 모니터링 하여 해당 서비스의 등록 및 구동을 위한 파일경로와 인자값을 이동식저장장치 내부에 별도로 저장함과 동시에 상기 인자값을 별도의 서비스 로그로 저장하는 제 111 단계를 더 포함하여 구성되는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 방법.
  7. 이동식저장장치를 이용한 소프트웨어 설치 방법에 있어서,
    이동식저장장치를 설치함에 따라 환경구성 모듈이 자동실행되어 데몬의 구동환경을 구축한 다음, 데몬을 구동하는 제 210 단계;
    파일 로그를 읽어 이동식저장장치 내부에 저장된 파일을 상기 파일 로그에 기록된 로컬디스크의 목표 경로로 각각 카피하되, 동일한 이름의 파일이 존재하는 경우 기존의 파일을 별도의 경로로 백업하되, 백업 전과 후의 경로를 백업 파일 로그에 기록하는 제 220 단계; 및
    레지스트리 로그에 기록된 것과 동일한 레지스트리 액세스를 위한 명령어를 생성하여 커널로 전달하되, 상기 명령어에 의한 액세스 전의 레지스트리 값을 백업 레지스트리 로그에 저장하는 제 230 단계;로 구성되는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 방법.
  8. 제 7 항에 있어서,
    제 210 단계 이후, 이동식저장장치에 라이센스 서버로부터 새롭게 전송받은 동적링크라이브러리 파일이 존재하는 경우 이동식저장장치의 고유식별번호와 비교하여 유효한 것이면 제 220 단계로 분기하되, 존재하지 않거나, 유효하지 아니한 경우 다음 단계로 진행하는 제 211 단계; 및
    이동식저장장치의 고유식별번호를 라이센스 서버로 전송하여, 새롭게 컴파일된 동적링크라이브러리 파일을 수신하는 제 212 단계를 더 포함하여 구성되는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 방법.
  9. 제 7 항에 있어서,
    제 210 단계 이후, 서비스 로그을 읽어 이동식저장장치 내부에 별도 저장된 서비스 구동을 위한 파일을 해당경로로 설치함과 동시에 인자값을 이용하여 서비스 등록 및 구동하는 제 240 단계를 더 포함하여 구성되는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 방법.
  10. 이동식저장장치를 이용한 소프트웨어 설치 방법에 있어서,
    파일 로그를 읽어 로컬디스크의 목표 경로에 저장된 파일을 모두 삭제하되, 열려있는 파일이거나 실행중인 프로세스에 의하여 점유된 파일인 경우 이를 강제 종료 후 삭제하는 제 310 단계;
    백업 파일 로그에 따라 백업된 파일을 기존의 경로로 이동시키는 제 320 단계;
    백업 레지스트리 로그를 이용하여 레지스트리를 복구하는 제 330 단계; 및
    백그라운드에서 실행중인 데몬을 종료하고, 환경구성 모듈에 의하여 구축된 데몬 구동환경을 제거하는 제 340 단계;로 구성되는 것을 특징으로 하는 이동식저장장치를 이용한 소프트웨어 설치 방법.
  11. 제 10 항에 있어서,
    제 310 단계 이전에 서비스 로그을 읽어 등록되어 구동중인 서비스를 강제종료후 제거하는 제 309 단계를 더 포함하여 구성되는 것을 특징으로 하는 이동식저 장장치를 이용한 소프트웨어 설치 방법.
KR1020060123495A 2006-12-07 2006-12-07 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그방법 KR100766863B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060123495A KR100766863B1 (ko) 2006-12-07 2006-12-07 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060123495A KR100766863B1 (ko) 2006-12-07 2006-12-07 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그방법

Publications (1)

Publication Number Publication Date
KR100766863B1 true KR100766863B1 (ko) 2007-11-15

Family

ID=39060357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060123495A KR100766863B1 (ko) 2006-12-07 2006-12-07 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그방법

Country Status (1)

Country Link
KR (1) KR100766863B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101237746B1 (ko) 2010-10-22 2013-02-28 매크로임팩트 주식회사 데이터 백업 장치 및 방법
CN104731684A (zh) * 2015-04-09 2015-06-24 武汉大学 一种基于驱动过滤技术的动态文件监控和保护系统
KR101608061B1 (ko) * 2015-12-22 2016-04-01 (주)지란지교시큐리티 백업 파일 탐색 방법
KR101644958B1 (ko) * 2015-12-23 2016-08-12 한국과학기술정보연구원 다중 사용자 맞춤형 컴퓨팅 자원 제공을 위한 클러스터 구축 방법 및 클러스터 구축 장치
KR20190141335A (ko) * 2018-06-14 2019-12-24 서원대학교산학협력단 Usb메모리를 이용한 소프트웨어 라이센스 관리방법 및 장치
CN113094210A (zh) * 2021-04-21 2021-07-09 北京鼎普科技股份有限公司 一种windows平台进程及文件守护方法及系统
CN113849135A (zh) * 2021-09-30 2021-12-28 北京金山云网络技术有限公司 日志的访问方法、装置及服务器
CN116796331A (zh) * 2023-04-26 2023-09-22 之江奇安科技有限公司 一种在podman中实现进程监控和白名单机制的自动化hook方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020023760A (ko) * 2001-12-15 2002-03-29 심재석 가상 CD ROM 드라이브 및 가상 Disk 드라이브를 이용한소프트웨어 설치, 실행 및 사용권 라이센스 관리 프로그램제작 방법
KR20020041367A (ko) * 2002-04-12 2002-06-01 연안정보통신 주식회사 클라이언트―서버 환경에서의 설치과정없는응용프로그램의 실행방법
KR20030095975A (ko) * 2002-06-12 2003-12-24 마이크로소프트 코포레이션 이미지-기반 소프트웨어 설치
KR20040039679A (ko) * 2002-11-04 2004-05-12 주식회사 뮤즈텔 에물레이터를 갖는 휴대용 저장 장치
KR20040042706A (ko) * 2002-11-15 2004-05-20 스페이스 인터내셔널 주식회사 가상 씨디롬 드라이브 구현 장치와 방법 및 그 기록매체

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020023760A (ko) * 2001-12-15 2002-03-29 심재석 가상 CD ROM 드라이브 및 가상 Disk 드라이브를 이용한소프트웨어 설치, 실행 및 사용권 라이센스 관리 프로그램제작 방법
KR20020041367A (ko) * 2002-04-12 2002-06-01 연안정보통신 주식회사 클라이언트―서버 환경에서의 설치과정없는응용프로그램의 실행방법
KR20030095975A (ko) * 2002-06-12 2003-12-24 마이크로소프트 코포레이션 이미지-기반 소프트웨어 설치
KR20040039679A (ko) * 2002-11-04 2004-05-12 주식회사 뮤즈텔 에물레이터를 갖는 휴대용 저장 장치
KR20040042706A (ko) * 2002-11-15 2004-05-20 스페이스 인터내셔널 주식회사 가상 씨디롬 드라이브 구현 장치와 방법 및 그 기록매체

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101237746B1 (ko) 2010-10-22 2013-02-28 매크로임팩트 주식회사 데이터 백업 장치 및 방법
CN104731684A (zh) * 2015-04-09 2015-06-24 武汉大学 一种基于驱动过滤技术的动态文件监控和保护系统
CN104731684B (zh) * 2015-04-09 2017-06-27 武汉大学 一种基于驱动过滤技术的动态文件监控和保护系统
KR101608061B1 (ko) * 2015-12-22 2016-04-01 (주)지란지교시큐리티 백업 파일 탐색 방법
KR101644958B1 (ko) * 2015-12-23 2016-08-12 한국과학기술정보연구원 다중 사용자 맞춤형 컴퓨팅 자원 제공을 위한 클러스터 구축 방법 및 클러스터 구축 장치
KR20190141335A (ko) * 2018-06-14 2019-12-24 서원대학교산학협력단 Usb메모리를 이용한 소프트웨어 라이센스 관리방법 및 장치
KR102104470B1 (ko) * 2018-06-14 2020-04-24 서원대학교산학협력단 Usb메모리를 이용한 소프트웨어 라이센스 관리방법 및 장치
CN113094210A (zh) * 2021-04-21 2021-07-09 北京鼎普科技股份有限公司 一种windows平台进程及文件守护方法及系统
CN113094210B (zh) * 2021-04-21 2023-09-22 北京鼎普科技股份有限公司 一种windows平台进程及文件守护方法及系统
CN113849135A (zh) * 2021-09-30 2021-12-28 北京金山云网络技术有限公司 日志的访问方法、装置及服务器
CN116796331A (zh) * 2023-04-26 2023-09-22 之江奇安科技有限公司 一种在podman中实现进程监控和白名单机制的自动化hook方法
CN116796331B (zh) * 2023-04-26 2024-04-05 之江奇安科技有限公司 一种在podman中实现进程监控和白名单机制的自动化hook方法

Similar Documents

Publication Publication Date Title
KR100766863B1 (ko) 이동식저장장치를 이용한 소프트웨어 설치 시스템 및 그방법
US10503532B2 (en) Creating a virtual machine clone of the host computing device and handling of virtual machine clone requests via an I/O filter
US8839228B2 (en) System and method for updating an offline virtual machine
JP6761476B2 (ja) 仮想マシンを監査するためのシステムおよび方法
US10296423B2 (en) System and method for live virtual incremental restoring of data from cloud storage
KR100961349B1 (ko) Vex - 가상 확장물을 고립시키는 방법
US6698016B1 (en) Method for injecting code into another process
US9323550B2 (en) Mechanism for providing virtual machines for use by multiple users
KR101331311B1 (ko) 부분 가상화 머신에 의한 균일한 저장 디바이스
US7552044B2 (en) Simulated storage area network
US7953948B1 (en) System and method for data protection on a storage medium
US6996706B1 (en) Booting an operating system or running other pre-boot code from a file stored under a different operating system
CN110622138B (zh) 一种数据迁移方法及装置
US8209290B1 (en) Generic granular restore of application data from a volume image backup
US7676508B2 (en) Method and system for recording and replaying input-output requests issued by a user-mode program
KR102136906B1 (ko) Bpram을 이용한 운영체제의 레이아웃 및 실행
US20080022032A1 (en) Concurrent virtual machine snapshots and restore
US20030005168A1 (en) System and method for auditing system call events with system call wrappers
JP2006510995A (ja) コンピューター基本ソフトを保護媒体より起動し、そして実行するように変更する方法。
KR20060047639A (ko) 가상 환경으로부터 하드웨어로의 직접적인 액세스를제공하는 컴퓨터 판독가능 매체
AU2002250453A1 (en) System and method for restoring computer systems damaged by a malicious computer program
IL157542A (en) System and method for repairing computer systems damaged by a harmful computer programmer
JP2008084029A (ja) 仮想マシン管理システム
JP2003050744A (ja) コンピュータシステム
US20040194086A1 (en) Suspend and resume method of computer job

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
LAPS Lapse due to unpaid annual fee