KR20060055752A - Apparatus and method for patching program, and computer-readable storage medium recorded with thereof - Google Patents

Apparatus and method for patching program, and computer-readable storage medium recorded with thereof Download PDF

Info

Publication number
KR20060055752A
KR20060055752A KR1020040094895A KR20040094895A KR20060055752A KR 20060055752 A KR20060055752 A KR 20060055752A KR 1020040094895 A KR1020040094895 A KR 1020040094895A KR 20040094895 A KR20040094895 A KR 20040094895A KR 20060055752 A KR20060055752 A KR 20060055752A
Authority
KR
South Korea
Prior art keywords
patch
library
list
program
function
Prior art date
Application number
KR1020040094895A
Other languages
Korean (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 KR1020040094895A priority Critical patent/KR20060055752A/en
Publication of KR20060055752A publication Critical patent/KR20060055752A/en

Links

Images

Classifications

    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 시스템을 재부팅하지 않고도 실행중인 프로그램을 패치할 수 있는 프로그램 패치장치 및 방법과 그 프로그램을 기록한 기록매체에 관한 것이다.The present invention relates to a program patching apparatus and method for patching a running program without rebooting the system, and a recording medium recording the program.

이를 위하여 본 발명은 패치 라이브러리를 로드하는 로딩수단과, 패치 라이브러리와 그에 대응하는 원본 라이브러리가 동일한 함수를 제공하는지 검색하는 검색수단과, 검색수단이 검색한 원본 라이브러의 함수를 패치 라이브러리의 함수에 링크하는 제 1 패치수단을 포함하는 프로그램 패치장치를 제공한다.To this end, the present invention provides a loading means for loading a patch library, a search means for searching whether the patch library and a corresponding original library provide the same function, and a function of the original library searched by the search means in a function of the patch library. A program patch device including a first patch means for linking is provided.

따라서, 본 발명은 응용 프로그램이 참조하는 라이브러리도 응용 프로그램의 실행중에도 패치할 수 있고, 현재 작동중인 시스템을 재부팅하지 않고서도 실행중인 프로그램을 패치할 수 있다.Accordingly, the present invention can also patch a library referenced by an application even when the application is running, and can patch a running program without rebooting the currently running system.

Description

프로그램 패치장치 및 방법과 그 프로그램을 기록한 기록매체{APPARATUS AND METHOD FOR PATCHING PROGRAM, AND COMPUTER-READABLE STORAGE MEDIUM RECORDED WITH THEREOF}Program patch apparatus and method and recording medium recording the program {APPARATUS AND METHOD FOR PATCHING PROGRAM, AND COMPUTER-READABLE STORAGE MEDIUM RECORDED WITH THEREOF}

도 1은 본 발명에 따른 프로그램 패치장치의 일실시예를 나타낸 블록 구성도이고,1 is a block diagram showing an embodiment of a program patch apparatus according to the present invention,

도 2는 본 발명에 따른 프로그램 패치방법의 일실시예를 나타낸 순서도이고,2 is a flowchart showing an embodiment of a program patching method according to the present invention;

도 3은 본 발명에 따른 프로그램 패치방법의 다른 실시예를 나타낸 순서도이다.3 is a flowchart showing another embodiment of a program patching method according to the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

100: 프로그램 패치장치 110: 로딩수단100: program patch device 110: loading means

120: 검색수단 130: 제 1 패치수단120: search means 130: first patch means

140: 모니터링 수단 150: 제 2 패치수단140: monitoring means 150: second patch means

본 발명은 시스템을 재부팅 하지 않고도 실행중인 프로그램을 패치할 수 있는 프로그램 패치장치 및 방법과 그 프로그램을 기록한 기록매체에 관한 것이다. The present invention relates to a program patching apparatus and method for patching a running program without rebooting the system, and a recording medium recording the program.                         

일반적으로 프로그램은 프로그래머가 설계당시 미처 예측하지 못했거나 다른 프로그램과의 충돌로 인해서 발생할 수 있는 에러를 가지고 있다. 이와 같은 프로그램 에러의 심각성에 따라서 에러를 수정하기 위한 패치파일을 제공하게 된다.Generally, a program has errors that the programmer may not have anticipated at the time of design or may be caused by a conflict with another program. Depending on the severity of the program error, a patch file for correcting the error is provided.

요즘과 같이 바이러스나 보안이 중요한 문제가 되고 있는 시기에는, 하루에도 몇 번씩 새로운 버전의 패치파일을 설치하여 해당 프로그램을 업데이트할 것을 권장하고 있다.In these days, when viruses and security become important issues, it is recommended to update the program by installing a new version of the patch file several times a day.

이와 같이 패치파일을 업데이트 시킬 때 사용자에게 반드시 요구되는 권장사항 중의 하나가 시스템을 재부팅하는 것인데, 시스템을 재부팅 하는 이유는 다음과 같다.When updating a patch file, one of the recommendations for users is to reboot the system. The reason for rebooting the system is as follows.

현재 실행중인 프로그램이 패치파일을 사용하기 위해서는 기존의 파일을 덮어써야 하는데 이것 자체가 원천적으로 불가능하며, 이를 위반시 시스템이 다운되어 버린다. 그래서, 시스템을 재부팅하도록 하고, 재부팅될 때 기존 파일을 패치파일로 대체하는 것이다.In order to use the patch file, the currently running program needs to overwrite the existing file. This is not possible by itself. So, let's reboot the system and replace the existing file with the patch file when it reboots.

재부팅이 일반 사용자에게는 크게 문제되지 않는 사항이나, 서버나 산업용 장비에 있어서는 서비스나 생산장비 전체를 멈추어야 하는 문제 때문에 1년에 한 번 정도도 실시하기 어려운 현실이다.Rebooting is not a big problem for general users, but it is difficult to do it once a year due to the problem of stopping entire service or production equipment in server or industrial equipment.

따라서, 보안이나 오류 문제가 심각하다는 것을 알고 있으면서도 어쩔 수 없이 방치하고 있으며, 무방비로 위험한 상황에 노출되는 문제점이 있다.Therefore, while knowing that the security or error problem is serious, it is inevitably left unattended, there is a problem that is exposed to a dangerous situation unprotected.

또, 메모리에 로드된 기존 데이터를 패치 데이터로 덮어쓸 때 패치 데이터가 더 크면, 기존 데이터가 손상되므로 또 다른 에러를 발생시키는 문제점 등이 있다.In addition, when the patch data is larger when the existing data loaded in the memory is overwritten with the patch data, there is a problem of generating another error since the existing data is damaged.

본 발명은 이러한 문제점을 해결하기 위해 안출한 것으로, 본 발명은 시스템을 재부팅하지 않고도 실행중인 프로그램을 패치할 수 있는 프로그램 패치장치 및 방법과 그 프로그램을 기록한 기록매체를 제공함에 그 목적이 있다.The present invention has been made to solve the above problems, and an object of the present invention is to provide a program patch apparatus and method for patching a running program without rebooting the system and a recording medium recording the program.

본 발명의 다른 목적은 프로그램이 참조하는 라이브러리를 프로그램의 실행중에도 패치할 수 있는 프로그램 패치장치 및 방법과 그 프로그램을 기록한 기록매체를 제공하는 것이다.Another object of the present invention is to provide a program patch apparatus and method for patching a library referenced by a program even during execution of the program, and a recording medium on which the program is recorded.

본 발명의 또 다른 목적은 데이터의 크기에 상관없이 패치를 적용할 수 있는 프로그램 패치장치 및 방법과 그 프로그램을 기록한 기록매체를 제공하는 것이다.Still another object of the present invention is to provide a program patch apparatus and method for applying a patch regardless of the size of data, and a recording medium recording the program.

상기 목적을 달성하기 위해 본 발명의 일실시예에서는 패치 라이브러리를 로드하는 로딩수단; 상기 패치 라이브러리와 그에 대응하는 원본 라이브러리가 동일한 함수를 제공하는지 검색하는 검색수단; 및 상기 검색수단이 검색한 원본 라이브러의 함수를 상기 패치 라이브러리의 함수에 링크하는 제 1 패치수단을 포함하는 프로그램 패치장치를 제공한다.In one embodiment of the present invention to achieve the above object loading means for loading a patch library; Search means for searching whether the patch library and the corresponding original library provide the same function; And first patching means for linking a function of the original library searched by said searching means to a function of said patch library.

상기 로딩수단은 상기 패치 라이브러리를 메모리에 로드하며, 상기 검색수단은 상기 원본 라이브러리와 상기 패치 라이브러리의 익스포트 정보를 이용하여 동일한 함수의 존재여부를 확인하는 것을 특징으로 한다.The loading means loads the patch library into a memory, and the searching means checks whether the same function exists using the export information of the original library and the patch library.

상기 검색수단은 상기 원본 라이브러리와 상기 패치 라이브러리가 제공하는 함수의 시작주소를 각각의 익스포트 정보로부터 검색하는 것을 특징으로 한다. The searching means is characterized in that to search the start address of the function provided by the source library and the patch library from each export information.                     

상기 제 1 패치수단은 상기 원본 라이브러리의 함수 시작주소 위치에 상기 패치 라이브러리의 함수 시작주소를 덮어쓰는 것을 특징으로 한다.The first patch means is to overwrite the function start address of the patch library in the function start address position of the original library.

상기 프로그램 패치장치는 패치 리스트를 모니터링하여 라이브러리 업데이트용인지 확인하고, 라이브러리 업데이트용이면 상기 로딩수단을 구동하는 모니터링 수단을 더 포함하는 것을 특징으로 한다.The program patch apparatus may further include monitoring means for monitoring the patch list to check whether the library is updated, and for driving the loading means when the library is updated.

상기 모니터링 수단은 리플레이스 큐에 저장되어 있는 패치 리스트를 모니터링 하는 것을 특징으로 한다.The monitoring means is characterized in that for monitoring the patch list stored in the replace queue.

상기 프로그램 패치장치는 상기 모니터링 수단에서 상기 패치 리스트가 실행파일 업데이트용이라고 확인되면, 상기 패치 리스트에 대응하는 프로세스를 종료시키고 상기 패치 리스트에 해당하는 패치 실행파일을 실행하는 제 2 패치수단을 더 포함하는 것을 특징으로 한다.The program patch device further includes second patch means for terminating a process corresponding to the patch list and executing a patch executable file corresponding to the patch list when the monitoring means confirms that the patch list is for updating an executable file. Characterized in that.

상기 프로그램 패치장치는 패치 리스트를 생성하여 미리 지정된 장소에 저장하는 패치 리스트 생성수단을 더 포함하는 것을 특징으로 한다.The program patch apparatus may further include patch list generating means for generating a patch list and storing the patch list in a predetermined place.

본 발명의 다른 실시예에서는 패치 라이브러리를 로드하는 로딩단계; 상기 패치 라이브러리와 그에 대응하는 원본 라이브러리가 동일한 함수를 제공하는지 검색하는 검색단계; 및 상기 검색단계에서 검색된 원본 라이브러의 함수를 상기 패치 라이브러리의 함수에 링크하는 제 1 패치단계를 포함하는 프로그램 패치방법을 제공한다.In another embodiment of the present invention, a loading step of loading a patch library; A search step of searching whether the patch library and the corresponding original library provide the same function; And a first patch step of linking a function of the original library found in the search step to a function of the patch library.

상기 로딩단계는 상기 패치 라이브러리를 메모리에 로드하며, 상기 검색단계는 상기 원본 라이브러리와 상기 패치 라이브러리의 익스포트 정보를 이용하여 동 일한 함수의 존재여부를 확인하는 것을 특징으로 한다.The loading step loads the patch library into a memory, and the searching step checks whether the same function exists using the export information of the original library and the patch library.

상기 검색단계는 상기 원본 라이브러리와 상기 패치 라이브러리가 제공하는 함수의 시작주소를 각각의 익스포트 정보로부터 검색하는 것을 특징으로 한다.The searching step is characterized in that the start address of the function provided by the source library and the patch library from the respective export information.

상기 제 1 패치단계는 상기 원본 라이브러리의 함수 시작주소 위치에 상기 패치 라이브러리의 함수 시작주소를 덮어쓰는 것을 특징으로 한다.The first patch step may overwrite the function start address of the patch library with the function start address of the original library.

상기 프로그램 패치방법은 (a1) 패치 리스트를 모니터링하는 단계; 및 (a2) 상기 패치 리스트가 라이브러리 업데이트용인지 확인하는 단계를 더 포함하는 것을 특징으로 한다.The program patch method may include: (a1) monitoring a patch list; And (a2) checking whether the patch list is for a library update.

상기 (a1)단계는 리플레이스 큐에 저장되어 있는 패치 리스트를 모니터링 하는 것을 특징으로 한다.Step (a1) is characterized in that for monitoring the patch list stored in the replace queue.

상기 프로그램 패치방법은 (a3) 상기 패치 리스트가 실행파일 업데이트용인지 확인하는 단계; (a4) 실행파일 업데이트용이면 그에 대응하는 프로세스를 종료시키는 단계; 및 (a5) 상기 패치 리스트에 해당하는 패치 실행파일을 실행하는 단계를 더 포함하는 것을 특징으로 한다.The program patch method may include: (a3) checking whether the patch list is for updating an executable file; (a4) terminating the process corresponding to the update of the executable file; And (a5) executing a patch executable file corresponding to the patch list.

상기 프로그램 패치방법은 패치 리스트를 생성하여 미리 지정된 장소에 저장하는 단계를 더 포함하는 것을 특징으로 한다.The program patch method may further include generating a patch list and storing the patch list in a predetermined place.

본 발명의 다른 실시예에서는 패치 라이브러리를 로드하는 로딩단계; 상기 패치 라이브러리와 그에 대응하는 원본 라이브러리가 동일한 함수를 제공하는지 검색하는 검색단계; 및 상기 검색단계에서 검색된 원본 라이브러의 함수를 상기 패치 라이브러리의 함수에 링크하는 제 1 패치단계를 포함하는 프로그램을 기록한 컴퓨 터로 읽을 수 있는 기록매체를 제공한다.In another embodiment of the present invention, a loading step of loading a patch library; A search step of searching whether the patch library and the corresponding original library provide the same function; And a first recording step for linking a function of the original library found in the searching step to a function of the patch library.

본 발명의 목적과 특징 및 장점은 첨부 도면 및 다음의 상세한 설명을 참조함으로써 더욱 쉽게 이해될 수 있을 것이다.The objects, features and advantages of the present invention will be more readily understood by reference to the accompanying drawings and the following detailed description.

본 발명은 시스템을 재부팅하지 않고 프로그램을 패치하는 방법과 그를 지원하도록 구현되는 장치를 바람직한 실시예로 제안한다.The present invention proposes as a preferred embodiment a method for patching a program without rebooting the system and a device implemented to support it.

본 발명의 바람직한 실시예는 본 발명방법을 컴퓨터 시스템에서 실행할 수 있도록 구현된 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다. 이러한 기록매체에는 자기 저장매체(예를 들면, 플로피 디스크, 하드디스크 등)와 광학 저장매체(예를 들면, CD, DVD 등) 등이 포함된다.A preferred embodiment of the present invention includes a computer readable recording medium having recorded thereon a program implemented to execute the method of the present invention on a computer system. Such recording media include magnetic storage media (e.g., floppy disks, hard disks, etc.) and optical storage media (e.g., CDs, DVDs, etc.).

도 1은 본 발명에 따른 프로그램 패치장치의 일실시예를 나타낸 블록 구성도이다. 도 1을 참조하면, 프로그램 패치장치(100)는 패치 라이브러리를 로드하는 로딩수단(110)과, 패치 라이브러리와 그에 대응하는 원본 라이브러리가 동일한 함수를 제공하는지 검색하는 검색수단(120)과, 검색수단(120)이 검색한 원본 라이브러의 함수를 패치 라이브러리의 함수에 링크하는 제 1 패치수단(130)을 포함한다.1 is a block diagram showing an embodiment of a program patch apparatus according to the present invention. Referring to FIG. 1, the program patch apparatus 100 includes a loading means 110 for loading a patch library, a search means 120 for searching whether a patch library and a corresponding original library provide the same function, and a search means. And a first patching means 130 for linking the function of the original library retrieved by 120 to the function of the patch library.

로딩수단(110)은 패치 라이브러리를 메모리에 로드하며, 검색수단(120)은 원본 라이브러리와 패치 라이브러리의 익스포트 정보를 이용하여 동일한 함수의 존재여부를 확인한다.The loading means 110 loads the patch library into the memory, and the searching means 120 checks the existence of the same function using the export information of the original library and the patch library.

검색수단(120)은 동일한 함수가 존재하는 것으로 확인되면, 해당 함수의 시작주소를 각각의 익스포트 정보로부터 검색한다. 그리고, 제 1 패치수단(130)이 원본 라이브러리의 함수 시작위치에 패치 라이브러리의 함수 시작주소를 덮어써서 링 크한다.When the search means 120 confirms that the same function exists, the search means 120 searches for the start address of the function from each export information. Then, the first patch means 130 overwrites the function start address of the patch library at the function start position of the original library.

프로그램 패치장치(100)는 패치 리스트를 모니터링하여 실행파일 업데이트용인지 라이브러리 업데이트용인지 확인하고, 라이브러리 업데이트용이면 로딩수단(110)을 구동하는 모니터링 수단(140)을 더 포함할 수 있다. 본 실시예에서, 모니터링 수단(140)은 리플레이스 큐에 저장되어 있는 패치 리스트를 모니터링한다.The program patch apparatus 100 may further include a monitoring means 140 for monitoring the patch list and checking whether the update file is for an update or a library update, and for driving the loading means 110 when the library is updated. In this embodiment, the monitoring means 140 monitors the patch list stored in the replace queue.

또, 프로그램 패치장치(100)는 모니터링 수단(140)에서 패치 리스트가 실행파일 업데이트용이라고 확인되면, 패치 리스트에 대응하는 프로세스를 종료시키고 패치 리스트에 해당하는 패치 실행파일을 실행하는 제 2 패치수단(150)을 더 포함할 수 있다.In addition, when the monitoring unit 140 confirms that the patch list is for updating the executable file, the program patch device 100 terminates the process corresponding to the patch list and executes the second patch means for executing the patch executable file corresponding to the patch list. 150 may be further included.

또, 프로그램 패치장치(100)는 패치 리스트를 생성하여 미리 지정된 장소에 저장하는 패치 리스트 생성수단(미도시)을 더 포함할 수 있다.In addition, the program patch apparatus 100 may further include a patch list generating unit (not shown) for generating a patch list and storing the patch list in a predetermined place.

도 2는 본 발명에 따른 프로그램 패치방법의 일실시예를 나타낸 순서도이다.2 is a flowchart showing an embodiment of a program patching method according to the present invention.

도 2를 참조하면, 프로그램 패치방법은 패치 라이브러리를 로드하는 단계(S260)와, 패치 라이브러리와 그에 대응하는 원본 라이브러리가 동일한 함수를 제공하는지 검색하는 단계(S270)와, 검색된 원본 라이브러의 함수를 패치 라이브러리의 함수에 링크하는 단계(S280)를 포함한다.Referring to FIG. 2, the program patching method includes loading a patch library (S260), searching for whether a patch library and a corresponding original library provide the same function (S270), and searching for a function of the found original library. Linking to a function of the patch library (S280).

S260 단계는 패치 라이브러리를 메모리에 로드하며, S270 단계는 원본 라이브러리와 패치 라이브러리의 익스포트 정보를 이용하여 동일한 함수의 존재여부를 확인한다.Step S260 loads the patch library into memory, and step S270 checks the existence of the same function using the export information of the original library and the patch library.

S270는 동일한 함수가 존재하는 것으로 확인되면, 해당 함수의 시작주소를 각각의 익스포트 정보로부터 검색한다(미도시). 그리고, S280 단계에서 원본 라이브러리의 함수 시작주소 위치에 패치 라이브러리의 함수 시작주소를 덮어써러 링크한다.If it is determined that the same function exists, S270 retrieves the start address of the function from each export information (not shown). In operation S280, the function start address of the patch library is linked to overwrite the function start address of the patch library.

본 발명에 따른 프로그램 패치방법은 패치 리스트를 모니터링하는 단계(S210)와, 패치 리스트가 라이브러리 업데이트용인지 확인하는 단계(S250)를 더 포함할 수 있다. 본 실시예에서, 패치 리스트는 리플레이스 큐에 저장되어 있다.The program patch method according to the present invention may further include monitoring a patch list (S210) and checking whether the patch list is for a library update (S250). In this embodiment, the patch list is stored in the replace queue.

또, 프로그램 패치방법은 패치 리스트가 실행파일 업데이트용인지 확인하는 단계(S220)와, 실행파일 업데이트용이면 그에 대응하는 프로세스를 종료시키는 단계(S230)와, 패치 리스트에 해당하는 패치 실행파일을 실행하는 단계(S240)를 더 포함할 수 있다.In addition, the program patch method includes the steps of checking whether the patch list is for an executable file update (S220), terminating the corresponding process if the executable file is updated (S230), and executing a patch executable file corresponding to the patch list. It may further comprise a step (S240).

또, 프로그램 패치방법은 패치 리스트를 생성하여 미리 지정된 장소에 저장하는 단계(미도시)를 더 포함할 수 있다.The program patch method may further include generating a patch list and storing the patch list in a predetermined place (not shown).

본 발명의 다른 실시예로는 도 3과 같이, 라이브러리를 먼저 패치한 후에(S320~S350) 실행파일을 패치할 수도 있다(S360~S380).In another embodiment of the present invention, as shown in FIG. 3, the library may be patched first (S320 to S350), and then the executable file may be patched (S360 to S380).

도 2와 3의 실시예에서는 원본 라이브러리가 메모리에 로드되어 있는 경우를 가정한 것이다. 그러나, 로딩수단(110)은 원본 라이브러리가 메모리에 로드되어 있는지 먼저 확인한 후에 패치 라이브러리를 로드하는 것이 바람직하다.2 and 3 assume that the original library is loaded in the memory. However, the loading means 110 preferably checks whether the original library is loaded in the memory, and then loads the patch library.

이상과 같이 구성된 본 발명에서 재부팅 없이 패치파일을 업데이트하는 과정을 도 1과 도 2를 참조하여 자세히 설명하면 다음과 같다.The process of updating a patch file without rebooting in the present invention configured as described above will be described in detail with reference to FIGS. 1 and 2 as follows.

사용자가 인터넷이나 디스켓 또는 CD와 같은 저장매체를 이용해서 입수한 패 치파일을 컴퓨터에 임시로 저장한 것으로 가정한다(본 실시예에서는 자동설치 가능한 패치파일을 하드디스크의 C:\Temp 에 저장). 자동설치 가능한 패치파일에는 패치 실행파일과 패치 라이브러리 파일 등이 포함되어 있을 수 있다.It is assumed that a user temporarily stores a patch file obtained by using a storage medium such as the Internet, a diskette, or a CD in the computer (in this embodiment, the auto-installable patch file is stored in C: \ Temp of the hard disk). . Automatically installable patch files may include patch executable files and patch library files.

먼저, 사용자가 직접 패치파일을 실행하거나, 프로그램 패치장치(100)가 하드디스크에 저장된 패치파일을 실행시킨다(S200). 그러면, 패치파일이 실행되면서 교체 리스트가 리플레이스 큐(replace Queue)에 올라간다. 물론, 패치파일에 따라서는 압축된 파일들을 미리 지정된 장소에 풀어 놓은 후에, 리플레이스 큐에 교체 리스트를 올려놓기도 한다.First, the user directly executes the patch file, or the program patch device 100 executes the patch file stored in the hard disk (S200). The patch file is then run and the replacement list is put on the replace queue. Of course, depending on the patch file, the compressed files are released to a predetermined location, and then a replacement list is placed on the replace queue.

그 후에, 모니터링 수단(140)은 리플레이스 큐에 올라 있는 목록을 모니터링하여(S210), 실행파일을 업데이트 해야 하는지 확인한다(S220). 실행파일을 업데이트 해야 하는 것으로 확인되면, 제 2 패치수단(150)이 메모리에서 해당 프로세스를 제거한 다음(S230) 교체 리스트의 패치 실행파일을 실행시킨다(S240). 그러면, 메모리상에는 패치 실행파일이 동작하게 된다.After that, the monitoring means 140 monitors the list on the replace queue (S210) and checks whether the executable file needs to be updated (S220). When it is confirmed that the executable file needs to be updated, the second patch unit 150 removes the process from the memory (S230) and then executes the patch executable file of the replacement list (S240). Then, the patch executable file runs on the memory.

S210 단계에서 실행파일을 패치하지 않은 것으로 확인되거나 S240 단계까지 실행한 다음에는, 모니터링 수단(140)은 라이브러리를 패치해야 하는지 확인한다(S250).After confirming that the executable file has not been patched in step S210 or executing until step S240, the monitoring unit 140 checks whether the library needs to be patched (S250).

라이브러리를 패치해야 하는 것으로 확인되면, 로딩수단(110)은 패치 라이브러리를 메모리에 로드한다(S260). 이 때, 패치 라이브러리는 기존의 라이브러리와 겹치지 않고 로드되어야 하며, 메모리는 RAM을 의미한다.If it is determined that the library needs to be patched, the loading means 110 loads the patch library into the memory (S260). At this time, the patch library should be loaded without overlapping with the existing library, and memory means RAM.

그 다음, 검색수단(120)이 패치 라이브러리와 그에 대응하는 원본 라이브러 리가 동일한 함수를 제공하는지 검색한다(S270). 익스포트 정보에는 라이브러리가 제공하는 함수이름과 주소 등이 포함되어 있다.Next, the search means 120 searches whether the patch library and the corresponding original library provide the same function (S270). Export information includes the function name and address provided by the library.

따라서, 원본 라이브러리와 패치 라이브러리의 익스포트 정보로부터 함수이름을 각각 추출한 다음에 비교하면, 동일한 함수가 있는지 여부를 확인할 수 있다.Therefore, if the function names are extracted from the export information of the original library and the patch library, and then compared, the presence or absence of the same function can be confirmed.

S270 단계에서 동일한 함수 이름이 있는 것으로 확인되면, 제 1 패치수단(130)이 원본 라이브러의 함수를 패치 라이브러리의 함수에 링크(S280)하고 종료한다. 즉, 원본 라이브러리의 함수 시작주소 위치를 찾아서 그 부분에 패치 라이브러리의 함수 시작주소로 각각 덮어쓰는 것이다. 만약, S270 단계에서 동일한 함수 이름이 없으면 바로 종료한다.When it is confirmed in step S270 that the same function name exists, the first patch means 130 links the function of the original library to the function of the patch library (S280) and ends. In other words, it finds the location of the function start address of the original library and overwrites it with the function start address of the patch library. If the same function name does not exist in step S270, it ends immediately.

이와 같이 패치 라이브러리를 원본 라이브러리에 링크시키면, 이후에 응용 프로그램이 원본 라이브러리를 참조하더라도, 원본 라이브러리에서 패치 라이브러리로 실행이 넘어가게 된다. 따라서, 시스템을 재부팅 하지 않고도 패치가 적용된다.If you link the patch library to the original library in this way, even if the application refers to the original library, it will run from the original library to the patch library. Therefore, the patch is applied without rebooting the system.

또, 시스템을 재부팅하게 되면 운영체제는 패치대상 파일을 리플레이스 큐에 해당하는 파일로 대체함으로써, 기존에 발생했던 에러가 더 이상 발생하지 않게 된다.In addition, when the system is rebooted, the operating system replaces the patch target file with a file corresponding to the replace queue, so that an error that occurred previously no longer occurs.

한편, 위에서는 사용자가 오프라인상으로 자동설치 가능한 패치파일을 입수해서 특정 장소에 저장한 경우를 예로 들었지만, 인터넷을 통해서 자동으로 내려 받도록 구성할 수도 있다. 그리고, 제조업자가 패치파일에 대한 정보를 제공할 경우, 리플레이스 큐를 모니터링 하는 S210 단계를 생략할 수 있다. On the other hand, in the above example, the user obtained a patch file that can be automatically installed offline, and stored in a specific place as an example, but can also be configured to automatically download through the Internet. And, if the manufacturer provides information about the patch file, step S210 for monitoring the replacement queue can be omitted.                     

또 다른 한편으로, 자동설치가 불가능한 패치파일의 경우, 사용자가 선택한 패치파일의 이름을 리플레이스 큐에 올려놓고, S220 단계부터 시작할 수도 있다. 또 다른 방법으로, 패치 리스트 생성수단(미도시)을 이용하여 패치 리스트를 생성한 후 미리 지정된 장소에 저장해 놓을 수도 있다.On the other hand, in the case of a patch file that can not be automatically installed, the user can put the name of the patch file selected by the user to the replace queue, starting from step S220. Alternatively, the patch list may be generated using a patch list generating unit (not shown) and then stored in a predetermined place.

이상의 본 발명은 상기에 기술된 실시예들에 의해 한정되지 않고, 당업자들에 의해 다양한 변형 및 변경을 가져올 수 있으며, 이는 첨부된 청구항에서 정의되는 본 발명의 취지와 범위에 포함된다.The present invention is not limited to the embodiments described above, and various modifications and changes can be made by those skilled in the art, which are included in the spirit and scope of the present invention as defined in the appended claims.

이상에서 살펴본 바와 같이 본 발명은, 현재 작동중인 시스템을 재부팅하지 않고서도 실행중인 프로그램을 패치할 수 있다. 특히, 응용 프로그램이 참조하는 라이브러리를 응용 프로그램의 실행중에도 패치할 수 있다.As described above, the present invention can patch a running program without rebooting the currently operating system. In particular, libraries referenced by an application can be patched while the application is running.

그리고, 데이터의 크기에 상관없이 패치를 적용할 수 있는 이점 등이 있다.In addition, there is an advantage that the patch can be applied regardless of the size of the data.

Claims (18)

패치 라이브러리를 로드하는 로딩수단;Loading means for loading a patch library; 상기 패치 라이브러리와 그에 대응하는 원본 라이브러리가 동일한 함수를 제공하는지 검색하는 검색수단; 및Search means for searching whether the patch library and the corresponding original library provide the same function; And 상기 검색수단이 검색한 원본 라이브러의 함수를 상기 패치 라이브러리의 함수에 링크하는 제 1 패치수단을 포함하는 프로그램 패치장치.And a first patch means for linking a function of an original library searched by said search means to a function of said patch library. 제 1항에 있어서, 상기 로딩수단은The method of claim 1, wherein the loading means 상기 패치 라이브러리를 메모리에 로드하는 것을 특징으로 하는 프로그램 패치장치.Program patch device, characterized in that for loading the patch library to the memory. 제 1항에 있어서, 상기 검색수단은The method of claim 1, wherein the searching means 상기 원본 라이브러리와 상기 패치 라이브러리의 익스포트 정보를 이용하여 동일한 함수의 존재여부를 확인하는 것을 특징으로 하는 프로그램 패치장치.Program patch apparatus, characterized in that the existence of the same function using the export information of the original library and the patch library. 제 1항에 있어서, 상기 검색수단은The method of claim 1, wherein the searching means 상기 원본 라이브러리와 상기 패치 라이브러리가 제공하는 함수의 시작주소를 각각의 익스포트 정보로부터 검색하는 것을 특징으로 하는 프로그램 패치장치.And a start address of a function provided by the source library and the patch library from each export information. 제 4항에 있어서, 상기 제 1 패치수단은The method of claim 4, wherein the first patch means 상기 원본 라이브러리의 함수 시작주소 위치에 상기 패치 라이브러리의 함수 시작주소를 덮어쓰는 것을 특징으로 하는 프로그램 패치장치.And a function start address of the patch library is overwritten by a function start address of the original library. 제 1항에 있어서,The method of claim 1, 패치 리스트를 모니터링하여 라이브러리 업데이트용인지 확인하고, 라이브러리 업데이트용이면 상기 로딩수단을 구동하는 모니터링 수단을 더 포함하는 것을 특징으로 하는 프로그램 패치장치.And a monitoring means for monitoring the patch list to check whether the library is for a library update and for driving the loading means if the library is for a library update. 제 6항에 있어서, 상기 모니터링 수단은The method of claim 6, wherein said monitoring means 리플레이스 큐에 저장되어 있는 패치 리스트를 모니터링 하는 것을 특징으로 하는 프로그램 패치장치.Program patch device, characterized in that for monitoring the list of patches stored in the replace queue. 제 6항에 있어서,The method of claim 6, 상기 모니터링 수단에서 상기 패치 리스트가 실행파일 업데이트용이라고 확인되면, 상기 패치 리스트에 대응하는 프로세스를 종료시키고 상기 패치 리스트에 해당하는 패치 실행파일을 실행하는 제 2 패치수단을 더 포함하는 것을 특징으로 하는 프로그램 패치장치.If the monitoring means confirms that the patch list is for updating the executable file, further comprising second patch means for terminating the process corresponding to the patch list and executing the patch executable file corresponding to the patch list. Program patch device. 제 6항 내지 제 8항 중 어느 한 항에 있어서,The method according to any one of claims 6 to 8, 패치 리스트를 생성하여 미리 지정된 장소에 저장하는 패치 리스트 생성수단을 더 포함하는 것을 특징으로 하는 프로그램 패치장치.And a patch list generating means for generating a patch list and storing the patch list in a predetermined place. 패치 라이브러리를 로드하는 로딩단계;Loading a patch library; 상기 패치 라이브러리와 그에 대응하는 원본 라이브러리가 동일한 함수를 제공하는지 검색하는 검색단계; 및A search step of searching whether the patch library and the corresponding original library provide the same function; And 상기 검색단계에서 검색된 원본 라이브러의 함수를 상기 패치 라이브러리의 함수에 링크하는 제 1 패치단계를 포함하는 프로그램 패치방법.And a first patch step of linking a function of the original library found in the search step to a function of the patch library. 제 10항에 있어서, 상기 로딩단계는The method of claim 10, wherein the loading step 상기 패치 라이브러리를 메모리에 로드하는 것을 특징으로 하는 프로그램 패치방법.Program patch method, characterized in that for loading the patch library to the memory. 제 10항에 있어서, 상기 검색단계는The method of claim 10, wherein the searching step 상기 원본 라이브러리와 상기 패치 라이브러리의 익스포트 정보를 이용하여 동일한 함수의 존재여부를 확인하는 것을 특징으로 하는 프로그램 패치방법.Program patch method, characterized in that the existence of the same function using the export information of the original library and the patch library. 제 10항에 있어서, 상기 검색단계는The method of claim 10, wherein the searching step 상기 원본 라이브러리와 상기 패치 라이브러리가 제공하는 함수의 시작주소를 각각의 익스포트 정보로부터 검색하는 것을 특징으로 하는 프로그램 패치방법.And a start address of a function provided by the source library and the patch library from each export information. 제 13항에 있어서, 상기 제 1 패치단계는The method of claim 13, wherein the first patch step 상기 원본 라이브러리의 함수 시작주소 위치에 상기 패치 라이브러리의 함수 시작주소를 덮어쓰는 것을 특징으로 하는 프로그램 패치방법.And a function start address of the patch library is overwritten by a function start address of the original library. 제 10항에 있어서,The method of claim 10, (a1) 패치 리스트를 모니터링하는 단계; 및(a1) monitoring the patch list; And (a2) 상기 패치 리스트가 라이브러리 업데이트용인지 확인하는 단계를 더 포함하는 것을 특징으로 하는 프로그램 패치방법.(a2) The method of claim 1, further comprising the step of checking whether the patch list for the library update. 제 15항에 있어서, 상기 (a1)단계는The method of claim 15, wherein step (a1) 리플레이스 큐에 저장되어 있는 패치 리스트를 모니터링 하는 것을 특징으로 하는 프로그램 패치방법.Program patch method, characterized in that for monitoring the list of patches stored in the replace queue. 제 15항에 있어서,The method of claim 15, (a3) 상기 패치 리스트가 실행파일 업데이트용인지 확인하는 단계;(a3) confirming whether the patch list is for updating an executable file; (a4) 실행파일 업데이트용이면 그에 대응하는 프로세스를 종료시키는 단계; 및(a4) terminating the process corresponding to the update of the executable file; And (a5) 상기 패치 리스트에 해당하는 패치 실행파일을 실행하는 단계를 더 포함하는 것을 특징으로 하는 프로그램 패치방법.(a5) The method of claim 1, further comprising executing a patch executable file corresponding to the patch list. 제 14항 내지 제 15항 중 어느 한 항에 있어서,The method according to any one of claims 14 to 15, 패치 리스트를 생성하여 미리 지정된 장소에 저장하는 단계를 더 포함하는 것을 특징으로 하는 프로그램 패치방법.And generating a patch list and storing the patch list in a predetermined place.
KR1020040094895A 2004-11-19 2004-11-19 Apparatus and method for patching program, and computer-readable storage medium recorded with thereof KR20060055752A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040094895A KR20060055752A (en) 2004-11-19 2004-11-19 Apparatus and method for patching program, and computer-readable storage medium recorded with thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040094895A KR20060055752A (en) 2004-11-19 2004-11-19 Apparatus and method for patching program, and computer-readable storage medium recorded with thereof

Publications (1)

Publication Number Publication Date
KR20060055752A true KR20060055752A (en) 2006-05-24

Family

ID=37151697

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040094895A KR20060055752A (en) 2004-11-19 2004-11-19 Apparatus and method for patching program, and computer-readable storage medium recorded with thereof

Country Status (1)

Country Link
KR (1) KR20060055752A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949948B1 (en) * 2008-04-23 2010-03-30 주식회사 안철수연구소 Detection system for target program and method thereof
WO2015163931A1 (en) * 2014-04-24 2015-10-29 Hewlett-Packard Development Company, L.P. Dynamically applying a patch to a computer application
WO2016068845A1 (en) * 2014-09-01 2016-05-06 Hewlett Packard Enterprise Development Lp Dynamically applying a patch to a shared library

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949948B1 (en) * 2008-04-23 2010-03-30 주식회사 안철수연구소 Detection system for target program and method thereof
WO2015163931A1 (en) * 2014-04-24 2015-10-29 Hewlett-Packard Development Company, L.P. Dynamically applying a patch to a computer application
US10514904B2 (en) 2014-04-24 2019-12-24 Hewlett Packard Enterprise Development Lp Dynamically applying a patch to a computer application
WO2016068845A1 (en) * 2014-09-01 2016-05-06 Hewlett Packard Enterprise Development Lp Dynamically applying a patch to a shared library
US10338914B2 (en) 2014-09-01 2019-07-02 Hewlett Packard Enterprise Development Lp Dynamically applying a patch to a shared library

Similar Documents

Publication Publication Date Title
CN101821727B (en) Managing updates to create virtual machine facsimile
US5764992A (en) Method and apparatus for automatic software replacement
US8806476B2 (en) Implementing a software installation process
US7735078B1 (en) System and method for software patching for cross-platform products
EP2362312B1 (en) Firmware update system, and information apparatus, as well as program
US7774636B2 (en) Method and system for kernel panic recovery
US8887149B2 (en) Time shift configuration management for software product installation
CN107783776B (en) Processing method and device of firmware upgrade package and electronic equipment
KR20110086732A (en) Application restore points
US20120124419A1 (en) Networked recovery system
CN111562934B (en) Software system upgrading method based on hot patch, terminal and storage medium
CN104239082A (en) Hot patching implementation method of embedded system
US7627866B2 (en) Systems and methods for dynamic application patching
US20110209134A1 (en) Information processing apparatus
EP2805233B1 (en) Installation engine and package format for parallelizable, reliable installations
US20130185602A1 (en) Heap dump occurrence detection
US8806477B2 (en) Space efficient software package management
US20140156943A1 (en) Information processing apparatus, information processing method, and program
CN113032183A (en) System management method, device, computer equipment and storage medium
KR20060055752A (en) Apparatus and method for patching program, and computer-readable storage medium recorded with thereof
CN111427588A (en) Suspending installation of firmware packages
KR20050117393A (en) Apparatus and method for patch management, and computer-readable storage medium recorded with patch management program
CN100504787C (en) Virtual executing method for installing software, and system
CN102479093A (en) Software installing system for providing verification and updating original file and register table and method thereof
KR101209943B1 (en) The selective retrieval system and method using the windows hive file

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application