KR101078660B1 - System and Method for Software Transformation - Google Patents

System and Method for Software Transformation Download PDF

Info

Publication number
KR101078660B1
KR101078660B1 KR1020080131707A KR20080131707A KR101078660B1 KR 101078660 B1 KR101078660 B1 KR 101078660B1 KR 1020080131707 A KR1020080131707 A KR 1020080131707A KR 20080131707 A KR20080131707 A KR 20080131707A KR 101078660 B1 KR101078660 B1 KR 101078660B1
Authority
KR
South Korea
Prior art keywords
installation
output
execution
registry
software
Prior art date
Application number
KR1020080131707A
Other languages
Korean (ko)
Other versions
KR20100073119A (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 KR1020080131707A priority Critical patent/KR101078660B1/en
Publication of KR20100073119A publication Critical patent/KR20100073119A/en
Application granted granted Critical
Publication of KR101078660B1 publication Critical patent/KR101078660B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • G06F8/4452Software pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • 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

Abstract

본 발명은 소프트웨어 변환 시스템 및 방법에 대하여 개시한다. 본 발명의 일면에 따른 소프트웨어 변환 시스템은 윈도우 기반 시스템의 실제 레지스트리 하이브(Real Registry Hive) 및 실제 파일 시스템(Real File System)에 위치하는 가상 실행 환경; 상기 시스템에 기반하여 무설치 이동형 소프트웨어를 생성하기 위한 설치형 소프트웨어의 설치 프로세스 및 실행 프로세스를 구동시키는 소프트웨어 변환 관리자; 및 상기 설치 프로세스 및 상기 실행 프로세스가 상기 가상 실행 환경을 참조하여 설치 정보 및 실행 정보를 생성하도록 하는 가상 실행 핸들러를 포함하되, 상기 설치 정보 및 상기 실행 정보를 무설치 이동형 소프트웨어 포맷으로 변환하는 것을 특징으로 한다.The present invention discloses a software conversion system and method. According to an aspect of the present invention, a software conversion system includes a virtual execution environment located in a real registry hive and a real file system of a windows based system; A software conversion manager for driving an installation process and an execution process of the installable software for generating the uninstallable mobile software based on the system; And a virtual execution handler for allowing the installation process and the execution process to generate installation information and execution information with reference to the virtual execution environment, wherein the installation information and the execution information are converted into an installationless portable software format. It is done.

Clean PC, 무결성, 클릭앤런, 무설치 이동형 소프트웨어, 가상 실행 환경 Clean PC, Integrity, Click-and-Run, Mobile Installation Software, Virtual Execution Environment

Description

소프트웨어 변환 시스템 및 방법{System and Method for Software Transformation}System and Method for Software Transformation

본 발명은 무설치 이동형 소프트웨어의 이용에 관한 것으로서, 구체적으로는 무결성이 보장되지 않은 환경에서 무설치형 이동형 소프트웨어를 설치하거나 실행시킬 수 있도록 하는 소프트웨어 변환 시스템 및 방법에 관한 것이다.TECHNICAL FIELD The present invention relates to the use of installation-free mobile software, and more particularly, to a software conversion system and method for enabling installation or execution of the installation-free mobile software in an environment where integrity is not guaranteed.

본 발명은 지식경제부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-015-02, 과제명: SaaS 기반 이동형 개인 맞춤 사무환경 제공 기술 개발].The present invention is derived from the research conducted as part of the IT new growth engine core technology development project of the Ministry of Knowledge Economy and the Ministry of Information and Communication Research and Development. [Task management number: 2007-S-015-02, Title: SaaS-based mobile personalized office Development of environmental provision technology].

최근, USB 메모리 등의 휴대용 저장장치의 보급으로 사용자의 컴퓨터 사용 환경에 있어 많은 변화가 발생하였다. Recently, the spread of portable storage devices such as USB memory has caused a lot of changes in the user's computer use environment.

대표적으로, SW 배포 방식이 종래 CD나 다운로드 패키지 형태이던 것이 인터넷을 통한 원클릭 형태의 서비스로 전환되고 있으며, 전문 개발자뿐만 아니라 프로슈머들에 의하여 무설치형 서비스 SW도 증가하고 있다.Representatively, the SW distribution method has been converted to a one-click service through the Internet, which has been in the form of a CD or a download package, and an installable service SW is increasing by not only professional developers but also prosumers.

설치형 SW 패키지와 무설치형 휴대용 SW의 장점을 취하여 설치형 SW를 포터블 형태로 변환하여 휴대용 저장장치에서 마우스 클릭과 같은 간단한 실행 동작으 로 실행시킬 수 있도록 하는 기술도 등장하고 있다.Taking advantage of the installable SW package and the non-installable portable SW, a technology that converts the installed SW into a portable form and executes it with a simple execution action such as a mouse click on the portable storage device has emerged.

그런데, 종래의 설치형 SW에서 포터블 형태의 SW로의 변환은 다른 SW들은 설치되지 않고 운영체제만이 설치된 클린 컴퓨팅 환경을 필요로 한다. 때문에, 일반 사용자들이 제작하였지만 SW 또는 라이센스가 있는 패키지 SW를 포터블 형태의 설치형 SW로 변환하기 위해서는 타겟 시스템의 운영체제를 재설치하거나, Vmware와 같은 운영체제 수준의 가상화 환경을 구축해야 한다.However, the conversion from the conventional installed type SW to the portable type SW requires a clean computing environment in which only other operating systems are installed, not other SWs. Therefore, in order to convert the SW or licensed packaged SW into a portable type of SW that is manufactured by general users, the operating system of the target system must be reinstalled or an operating system-level virtualization environment such as Vmware must be built.

본 발명의 목적은 가상 실행 환경을 이용하여 무결성이 보장되지 않는 환경에서 무설치 이동형 소프트웨어를 설치 또는 실행시킬 수 있도록 하는 소프트웨어 변환 시스템 및 방법을 제공함에 있다.It is an object of the present invention to provide a software conversion system and method for enabling installation or execution of installation-free portable software in an environment where integrity is not guaranteed using a virtual execution environment.

본 발명의 다른 목적은 파일 IO 및 레지스트리 IO의 경로를 가상 실행 환경으로 변경하여 무결성을 갖는 환경의 파일 정보 및 레지스트리 정보를 추출할 수 있는 소프트웨어 변환 시스템 및 방법을 제공함에 있다.Another object of the present invention is to provide a software conversion system and method capable of extracting file information and registry information of an environment having integrity by changing paths of file IO and registry IO to a virtual execution environment.

전술한 문제점을 해결하고자, 본 발명의 일면에 따른 소프트웨어 변환 시스템은 윈도우 기반 시스템의 실제 레지스트리 하이브(Real Registry Hive) 및 실제 파일 시스템(Real File System)에 위치하는 가상 실행 환경; 상기 시스템에 기반하여 무설치 이동형 소프트웨어를 생성하기 위한 설치형 소프트웨어의 설치 프로세스 및 실행 프로세스를 구동시키는 소프트웨어 변환 관리자; 및 상기 설치 프로세스 및 상기 실행 프로세스가 상기 가상 실행 환경을 참조하여 설치 정보 및 실행 정보를 생성하도록 하는 가상 실행 핸들러를 포함하되, 상기 설치 정보 및 상기 실행 정보를 무설치 이동형 소프트웨어 포맷으로 변환하는 것을 특징으로 한다.In order to solve the above problems, a software conversion system according to an aspect of the present invention includes a virtual execution environment located in a real registry hive and a real file system of a Windows-based system; A software conversion manager for driving an installation process and an execution process of the installable software for generating the uninstallable mobile software based on the system; And a virtual execution handler for allowing the installation process and the execution process to generate installation information and execution information with reference to the virtual execution environment, wherein the installation information and the execution information are converted into an installationless portable software format. It is done.

본 발명에 따르면, 휴대용 저장 장치에서 클릭앤런 방식으로 무결성이 보장되는 않은 환경에서 무설치 이동형 소프트웨어를 변환할 수 있으므로, 무설치 이동 형 소프트웨어로 변환하기 위하여 클린 피씨 환경을 구축할 필요가 없다. According to the present invention, since the installation-free portable software can be converted in the environment where the integrity is not guaranteed by the click-and-run method in the portable storage device, there is no need to establish a clean PC environment in order to convert the installation-free portable software.

또한, 본발명은 무설치 이동형 소프트웨어를 제공함에 따라 사용자 작업의 이동성을 높일 수 있으며, 나아가 개인 맞춤형 이동 가능한 작업 환경 및 이동형 소프트웨어 플랫폼을 제공할 수 있다.In addition, the present invention can increase the mobility of the user's work by providing the installation-free mobile software, and can further provide a personalized mobile work environment and mobile software platform.

이하, 도 1을 참조하여 본 발명의 실시예에 따른 소프트웨어 변환 시스템에 대하여 설명한다. 도 1은 본 발명의 실시예에 따른 소프트웨어 변환 시스템을 도시한 구성도이다.Hereinafter, a software conversion system according to an embodiment of the present invention will be described with reference to FIG. 1. 1 is a block diagram showing a software conversion system according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 소프트웨어 변환 시스템(10)은 소프트웨어 변환 관리자(100), 가상 실행 핸들러(200) 및 가상 실행 환경(300)을 포함한다.As shown in FIG. 1, a software conversion system 10 according to an embodiment of the present invention includes a software conversion manager 100, a virtual execution handler 200, and a virtual execution environment 300.

소프트웨어 변환 관리자(100)는 설치형 소프트웨어의 설치 프로세스를 구동시켜 설치 프로세스 정보를 가상 실행 핸들러(200)로 전송한다. 또한, 소프트웨어 변환 관리자(100)는 설치형 소프트웨어의 실행 프로세스를 구동시켜 실행 프로세스 정보, 실행 파일 정보 및 실행 레지스트리 정보를 가상 실행 핸들러(200)로 전송한다.The software conversion manager 100 drives the installation process of the installable software to transmit the installation process information to the virtual execution handler 200. In addition, the software conversion manager 100 drives the execution process of the installed software to transmit execution process information, execution file information, and execution registry information to the virtual execution handler 200.

소프트웨어 변환 관리자(100)는 클린 운영체제 이미지를 참조하여 가상 실행 핸들러(200)에 의해 설치되는 소프트웨어 파일 및 레지스트리 정보를 추출하며, 설치된 소프트웨어를 최초로 실행할 때 소프트웨어 실행 정보를 추출하여 이동형 소프트웨어 포맷으로 변환한다.The software conversion manager 100 extracts the software file and registry information installed by the virtual execution handler 200 by referring to the clean operating system image, and extracts the software execution information and converts the software execution information into a portable software format when the installed software is first executed. .

가상 실행 핸들러(200)는 윈도우 사용자 수준의 API 후킹을 위한 DLL 라이브러리로 이루어지며, 설치 및 실행되는 프로세스의 파일 및 레지스트리 입출력을 사용자 수준에서 리다이렉션한다.The virtual execution handler 200 is composed of a DLL library for API user hooking at the Windows user level, and redirects files and registry input / output of a process to be installed and executed at the user level.

가상 실행 환경(300)은 소프트웨어 설치 정보가 참조해야하는 클린 운영체제 이미지를 구축하고, 설치 및 실행 정보를 수집하기 위한 다중 가상 실행 환경으로 구축한다. 상세하게는, 가상 실행 환경(300)은 가상 파일 시스템 영역과 가상 레지스트리 하이브로 구성될 수 있는데, 가상 파일 영역은 실제 윈도우 파일 시스템(Real File System)의 일정 부분을 윈도우 시스템 관련 폴더의 루트 폴더로 설정하여 구축될 수 있으며, 가상 레지스트리 하이브는 실제 레지스트리 하이브(Real Registry Hive)의 일정 영역을 이용하여 구축될 수 있다. 이때, 다중 가상 실행 환경(300)은 Copy-on-Write 스킴을 이용하여 동작될 수 있다.The virtual execution environment 300 builds a clean operating system image that the software installation information should refer to, and builds a multiple virtual execution environment for collecting installation and execution information. In detail, the virtual execution environment 300 may include a virtual file system area and a virtual registry hive. The virtual file area may include a portion of a real file system as a root folder of a folder related to the window system. The virtual registry hive may be configured by using a predetermined area of a real registry hive. In this case, the multiple virtual execution environment 300 may be operated using a copy-on-write scheme.

또한, 가상 파일 시스템 영역과 가상 레지스트리 하이브는 각각 검색용 가상 실행 환경 및 설치용 가상 실행 환경을 갖는데, 검색용 가상 실행 환경은 읽기, 열기에 사용될 수 있으며, 설치용 가상 실행 환경은 쓰기 및 생성에 사용될 수 있다.In addition, the virtual file system area and the virtual registry hive each have a virtual execution environment for search and a virtual execution environment for installation, where the virtual execution environment for search can be used for reading and opening, and the virtual execution environment for installation can be used for writing and creating. have.

요약하면, 소프트웨어 변환 관리자(100)에 의해 설치형 소프트웨어의 설치 프로세스가 실행되면, 가상 실행 환경에 소프트웨어가 설치되면서 설치 정보가 추출되며, 소프트웨어 변환 관리자(100)에 의하여 설치형 소프트웨어의 실행 프로세스가 실행되면, 가상 실행 핸들러(200)에 의해 경로변경이 발생하여 가상 실행 환경에서 소프트웨어가 실행되면서 실행 정보가 추출될 수 있다.In summary, when the installation process of the installable software is executed by the software conversion manager 100, the installation information is extracted while the software is installed in the virtual execution environment, and the execution process of the installable software is executed by the software conversion manager 100. The path change may be generated by the virtual execution handler 200, and the execution information may be extracted while the software is executed in the virtual execution environment.

그리고, 소프트웨어 변환 관리자(100)는 설치 정보 및 실행 정보를 이용하여 무설치 이동형 소프트웨어를 생성할 수 있다.In addition, the software conversion manager 100 may generate the installationless portable software using the installation information and the execution information.

도 2는 본 발명의 실시예에 따른 소프트웨어 변환 시스템(10)의 설치 프로세스 구동 과정을 도시한 흐름도이다.2 is a flowchart illustrating a process of driving an installation process of the software conversion system 10 according to an embodiment of the present invention.

도 2를 참조하면, 먼저, 소프트웨어 변환 관리자(100)가 설치형 소프트웨어의 설치 프로세스(110)를 실행시킨다(S210). 이때, 설치 프로세스 진행 이전에 다중 실행 환경이 구축되어 있어야 한다.2, first, the software conversion manager 100 executes the installation process 110 of the installed software (S210). At this time, the multi-execution environment should be established before proceeding with the installation process.

이어서, 설치 프로세스(110)가 파일 및 레지스트리 IO를 생성하여 실제 API를 호출한다(S220).Subsequently, the installation process 110 creates a file and registry IO to call the actual API (S220).

그 다음으로, 가상 실행 핸들러(200)가 호출된 API를 가로채서 가상 실행 환경으로 경로를 변경한 다음, 가상 실행 환경의 API를 호출한다(S230).Next, the virtual execution handler 200 intercepts the called API and changes the path to the virtual execution environment, and then calls the API of the virtual execution environment (S230).

그리고, 설치 프로세스(110)가 가상 실행 환경에서 설치 과정을 수행하며, 설치 파일 및 레지스트리 정보를 생성한다(S240). 즉, 설치 프로세스(110)는 실제 API를 호출하지만, 가상 실행 핸들러(200)의 개입으로 인하여 가상 실행 환경에서 설치 파일 및 레지스트리 정보가 생성되는 것이다.In addition, the installation process 110 performs an installation process in a virtual execution environment, and generates an installation file and registry information (S240). That is, although the installation process 110 calls the actual API, the installation file and the registry information are generated in the virtual execution environment due to the intervention of the virtual execution handler 200.

도 3은 본 발명의 실시예에 따른 소프트웨어 변환 시스템(10)의 실행 프로세스 구동 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of driving an execution process of the software conversion system 10 according to an exemplary embodiment of the present invention.

도 3을 참조하면, 먼저, 소프트웨어 변환 관리자(100)가 설치형 소프트웨어의 실행 프로세스(120)를 실행시킨다(S310).Referring to FIG. 3, first, the software conversion manager 100 executes an execution process 120 of installed software (S310).

이어서, 실행 프로세스(120)가 파일 및 레지스트리 IO를 생성하여 실제 API를 호출한다(S320).Subsequently, the execution process 120 creates a file and registry IO to call the actual API (S320).

그 다음으로, 가상 실행 핸들러(200)가 호출된 API를 가로채서 가상 실행 환경으로 경로를 변경한 다음, 실제 API를 호출한다(S330).Next, the virtual execution handler 200 intercepts the called API, changes the path to the virtual execution environment, and then calls the actual API (S330).

그러면, 실행 프로세스(120)가 가상 실행 환경에서 실행 과정을 수행하며, 실행 파일 및 레지스트리 정보를 생성한다(S340). 즉, 실행 프로세스(120)는 실제 API를 호출하지만, 가상 실행 핸들러(200)의 개입으로 인하여 가상 실행 환경에서 실행 파일 및 레지스트리 정보가 생성되는 것이다.Then, the execution process 120 performs the execution process in the virtual execution environment, and generates an executable file and registry information (S340). That is, although the execution process 120 calls the actual API, the execution file and the registry information are generated in the virtual execution environment due to the intervention of the virtual execution handler 200.

소프트웨어 변환 관리자(100)는 도 2 및 도 3의 과정을 수행한 다음, 설치용 가상 실행 환경에 생성되는 설치 정보 및 실행 정보를 이동형 소프트웨어 포맷으로 변환한다.After performing the process of FIGS. 2 and 3, the software conversion manager 100 converts installation information and execution information generated in the virtual execution environment for installation into a portable software format.

도 4는 가상 실행 핸들러(200)가 레지스트리 IO를 리다이렉션하는 과정을 도시한 흐름도이다.4 is a flowchart illustrating a process in which the virtual execution handler 200 redirects the registry IO.

도 4를 참조하면, 먼저, 가상 실행 핸들러(200)는 설치 프로세스(110)로부터 레지스트리 IO를 전달받는다(S410).Referring to FIG. 4, first, the virtual execution handler 200 receives the registry IO from the installation process 110 (S410).

그리고, 가상 실행 핸들러(200)는 전달받은 레지스트리 IO의 API에서 Process ID가 설치 프로세스 ID(Install Process ID)인지를 확인한다(S420).Then, the virtual execution handler 200 checks whether the Process ID is an Install Process ID in the API of the received registry IO (S420).

가상 실행 핸들러(200)는 설치 프로세스 ID이면(S420), API의 종류가 열기(Open)인지를 확인한다(S430).If the virtual execution handler 200 is the installation process ID (S420), it checks whether the type of API is Open (S430).

가상 실행 핸들러(200)는 API의 종류가 열기이면(S430), 전달받은 레지스트리 IO의 경로를 검색용 가상 실행 환경(Virtual Execution Environment for Query)으로 변경한다(S440).If the type of API is open (S430), the virtual execution handler 200 changes the path of the received registry IO to a virtual execution environment for query (S440).

반면, 가상 실행 핸들러(200)는 API의 종류가 생성(Create)이면(S430), 전달받은 레지스트리 IO의 키 값을 실행 레지스트리 정보에 추가한다(S450).On the other hand, if the type of API is Create (Create), the virtual execution handler 200 adds the key value of the received registry IO to the execution registry information (S450).

그 다음으로, 가상 실행 핸들러(200)는 실행 레지스트리 정보에 키 값이 추가된 레지스트리 IO의 경로를 설치용 가상 실행 환경(Virtual Execution Environment for Install)으로 변경한다(S460).Next, the virtual execution handler 200 changes the path of the registry IO in which the key value is added to the execution registry information to the virtual execution environment for install (S460).

이후, 가상 실행 핸들러(200)는 실제 레지스트리 IO(Real Registry IO)를 호출한다(S470).Thereafter, the virtual execution handler 200 calls the real registry IO (S470).

여기서, 가상 실행 핸들러(200)는 실행 레지스트리 정보에 키 값이 추가된 것을 확인하여 설치용 가상 실행 환경으로 경로를 변경할 수 있다.Here, the virtual execution handler 200 may change the path to the virtual execution environment for installation by confirming that a key value is added to the execution registry information.

도 5는 가상 실행 핸들러(200)가 파일 IO를 리다이렉션하는 과정을 도시한 흐름도이다.5 is a flowchart illustrating a process in which the virtual execution handler 200 redirects file IO.

도 5를 참조하면, 먼저, 가상 실행 핸들러(200)는 설치 프로세스(110)로부터 파일 IO를 전달받는다(S510).Referring to FIG. 5, first, the virtual execution handler 200 receives a file IO from the installation process 110 (S510).

이어서, 가상 실행 핸들러(200)는 전달받은 파일 IO의 API에서 PID(Process ID)가 설치 PID(Install Process ID)인지를 확인한다(S520).Subsequently, the virtual execution handler 200 checks whether the PID (Process ID) is an installation PID (Install Process ID) in the API of the received file IO (S520).

가상 실행 핸들러(200)는 설치 PID이면(S520), API의 종류가 열기(Open)인지를 확인한다(S530).If the execution handler 200 is the installation PID (S520), and checks whether the type of the API (Open) (S530).

이때, 가상 실행 핸들러(200)는 API의 종류가 열기이면(S530), 전달받은 파일 IO의 경로를 검색용 가상 실행 환경(Virtual Execution Environment for Query)으로 변경한다(S540).At this time, if the type of API is open (S530), the virtual execution handler 200 changes the path of the received file IO to a virtual execution environment for search (S540).

반면, 가상 실행 핸들러(200)는 API의 종류가 생성(Create)이면(S530), 전달받은 파일 IO의 키 값을 실행 파일 정보에 추가한다(S550).On the other hand, if the type of API is Create (Create), the virtual execution handler 200 adds the key value of the received file IO to the execution file information (S550).

그 다음으로, 가상 실행 핸들러(200)는 실행 파일 정보에 키 값이 추가된 파일 IO의 경로를 설치용 가상 실행 환경(Virtual Execution Environment for Install)으로 변경한다(S560). Next, the virtual execution handler 200 changes the path of the file IO in which the key value is added to the executable file information to the virtual execution environment for install (S560).

이후, 가상 실행 핸들러(200)는 실제 파일 IO(Real File IO)를 호출한다(S570).Thereafter, the virtual execution handler 200 calls the real file IO (S570).

여기서, 가상 실행 핸들러(200)는 실행 레지스트리 정보에 키 값이 추가된 것을 확인하여 설치용 가상 실행 환경으로 경로를 변경할 수 있다.Here, the virtual execution handler 200 may change the path to the virtual execution environment for installation by confirming that a key value is added to the execution registry information.

도 6은 가상 실행 핸들러(200)가 레지스트리 IO를 리다이렉션하는 과정을 도시한 흐름도이다.6 is a flowchart illustrating a process in which the virtual execution handler 200 redirects the registry IO.

도 6을 참조하면, 먼저, 가상 실행 핸들러(200)는 실행 프로세스(120)로부터 레지스트리 IO를 전달받는다(S610).Referring to FIG. 6, first, the virtual execution handler 200 receives a registry IO from an execution process 120 (S610).

이어서, 가상 실행 핸들러(200)는 전달받은 레지스트리 IO의 API에서 PID가 실행 PID(Application Process ID)인지를 확인한다(S620).Subsequently, the virtual execution handler 200 checks whether the PID is an execution PID (Application Process ID) in the API of the received registry IO (S620).

가상 실행 핸들러(200)는 PID가 실행 PID이면(S620), API의 종류가 읽기(Read)인지를 확인한다(S630).If the PID is the execution PID (S620), the virtual execution handler 200 checks whether the type of the API is read (S630).

그리고, 가상 실행 핸들러(200)는 API의 종류가 읽기이면(S630), 레지스트리 키가 실행 레지스트리 정보에 존재하는지를 확인한다(S640).If the type of API is read (S630), the virtual execution handler 200 checks whether a registry key exists in execution registry information (S640).

이때, 가상 실행 핸들러는 실행 레지스트리 정보에 레지스트리 키가 존재하 지 않으면(S640), 전달받은 레지스트리 IO의 경로를 검색용 가상 실행 환경(Virtual Execution Environment for Query)으로 변경한다(S650).At this time, if the registry key does not exist in the execution registry information (S640), the virtual execution handler changes the path of the received registry IO to a virtual execution environment for search (Virtual Execution Environment for Query) (S650).

반면, 가상 실행 핸들러(200)는 API의 종류가 쓰기(Write)이면(S630), 전달받은 레지스트리 IO의 키 값을 실행 레지스트리 정보에 추가한다(S660).On the other hand, if the type of API is a write (Write), the virtual execution handler 200 adds the key value of the received registry IO to the execution registry information (S660).

그 다음으로, 가상 실행 핸들러(200)는 (S660)단계 및 (S740) 단계 실행 후에 실행 레지스트리 정보에 키 값이 추가된 것을 확인하고, 레지스트리 IO의 경로를 설치용 가상 실행 환경(Virtual Execution Environment for Install)으로 변경한다(S670).Next, the virtual execution handler 200 confirms that the key value is added to the execution registry information after executing the steps S660 and S740, and sets the path of the registry IO to the Virtual Execution Environment for Install. (S670).

이후, 가상 실행 핸들러(200)는 실제 레지스트리 IO(Real Registry IO)를 호출한다(S680).Thereafter, the virtual execution handler 200 calls the real registry IO (S680).

여기서, 가상 실행 핸들러(200)는 실행 레지스트리 정보에 키 값이 추가된 것을 확인하여 설치용 가상 실행 환경으로 경로를 변경하고, 실행 레지스트리 정보에 키 값이 추가되지 않은 것을 확인하여 검색용 실행 환경으로 경로를 변경할 수 있다.Here, the virtual execution handler 200 changes the path to the virtual execution environment for installation by confirming that the key value is added to the execution registry information, and confirms that the key value is not added to the execution registry information to the path to the execution environment for search. Can be changed.

도 7은 가상 실행 핸들러(200)가 파일 IO를 리다이렉션하는 과정을 도시한 흐름도이다.7 is a flowchart illustrating a process in which the virtual execution handler 200 redirects file IO.

도 7을 참조하면, 먼저, 가상 실행 핸들러(200)는 실행 프로세스(120)로부터 파일IO를 전달받는다(S710).Referring to FIG. 7, first, the virtual execution handler 200 receives a file IO from an execution process 120 (S710).

이어서, 가상 실행 핸들러(200)는 전달받은 파일 IO의 API에서 PID가 실행 PID(Application Process ID)인지를 확인한다(S720).Subsequently, the virtual execution handler 200 checks whether the PID is an execution PID (Application Process ID) in the API of the received file IO (S720).

가상 실행 핸들러(200)는 PID가 실행 PID이면(S720), API의 종류가 읽기인지를 확인한다(S730).If the PID is the execution PID (S720), the virtual execution handler 200 checks whether the type of the API is read (S730).

그리고, 가상 실행 핸들러(200)는 API의 종류가 읽기이면(S730), 레지스트리 키가 실행 레지스트리 정보에 존재하는지를 확인한다(S740).If the type of API is read (S730), the virtual execution handler 200 checks whether a registry key exists in execution registry information (S740).

이때, 가상 실행 핸들러는 실행 레지스트리 정보에 레지스트리 키가 존재하지 않으면(S740), 전달받은 파일 IO의 경로를 검색용 가상 실행 환경(Virtual Execution Environment for Query)으로 변경한다(S750).At this time, if the registry key does not exist in the execution registry information (S740), the virtual execution handler changes the path of the received file IO to a virtual execution environment for search (Virtual Execution Environment for Query) (S750).

반면, 가상 실행 핸들러(200)는 API의 종류가 쓰기이면(S730), 전달받은 파일 IO의 키 값을 실행 파일 정보에 추가한다(S760).On the other hand, if the type of API is write (S730), the virtual execution handler 200 adds the key value of the received file IO to the execution file information (S760).

그 다음으로, 가상 실행 핸들러(200)는 (S760)단계 및 (S740) 단계 실행 후에 실행 파일 정보에 키 값이 추가되어 있으면, 파일 IO의 경로를 설치용 가상 실행 환경(Virtual Execution Environment for Install)으로 변경한다(S770).Next, if a key value is added to the executable file information after executing steps S760 and S740, the virtual execution handler 200 moves the path of the file IO to the virtual execution environment for install. To change (S770).

이후, 가상 실행 핸들러(200)는 실제 파일 IO(Real File IO)를 호출한다(S780).Thereafter, the virtual execution handler 200 calls a real file IO (S780).

여기서, 가상 실행 핸들러(200)는 실행 레지스트리 정보에 키 값이 추가된 것을 확인하여 설치용 가상 실행 환경으로 경로를 변경하고, 실행 레지스트리 정보에 키 값이 추가되지 않은 것을 확인하여 검색용 실행 환경으로 경로를 변경할 수 있다.Here, the virtual execution handler 200 changes the path to the virtual execution environment for installation by confirming that the key value is added to the execution registry information, and confirms that the key value is not added to the execution registry information to the path to the execution environment for search. Can be changed.

이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술분야에 통상의 지식을 가진자 라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호 범위는 전술한 실시예에 국한되어서는 아니되며 이하의 특허 청구범위의 기재에 의하여 정하여져야 할 것이다.As mentioned above, the configuration of the present invention has been described in detail with reference to the accompanying drawings, which are merely examples, and those skilled in the art to which the present invention pertains various modifications and changes within the scope of the technical idea of the present invention. Of course this is possible. Therefore, the protection scope of the present invention should not be limited to the above-described embodiment, but should be defined by the following claims.

도 1은 본 발명의 실시예에 따른 소프트웨어 변환 시스템을 도시한 구성도.1 is a block diagram showing a software conversion system according to an embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 소프트웨어 변환 시스템의 설치 프로세스 구동 과정을 도시한 흐름도.2 is a flowchart illustrating a process of driving an installation process of a software conversion system according to an exemplary embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 소프트웨어 변환 시스템의 실행 프로세스 구동 과정을 도시한 흐름도.3 is a flowchart illustrating a process of driving an execution process of a software conversion system according to an embodiment of the present invention.

도 4는 가상 실행 핸들러가 레지스트리 IO를 리다이렉션하는 과정을 도시한 흐름도.4 is a flow diagram illustrating a process in which a virtual execution handler redirects registry IO.

도 5는 가상 실행 핸들러가 파일 IO를 리다이렉션하는 과정을 도시한 흐름도.5 is a flowchart illustrating a process in which a virtual execution handler redirects file IO.

도 6은 가상 실행 핸들러가 레지스트리 IO를 리다이렉션하는 과정을 도시한 흐름도.6 is a flow diagram illustrating a process in which a virtual execution handler redirects registry IO.

도 7은 가상 실행 핸들러가 파일 IO를 리다이렉션하는 과정을 도시한 흐름도.7 is a flowchart illustrating a process in which a virtual execution handler redirects file IO.

Claims (10)

윈도우 기반 시스템의 실제 레지스트리 하이브(Real Registry Hive) 및 실제 파일 시스템(Real File System)에 위치하는 가상 실행 환경;A virtual execution environment located in a real registry hive and a real file system of a Windows-based system; 설치형 소프트웨어를 설치하는 설치 프로세스 및 상기 설치형 소프트웨어를 실행하는 실행 프로세스를 구동시키는 소프트웨어 변환 관리자; 및A software conversion manager for driving an installation process for installing the installation software and an execution process for executing the installation software; And 상기 설치 프로세스 및 상기 실행 프로세스가 상기 가상 실행 환경을 참조하도록 하여, 상기 소프트웨어 변환 관리자가 상기 가상 실행 환경에 대한 설치 정보 및 실행 정보를 생성하도록 하는 가상 실행 핸들러를 포함하되,A virtual execution handler for causing the installation process and the execution process to refer to the virtual execution environment, such that the software conversion manager generates installation information and execution information for the virtual execution environment, 상기 소프트웨어 변환 관리자는, 상기 설치 정보 및 상기 실행 정보를 이용하여 상기 윈도우 기반 시스템의 무설치 이동형 소프트웨어를 생성하는 것인 소프트웨어 변환 시스템.The software conversion manager is a software conversion system for generating the installation-free portable software of the window-based system using the installation information and the execution information. 제1항에 있어서, 상기 가상 실행 환경은,The method of claim 1, wherein the virtual execution environment, 무결성을 가지는 운영체제(Clean Operating System)의 이미지에 기반하여 구성되는 것인 소프트웨어 변환 시스템.A software conversion system configured based on an image of a clean operating system with integrity. 제1항에 있어서, 상기 가상 실행 핸들러는,The method of claim 1, wherein the virtual execution handler, 상기 설치 프로세스 및 상기 실행 프로세스에 의해 생성된 레지스트리 입출력 및 파일의 API(Application Program Interface)를 가로채 상기 API가 상기 가상 실행 환경을 참조하도록 리다이렉션하여, 상기 가상 실행 환경에서 상기 설치 정보 및 상기 실행 정보를 생성하도록 하는 것인 소프트웨어 변환 시스템.It intercepts the application program interface (API) of the registry input / output and file generated by the installation process and the execution process, and redirects the API to refer to the virtual execution environment, so that the installation information and the execution information are executed in the virtual execution environment. Generate a software conversion system. 설치형 소프트웨어의 설치 프로세스를 구동할 때, 상기 설치 프로세스가 가상 실행 환경을 참조하도록 하여 상기 가상 실행 환경에서의 설치 정보를 생성하는 단계;Generating the installation information in the virtual execution environment by causing the installation process to refer to the virtual execution environment when driving the installation process of the installable software; 상기 설치형 소프트웨어의 실행 프로세스를 구동할 때, 상기 실행 프로세스가 가상 실행 환경을 참조하도록 하여 상기 가상 실행 환경에서의 실행 정보를 생성하는 단계; 및Generating the execution information in the virtual execution environment by causing the execution process to refer to the virtual execution environment when driving the execution process of the installed software; And 상기 설치 정보 및 상기 실행 정보를 이용하여 무설치 이동형 소프트웨어를 생성하는 단계Generating installation-free portable software using the installation information and the execution information; 를 포함하는 소프트웨어 변환 방법.Software conversion method comprising a. 삭제delete 삭제delete 설치 프로세스 또는 실행 프로세스가 실행되어 파일 입출력 또는 레지스트리 입출력을 생성하여 API를 호출하면, 상기 API(Application Program Interface)의 프로세스 아이디를 확인하여 상기 설치 프로세스에 의해 호출되었는지 상기 실행 프로세스에 의해 호출되었는지 구분하는 단계;When the installation process or the execution process is executed to generate a file input / output or a registry input / output to call an API, the process ID of the application program interface (API) is checked to distinguish whether it is called by the installation process or the execution process. step; 상기 API가 상기 설치 프로세스에 의해 호출되었으면, 상기 API가 생성(Create) 연산에 관한 것인지 열기(Open) 연산에 관한 것인지를 확인하는 단계; 및If the API has been called by the installation process, checking whether the API is about a Create operation or an Open operation; And 상기 API가 상기 열기 연산에 관한 것이면, 상기 파일 입출력 또는 상기 레지스트리 입출력의 경로를 실제 환경에서 검색에 사용되는 검색용 가상 실행 환경으로 변경하여 상기 검색용 가상 실행 환경에서 상기 파일 입출력 또는 상기 레지스트리 입출력을 수행하는 단계If the API relates to the open operation, the file input / output or the registry input / output is changed in the search virtual execution environment by changing a path of the file input / output or the registry input / output to a search virtual execution environment used for searching in a real environment. Steps to perform 를 포함하는 가상 실행 핸들러의 소프트웨어 변환 방법.Software transformation method of the virtual execution handler comprising a. 제7항에 있어서, The method of claim 7, wherein 상기 API가 상기 생성 연산에 관한 것이면, 상기 파일 입출력 또는 상기 레지스트리 입출력의 키 값(Key Value)을 실행 레지스트리 정보에 추가하는 단계; 및If the API relates to the generation operation, adding a key value of the file input / output or the registry input / output to execution registry information; And 상기 파일 입출력 또는 상기 레지스트리 입출력의 경로를 상기 실제 환경에서 설치를 위한 설치용 가상 실행 환경으로 변경하여 상기 설치용 가상 실행 환경에서 상기 파일 입출력 또는 상기 레지스트리 입출력을 수행하는 단계Changing the path of the file input / output or the registry input / output to an installation virtual execution environment for installation in the real environment to perform the file input / output or the registry input / output in the installation virtual execution environment 를 더 포함하는 소프트웨어 변환 방법.Software conversion method further comprising. 제8항에 있어서,The method of claim 8, 상기 프로세스 아이디를 확인한 결과, 호출된 상기 API가 상기 실행 프로세스에 의해 호출되었으면, 상기 API가 읽기(Read) 연산에 관한 것인지 쓰기(Write) 연산에 관한 것인지를 확인하는 단계;As a result of checking the process ID, if the called API is called by the executing process, checking whether the API is related to a read operation or a write operation; 상기 API가 상기 읽기 연산에 관한 것이면, 상기 파일 입출력 또는 상기 레지스트리 입출력의 키 값(Key Value)이 상기 실행 레지스트리 정보에 존재하는지를 확인하는 단계; 및If the API relates to the read operation, checking whether a key value of the file input / output or the registry input / output exists in the execution registry information; And 상기 키 값이 상기 실행 레지스트리 정보에 존재하지 않으면, 상기 파일 입출력 또는 상기 레지스트리 입출력의 경로를 상기 실제 환경에서 검색에 사용되는 상기 검색용 가상 실행 환경으로 변경하여 상기 검색용 가상 실행 환경에서 상기 파일 입출력 또는 상기 레지스트리 입출력을 수행하는 단계If the key value does not exist in the execution registry information, the path of the file input / output or the registry input / output is changed to the search virtual execution environment used for searching in the real environment, and the file input / output in the search virtual execution environment is changed. Or performing the registry input / output. 를 더 포함하는 소프트웨어 변환 방법.Software conversion method further comprising. 제9항에 있어서,10. The method of claim 9, 상기 API가 상기 쓰기 연산에 관한 것이면, 상기 파일 입출력 또는 상기 레지스트리 입출력의 키 값을 상기 실행 레지스트리 정보에 추가하는 단계; 및If the API relates to the write operation, adding a key value of the file input / output or the registry input / output to the execution registry information; And 상기 파일 입출력 또는 상기 레지스트리 입출력의 경로를 상기 실제 환경에서 설치를 위한 상기 설치용 가상 실행 환경으로 변경하여 상기 설치용 가상 실행 환경에서 상기 파일 입출력 또는 상기 레지스트리 입출력을 수행하는 단계Changing the path of the file input / output or the registry input / output to the installation virtual execution environment for installation in the real environment to perform the file input / output or the registry input / output in the installation virtual execution environment 를 더 포함하는 것인 소프트웨어 변환 방법.Software conversion method further comprising.
KR1020080131707A 2008-12-22 2008-12-22 System and Method for Software Transformation KR101078660B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080131707A KR101078660B1 (en) 2008-12-22 2008-12-22 System and Method for Software Transformation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080131707A KR101078660B1 (en) 2008-12-22 2008-12-22 System and Method for Software Transformation

Publications (2)

Publication Number Publication Date
KR20100073119A KR20100073119A (en) 2010-07-01
KR101078660B1 true KR101078660B1 (en) 2011-11-01

Family

ID=42636139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080131707A KR101078660B1 (en) 2008-12-22 2008-12-22 System and Method for Software Transformation

Country Status (1)

Country Link
KR (1) KR101078660B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100506069B1 (en) 2003-07-30 2005-08-03 소프트온넷(주) A system for repackaging application software for streaming of application software and method thereof
US20070006217A1 (en) 2005-06-29 2007-01-04 Macrovision Corporation Method and system for pre-deployment conflict checking

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100506069B1 (en) 2003-07-30 2005-08-03 소프트온넷(주) A system for repackaging application software for streaming of application software and method thereof
US20070006217A1 (en) 2005-06-29 2007-01-04 Macrovision Corporation Method and system for pre-deployment conflict checking

Also Published As

Publication number Publication date
KR20100073119A (en) 2010-07-01

Similar Documents

Publication Publication Date Title
KR101928127B1 (en) Selective file access for applications
JP6018590B2 (en) Application compatibility with library operating system
US20160162451A1 (en) Online software execution platform
EP2705422B1 (en) Dynamically redirecting boot to another operating system
CN100481101C (en) Method for computer safety start
JP2007172586A (en) Method, apparatus and computer program for sharing computer data among computers
KR20040063837A (en) Method and system for recording macros in a language independent syntax
US20110239199A1 (en) Program compiler, program installer, and program install method
US20160077831A1 (en) Accurate and performant code design using memoization
JP2016511497A (en) Javascript debugging using just my code
US20200026554A1 (en) Information processing apparatus, information processing method, and storage medium
US20120158688A1 (en) Button-activated contextual search
US20080154574A1 (en) Application emulation on a non-production computer system
KR101078660B1 (en) System and Method for Software Transformation
CN115659340B (en) Counterfeit applet identification method and device, storage medium and electronic equipment
KR101441999B1 (en) Apparatus for separating contents in separating execution based, method thereof and computer recordable medium storing the method
KR100755697B1 (en) Method, apparatus, and system for installing software
KR102122968B1 (en) System and method for analyzing of application installation information
CN101770396B (en) Method and device for erasing DMI data under Linux system
US20120102473A1 (en) Abstract method removal for reduced memory footprint with optimizer tool
CN114911541A (en) Configuration information processing method and device, electronic equipment and storage medium
Gupta et al. Virtual machine for IOS devices
JPWO2015001615A1 (en) Virtual machine management method, virtual machine management apparatus, and virtual machine management program
CN113032273B (en) Application program debugging method and device, computer equipment and storage medium
KR20110052135A (en) Portable software based on single executable file using application file system and operating method thereof

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151021

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee