KR102459269B1 - Software packaging device and method for performing binary analysis, and recorded media recorded of the program for performing the same - Google Patents

Software packaging device and method for performing binary analysis, and recorded media recorded of the program for performing the same Download PDF

Info

Publication number
KR102459269B1
KR102459269B1 KR1020210010877A KR20210010877A KR102459269B1 KR 102459269 B1 KR102459269 B1 KR 102459269B1 KR 1020210010877 A KR1020210010877 A KR 1020210010877A KR 20210010877 A KR20210010877 A KR 20210010877A KR 102459269 B1 KR102459269 B1 KR 102459269B1
Authority
KR
South Korea
Prior art keywords
software
information
initial environment
hardware
operating system
Prior art date
Application number
KR1020210010877A
Other languages
Korean (ko)
Other versions
KR20220068874A (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 US17/472,773 priority Critical patent/US20220156052A1/en
Publication of KR20220068874A publication Critical patent/KR20220068874A/en
Application granted granted Critical
Publication of KR102459269B1 publication Critical patent/KR102459269B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

초기 환경을 설정하고, 타겟 소프트웨어에 의해 이용되는 소프트웨어 정보를 초기 환경에 이동시키며, 소프트웨어가 설치된 운영체제로부터 하드웨어 정보를 수집하고, 초기 환경에 하드웨어 정보를 적용시키며, 소프트웨어 정보와 하드웨어 정보가 적용된 초기 환경으로부터 소프트웨어 패키지를 생성하는, 소프트웨어 패키징 장치를 제공한다.Set the initial environment, move the software information used by the target software to the initial environment, collect hardware information from the operating system where the software is installed, apply hardware information to the initial environment, and apply the software information and hardware information to the initial environment It provides a software packaging device for generating a software package from.

Description

이진 분석을 수행하는 소프트웨어 패키징 장치, 방법 및 이를 수행하기 위한 프로그램이 기록된 기록매체{SOFTWARE PACKAGING DEVICE AND METHOD FOR PERFORMING BINARY ANALYSIS, AND RECORDED MEDIA RECORDED OF THE PROGRAM FOR PERFORMING THE SAME}Software packaging apparatus for performing binary analysis, method, and recording medium on which a program for performing the same is recorded

본 발명은 이진 분석을 수행하는 소프트웨어 패키징 장치 및 방법에 관한 것으로, 소프트웨어를 패키징하여 소프트웨어 패키지를 생성하는 소프트웨어 패키징 장치 및 방법에 관한 것이다.The present invention relates to a software packaging apparatus and method for performing binary analysis, and to a software packaging apparatus and method for packaging software to generate a software package.

패키지(package)라는 것은 사용자가 쉽게 소프트웨어의 설치와 설정 작업들을 할 수 있도록 제공되는 설치 파일을 말하며, 소프트웨어에 대한 정보와 설정 내용 및 실행파일 등을 포함한다. 실행 파일이란 소프트웨어를 실행시키기 위한 코드 및 데이터 헤더(data header) 정보들을 담고 있는 파일을 말하며 운영체제에 따라 COFF(Common Object File Format), PE(Portable Executable), ELF(Executable and Linkable Format)와 같은 포맷을 사용하고 있다. 코드는 CPU가 이해할 수 있는 기계어를 말하며 컴파일(compile) 시에 C 또는 C++ 등과 같은 상위 레벨 소스 코드(source code)로부터 생성된다.A package refers to an installation file provided so that a user can easily install and configure software, and includes information about software, setting contents, and executable files. Executable file refers to a file that contains code and data header information for executing software, and formats such as COFF (Common Object File Format), PE (Portable Executable), ELF (Executable and Linkable Format) depending on the operating system. is using The code refers to machine language that the CPU can understand and is generated from high-level source code such as C or C++ at the time of compilation.

한편, 가상화 기술은 모든 분야의 컴퓨팅 자원에 대해서 기술 개발이 진행되고 있으며, 인터넷 포탈 업체의 데이터 센터 등에서 고성능 서버 장치들에 성공적으로 적용되고 있다. 가상화 기술은 데이터센터 내의 서버, 스토리지 등부터 시작해 전송을 위한 라우터 등 네트워킹 장비, 그리고 PC, PDA, 스마트폰 등 사용자 단말기에 걸쳐 광범위하게 적용될 수 있는 기술이다. 차량용 스마트 게이트웨이 장치, 스마트 홈 게이트웨이 장치, 미래 네트워크용 비정지 라우터 등과 같은 미래의 임베디드 장비를 위한 기술로도 사용 가능하다. 이와 같은, 가상화 기술은 하드웨어에 실제 설치된 운영체제에 가상의 운영체제를 설치하는 형태로 마련되며, 이를 위해, 가상화 기술은 실제 운영체제와 가상 운영체제 간의 정보 교류를 위해 하이퍼바이저(Hypervisor) 등의 가상 머신을 이용하게 된다.On the other hand, virtualization technology is being developed for computing resources in all fields, and has been successfully applied to high-performance server devices in data centers of Internet portal companies. Virtualization technology is a technology that can be widely applied from servers and storage in data centers to networking equipment such as routers for transmission, and user terminals such as PCs, PDAs, and smartphones. It can also be used as a technology for future embedded devices, such as smart gateway devices for vehicles, smart home gateway devices, and non-stationary routers for future networks. Such virtualization technology is provided in the form of installing a virtual operating system in an operating system that is actually installed in hardware. will do

이와 관련하여, 종래에는 특정 운영체제에서만 구동 가능하도록 패키지가 생성되고 있으며, 이에 따라, 다른 운영체제에서 이용 가능한 패키지를 특정 운영체제에서 이용하기 위해서는 가상화 기술을 적용하여야만 하는 어려움이 존재하며, 또한, 패키지에 소프트웨어의 이미지 계층뿐만 아니라 하드웨어 계층을 포함하는 방안도 존재하나, 이러한 경우에, 패키지가 대형화되는 단점이 존재한다. 이에 따라, 이미지 계층과 하드웨어 계층을 포함하면서도, 축소된 패키지를 생성하는 방안이 요구되는 실정이다.In this regard, in the prior art, packages are generated so that they can be driven only in a specific operating system. Accordingly, there is a difficulty in applying virtualization technology in order to use a package available in another operating system in a specific operating system. There is also a method including a hardware layer as well as an image layer of the , but in this case, there is a disadvantage in that the package becomes large. Accordingly, there is a need for a method for generating a reduced package while including an image layer and a hardware layer.

본 발명이 해결하고자 하는 기술적 과제는 소프트웨어로부터 이진 값으로 나타나는 명령어를 분석하여 소프트웨어를 패키징하는 소프트웨어 패키징 장치 및 방법을 제공하는 것이다.The technical problem to be solved by the present invention is to provide a software packaging apparatus and method for packaging software by analyzing a command appearing as a binary value from software.

본 발명의 일측면은, 초기 환경을 설정하는 환경 설정부; 사전에 설정된 타겟 소프트웨어에 의해 이용되는 소프트웨어 정보를 추출하고, 상기 초기 환경에 상기 소프트웨어 정보를 이동시키는 소프트웨어 정보 제어부; 상기 소프트웨어가 설치된 운영체제로부터 하드웨어 정보를 수집하는 하드웨어 정보 수집부; 상기 초기 환경에 상기 하드웨어 정보를 적용시키는 하드웨어 정보 제어부; 및 상기 소프트웨어 정보와 상기 하드웨어 정보가 적용된 초기 환경으로부터 소프트웨어 패키지를 생성하는 패키지 생성부;를 포함할 수 있다.One aspect of the present invention, an environment setting unit for setting an initial environment; a software information control unit that extracts software information used by a preset target software and moves the software information to the initial environment; a hardware information collection unit for collecting hardware information from an operating system in which the software is installed; a hardware information control unit for applying the hardware information to the initial environment; and a package generator configured to generate a software package from an initial environment to which the software information and the hardware information are applied.

또한, 상기 환경 설정부는, 상기 초기 환경이 설정되도록 사전에 설정된 복수개의 기본 폴더를 생성할 수 있다.Also, the environment setting unit may create a plurality of preset default folders to set the initial environment.

또한, 상기 기본 폴더는, 바이너리 폴더, 디바이스 폴더, 라이브러리 폴더, 변수 폴더 및 슈퍼 바이너리 폴더를 포함할 수 있다.Also, the basic folder may include a binary folder, a device folder, a library folder, a variable folder, and a super binary folder.

또한, 상기 소프트웨어 정보 제어부는, 상기 타겟 소프트웨어의 메타 정보를 추출하고, 상기 타겟 소프트웨어로부터, 상기 메타 정보에 기록된 소프트웨어 정보와 동일한 소프트웨어 정보를 추출할 수 있다.Also, the software information control unit may extract meta information of the target software, and extract the same software information as software information recorded in the meta information from the target software.

또한, 상기 소프트웨어 정보 제어부는, 상기 타겟 소프트웨어로부터 추출된 소프트웨어 정보의 위치에 매칭되도록 상기 초기 환경에 설정된 기본 폴더에 상기 소프트웨어 정보를 이동시킬 수 있다.Also, the software information control unit may move the software information to a default folder set in the initial environment to match the location of the software information extracted from the target software.

또한, 상기 하드웨어 정보 수집부는, 상기 타겟 소프트웨어에 의해 수행되도록 마련되는 호출 명령을 추출하고, 상기 호출 명령에 의해 호출되는, 상기 운영체제의 구성 정보와, 상기 타겟 소프트웨어의 구동에 요구되는 운영체제의 프로필 정보를 수집할 수 있다.In addition, the hardware information collecting unit extracts a call command provided to be executed by the target software, and configuration information of the operating system, which is called by the call command, and profile information of the operating system required to drive the target software can be collected.

또한, 상기 하드웨어 정보 제어부는, 상기 운영체제로부터 수집된 하드웨어 정보에 기초하여 상기 소프트웨어 정보가 적용된 초기 환경을 업데이트할 수 있다.Also, the hardware information controller may update an initial environment to which the software information is applied based on hardware information collected from the operating system.

본 발명의 다른 일측면은, 이진 분석을 수행하는 소프트웨어 패키징 장치에서의 소프트웨어 패키징 방법에 있어서, 환경 설정부가 초기 환경을 설정하는 단계; 소프트웨어 정보 제어부가 사전에 설정된 타겟 소프트웨어에 의해 이용되는 소프트웨어 정보를 추출하고, 상기 초기 환경에 상기 소프트웨어 정보를 이동시키는 단계; 하드웨어 정보 수집부가 상기 소프트웨어가 설치된 운영체제로부터 하드웨어 정보를 수집하는 단계; 하드웨어 정보 제어부가 상기 초기 환경에 상기 하드웨어 정보를 적용시키는 단계; 및 패키지 생성부가 상기 소프트웨어 정보와 상기 하드웨어 정보가 적용된 초기 환경으로부터 소프트웨어 패키지를 생성하는 단계;를 포함할 수 있다.Another aspect of the present invention provides a software packaging method in a software packaging device for performing binary analysis, the method comprising: an environment setting unit setting an initial environment; extracting, by a software information control unit, software information used by a preset target software, and moving the software information to the initial environment; collecting hardware information from an operating system in which the software is installed by a hardware information collection unit; applying, by a hardware information controller, the hardware information to the initial environment; and generating, by a package generator, a software package from an initial environment to which the software information and the hardware information are applied.

또한, 상기 초기 환경을 설정하는 단계는, 상기 초기 환경이 설정되도록 사전에 설정된 복수개의 기본 폴더를 생성할 수 있다.In addition, the setting of the initial environment may include creating a plurality of preset default folders in which the initial environment is set.

또한, 상기 기본 폴더는, 바이너리 폴더, 디바이스 폴더, 라이브러리 폴더, 변수 폴더 및 슈퍼 바이너리 폴더를 포함할 수 있다.Also, the basic folder may include a binary folder, a device folder, a library folder, a variable folder, and a super binary folder.

또한, 상기 소프트웨어 정보를 추출하고, 초기 환경에 소프트웨어 정보를 이동시키는 단계는, 상기 타겟 소프트웨어의 메타 정보를 추출하고, 상기 타겟 소프트웨어로부터, 상기 메타 정보에 기록된 소프트웨어 정보와 동일한 소프트웨어 정보를 추출할 수 있다.In addition, the step of extracting the software information and moving the software information to the initial environment may include extracting the meta information of the target software and extracting the same software information as the software information recorded in the meta information from the target software. can

또한, 상기 소프트웨어 정보를 추출하고, 초기 환경에 소프트웨어 정보를 이동시키는 단계는, 상기 타겟 소프트웨어로부터 추출된 소프트웨어 정보의 위치에 매칭되도록 상기 초기 환경에 설정된 기본 폴더에 상기 소프트웨어 정보를 이동시킬 수 있다.In addition, extracting the software information and moving the software information to the initial environment may include moving the software information to a default folder set in the initial environment to match the location of the software information extracted from the target software.

또한, 상기 운영체제로부터 하드웨어 정보를 수집하는 단계는, 상기 타겟 소프트웨어에 의해 수행되도록 마련되는 호출 명령을 추출하고, 상기 호출 명령에 의해 호출되는, 상기 운영체제의 구성 정보와, 상기 타겟 소프트웨어의 구동에 요구되는 운영체제의 프로필 정보를 수집할 수 있다.In addition, the step of collecting hardware information from the operating system includes extracting a call command prepared to be performed by the target software, and the configuration information of the operating system, which is called by the call command, and a request for driving the target software Profile information of the operating system can be collected.

또한, 상기 초기 환경에 하드웨어 정보를 적용시키는 단계는, 상기 운영체제로부터 수집된 하드웨어 정보에 기초하여 상기 소프트웨어 정보가 적용된 초기 환경을 업데이트할 수 있다.In addition, the applying the hardware information to the initial environment may update the initial environment to which the software information is applied based on the hardware information collected from the operating system.

본 발명의 또 다른 일측면은, 소프트웨어 패키징 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체일 수 있다.Another aspect of the present invention may be a computer-readable recording medium in which a computer program is recorded for performing a software packaging method.

상술한 본 발명의 일측면에 따르면, 이진 분석을 수행하는 소프트웨어 패키징 장치 및 방법을 제공함으로써, 소프트웨어로부터 이진 값으로 나타나는 명령어를 분석하여 소프트웨어를 패키징할 수 있다.According to one aspect of the present invention described above, by providing a software packaging apparatus and method for performing binary analysis, it is possible to package software by analyzing a command expressed as a binary value from software.

도1은 본 발명의 일 실시예에 따른 소프트웨어 패키징 장치를 포함하는 소프트웨어 패키징 시스템의 개략도이다.
도2는 본 발명의 일 실시예에 따른 소프트웨어 패키징 장치의 제어블록도이다.
도3은 도2의 패키지 생성부에서 소프트웨어 패키지를 생성하는 과정을 나타낸 블록도이다.
도4는 본 발명의 일 실시예에 따른 소프트웨어 패키징 장치에서 소프트웨어 패키지를 생성하는 과정의 일 실시예를 나타낸 개략도이다.
도5는 본 발명의 일 실시예에 따른 소프트웨어 패키징 방법의 순서도이다.
1 is a schematic diagram of a software packaging system including a software packaging apparatus according to an embodiment of the present invention;
2 is a control block diagram of a software packaging apparatus according to an embodiment of the present invention.
3 is a block diagram illustrating a process of generating a software package in the package generating unit of FIG. 2 .
4 is a schematic diagram illustrating an embodiment of a process of generating a software package in a software packaging apparatus according to an embodiment of the present invention.
5 is a flowchart of a software packaging method according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0012] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0014] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0016] Reference is made to the accompanying drawings, which show by way of illustration specific embodiments in which the present invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein with respect to one embodiment may be implemented in other embodiments without departing from the spirit and scope of the invention. In addition, it should be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the present invention. Accordingly, the detailed description set forth below is not intended to be taken in a limiting sense, and the scope of the present invention, if properly described, is limited only by the appended claims, along with all scope equivalents to those claimed. Like reference numerals in the drawings refer to the same or similar functions throughout the various aspects.

이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the drawings.

도1은 본 발명의 일 실시예에 따른 소프트웨어 패키징 장치를 포함하는 소프트웨어 패키징 시스템의 개략도이다.1 is a schematic diagram of a software packaging system including a software packaging apparatus according to an embodiment of the present invention;

소프트웨어 패키징 장치(100)는 운영체제(20)에 설치된 타겟 소프트웨어(30)로부터 소프트웨어 패키지(101)를 생성할 수 있다.The software packaging apparatus 100 may generate the software package 101 from the target software 30 installed in the operating system 20 .

이를 위해, 소프트웨어 패키징 장치(100)는 타겟 소프트웨어(30)로부터 소프트웨어 정보를 추출할 수 있으며, 또한, 소프트웨어 패키징 장치(100)는 운영체제(20)로부터 하드웨어 정보를 수집할 수 있다.To this end, the software packaging apparatus 100 may extract software information from the target software 30 , and the software packaging apparatus 100 may collect hardware information from the operating system 20 .

여기에서, 운영체제(20)는 사용자가 하드웨어(10)와 소프트웨어(30)를 이용하도록 마련되는 운영 시스템(OS: Operating System)을 의미할 수 있으며, 예를 들어, 운영체제(20)는 리눅스(Linux), 우분투(Ubuntu) 및 윈도우(Windows) 등을 포함할 수 있다. 또한, 소프트웨어(30)는 응용 프로그램, 어플리케이션 등을 의미할 수 있다.Here, the operating system 20 may mean an operating system (OS) provided for a user to use the hardware 10 and the software 30 , for example, the operating system 20 is Linux (Linux). ), Ubuntu, and Windows. Also, the software 30 may refer to an application program, an application, or the like.

이에 따라, 소프트웨어(30)는 운영체제(20)에 설치되도록 마련될 수 있으며, 소프트웨어(30)는 운영체제(20)를 통해 하드웨어(10)를 제어하거나, 운영체제(20)를 통해 하드웨어(10)의 자원을 이용하도록 마련될 수 있다.Accordingly, the software 30 may be provided to be installed in the operating system 20 , and the software 30 controls the hardware 10 through the operating system 20 or of the hardware 10 through the operating system 20 . Resources can be arranged for use.

이를 위해, 운영체제(20)는 하드웨어(10)의 저장소에 저장될 수 있으며, 소프트웨어(30)는 운영체제(20)가 설치된 저장소에 저장될 수 있다.To this end, the operating system 20 may be stored in the storage of the hardware 10 , and the software 30 may be stored in the storage in which the operating system 20 is installed.

이때, 운영체제(20)가 저장소에 저장되는 것은 운영체제(20)의 구동에 요구되는 파일, 운영체제(20)가 구동되는 과정에서 생성되는 파일 및 운영체제(20)가 설치된 하드웨어(10)를 나타내는 파일 등의 하드웨어 정보가 저장소에 저장되는 것으로 이해할 수 있다.At this time, the operating system 20 stored in the storage is a file required for driving the operating system 20 , a file generated in the process of operating the operating system 20 , and a file indicating the hardware 10 on which the operating system 20 is installed, etc. It can be understood that the hardware information of the computer is stored in the storage.

다시 말해서, 하드웨어 정보는 운영체제(20)의 구동에 요구되는 파일, 운영체제(20)가 구동되는 과정에서 생성되는 파일 및 운영체제(20)가 설치된 하드웨어(10)를 나타내는 파일 등을 포함할 수 있다.In other words, the hardware information may include a file required for driving the operating system 20 , a file generated while the operating system 20 is driven, and a file indicating the hardware 10 on which the operating system 20 is installed.

여기에서, 하드웨어 정보는 구성 정보와 프로필 정보를 포함할 수 있으며, 구성 정보는 운영체제(20)의 구동에 요구되는 파일 또는 운영체제(20)가 구동되는 과정에서 생성되는 파일 등을 포함할 수 있고, 프로필 정보는 운영체제(20)가 설치된 하드웨어(10)를 나타내는 파일 등을 포함할 수 있다.Here, the hardware information may include configuration information and profile information, and the configuration information may include a file required for driving the operating system 20 or a file generated in the process of driving the operating system 20, The profile information may include a file indicating the hardware 10 on which the operating system 20 is installed.

또한, 소프트웨어(30)가 저장소에 저장되는 것은 소프트웨어(30)의 구동에 요구되는 파일과, 소프트웨어(30)가 구동되는 과정에서 생성되는 파일 등의 소프트웨어 정보가 저장소에 저장되는 것으로 이해할 수 있다.In addition, the storage of the software 30 in the storage may be understood to mean that software information such as a file required for driving the software 30 and a file generated in the process of driving the software 30 are stored in the storage.

다시 말해서, 소프트웨어 정보는 소프트웨어(30)의 구동에 요구되는 파일 또는 소프트웨어(30)가 구동되는 과정에서 생성되는 파일 등을 포함할 수 있다.In other words, the software information may include a file required for driving the software 30 or a file generated while the software 30 is running.

예를 들어, 소프트웨어 정보는 로그(Log) 파일, 스풀링(Spooling) 파일, 바이너리(Binary) 파일, 라이브러리(Library) 파일 등을 포함할 수 있다.For example, the software information may include a log file, a spooling file, a binary file, a library file, and the like.

이때, 소프트웨어 정보는 일부 또는 전체의 하드웨어 정보가 적용되어 마련될 수 있다. 예를 들어, 소프트웨어 정보의 바이너리 파일은 하드웨어 정보에 따라 운영체제(20)에서 이용되는 하나 이상의 명령어를 포함할 수 있으며, 또한, 소프트웨어 정보의 로그 파일은 하드웨어 정보에 따른 프로필 정보가 나열되도록 마련될 수 있다.In this case, the software information may be prepared by applying some or all of the hardware information. For example, a binary file of software information may include one or more instructions used in the operating system 20 according to hardware information, and a log file of software information may be provided such that profile information according to hardware information is listed. have.

한편, 소프트웨어 패키징 장치(100)는 운영체제(20)에 설치된 복수개의 소프트웨어(30) 중 어느 하나의 소프트웨어(30)를 타겟 소프트웨어로 설정할 수 있으며, 이에 따라, 소프트웨어 패키징 장치(100)는 타겟 소프트웨어에 기초하여 소프트웨어 패키지(101)를 생성할 수 있다.Meanwhile, the software packaging apparatus 100 may set any one software 30 among a plurality of software 30 installed in the operating system 20 as the target software, and accordingly, the software packaging apparatus 100 may Based on the software package 101 can be generated.

여기에서, 소프트웨어 패키지(101)는 소프트웨어(30)를 설치 또는 배포 가능하도록 마련되는 것일 수 있으며, 이를 위해, 소프트웨어 패키지(101)는 소프트웨어 패키징 장치(100)에 의해 압축 파일 또는 응용 프로그램 파일 등의 형태로 생성될 수 있다.Here, the software package 101 may be provided so that the software 30 can be installed or distributed, for this purpose, the software package 101 is a compressed file or an application program file by the software packaging device 100 can be created in the form

예를 들어, 소프트웨어 패키지(101)는 안드로이드 응용 프로그램 패키지(APK: Android Application Package), RPM(Red Hat Package Manager) 및 exe(Executable) 파일 등의 형태로 생성될 수 있다.For example, the software package 101 may be generated in the form of an Android Application Package (APK), a Red Hat Package Manager (RPM), and an Executable (exe) file.

이와 관련하여, 소프트웨어 패키지(101)는 하이퍼바이저(Hypervisor) 기반의 가상 머신(Virtual Machine)에서 실행 가능하도록 생성될 수 있으며, 또는, 소프트웨어 패키지(101)는 컨테이너(Container) 기반의 가상 머신에서 실행 가능하도록 생성될 수도 있다.In this regard, the software package 101 may be created to be executable in a hypervisor-based virtual machine, or the software package 101 is executed in a container-based virtual machine It can also be created to be possible.

이를 통해, 소프트웨어 패키징 장치(100)는 소프트웨어(30)에 대한 종래의 대형 시스템을 이미지 계층(이미지 프로파일)과 하드웨어 계층(커널 및 하드웨어 프로파일)을 포함하는 소프트웨어 패키지(101)로 변환할 수 있는 효과가 발생할 수 있다.Through this, the software packaging apparatus 100 can convert a conventional large system for the software 30 into a software package 101 including an image layer (image profile) and a hardware layer (kernel and hardware profile). may occur.

이와 같이, 소프트웨어 패키지 장치(100)는 소프트웨어(30)에 따라 이진 값으로 나타나는 명령어들을 분석하여 소프트웨어 패키지를 생성할 수 있으며, 이하에서는, 본 발명의 일 실시예에 따른 소프트웨어 패키징 장치(100)에 대해 상세히 설명하도록 한다.In this way, the software package apparatus 100 may generate a software package by analyzing the instructions appearing as binary values according to the software 30 . Hereinafter, in the software packaging apparatus 100 according to an embodiment of the present invention, to be described in detail.

도2는 본 발명의 일 실시예에 따른 소프트웨어 패키징 장치의 제어블록도이다.2 is a control block diagram of a software packaging apparatus according to an embodiment of the present invention.

소프트웨어 패키징 장치(100)는 환경 설정부(110), 소프트웨어 정보 제어부(120), 하드웨어 정보 수집부(130), 하드웨어 정보 제어부(140) 및 패키지 생성부(150)를 포함할 수 있다.The software packaging apparatus 100 may include an environment setting unit 110 , a software information control unit 120 , a hardware information collection unit 130 , a hardware information control unit 140 , and a package generation unit 150 .

또한, 소프트웨어 패키징 장치(100)는 도 2에 도시된 구성요소보다 많은 구성요소에 의해 구현될 수 있고, 그보다 적은 구성요소에 의해 구현될 수 있다. 또는, 소프트웨어 패키징 장치(100)는 소프트웨어 패키징 장치(100)에 마련되는 적어도 두 개의 구성요소가 하나의 구성요소로 통합되어 하나의 구성요소가 복합적인 기능을 수행할 수도 있다. 이하, 상술한 구성요소들에 대해 구체적으로 설명하기로 한다.In addition, the software packaging apparatus 100 may be implemented by more components than the components shown in FIG. 2 , and may be implemented by fewer components. Alternatively, in the software packaging apparatus 100 , at least two components provided in the software packaging apparatus 100 may be integrated into one component, and one component may perform a complex function. Hereinafter, the above-described components will be described in detail.

환경 설정부(110)는 초기 환경을 설정할 수 있다. 여기에서, 초기 환경은 운영체제(20)에 따라 소프트웨어(30)가 설치되는 환경을 의미할 수 있으며, 이에 따라, 초기 환경은 운영체제(20)에 기초하여 생성되는 복수개의 기본 폴더를 의미할 수 있다.The environment setting unit 110 may set an initial environment. Here, the initial environment may mean an environment in which the software 30 is installed according to the operating system 20 , and accordingly, the initial environment may mean a plurality of basic folders created based on the operating system 20 . .

예를 들어, 기본 폴더는 운영체제(20)가 리눅스인 경우, 바이너리 폴더, 디바이스 폴더, 라이브러리 폴더, 변수 폴더 및 슈퍼 바이너리 폴더를 포함할 수 있으며, 이와 같은, 기본 폴더는 하드웨어(10)에 설치된 운영체제(20)에 따라 달라질 수 있다.For example, when the operating system 20 is Linux, the basic folder may include a binary folder, a device folder, a library folder, a variable folder, and a super binary folder, and such a basic folder is an operating system installed in the hardware 10 . (20) may vary.

이와 같이, 환경 설정부(110)는 초기 환경이 설정되도록 사전에 설정된 복수개의 기본 폴더를 생성할 수 있다.In this way, the environment setting unit 110 may create a plurality of preset default folders to set the initial environment.

일 실시예에서, 환경 설정부(110)는 스크래치(Scratch) 환경(또는 비어 있는 환경)을 기반으로 하는 슬림 시스템을 구축하도록 마련될 수 있으며, 이와 같은, 슬림 시스템은 비지박스(Busybox) 기반의 구조로 생성될 수 있다.In one embodiment, the environment setting unit 110 may be provided to build a slim system based on a scratch environment (or an empty environment), as such, the slim system is a busybox-based structure can be created.

소프트웨어 정보 제어부(120)는 사전에 설정된 타겟 소프트웨어에 의해 이용되는 소프트웨어 정보를 추출할 수 있고, 소프트웨어 정보 제어부(120)는 초기 환경에 추출된 소프트웨어 정보를 이동시킬 수 있다.The software information control unit 120 may extract software information used by preset target software, and the software information control unit 120 may move the extracted software information to an initial environment.

이를 위해, 소프트웨어 정보 제어부(120)는 타겟 소프트웨어의 메타 정보를 추출할 수 있고, 소프트웨어 정보 제어부(120)는 타겟 소프트웨어로부터, 메타 정보에 기록된 소프트웨어 정보와 동일한 소프트웨어 정보를 추출할 수 있다.To this end, the software information controller 120 may extract meta information of the target software, and the software information controller 120 may extract the same software information as the software information recorded in the meta information from the target software.

여기에서, 메타 정보는 소프트웨어(30)에 의해 이용되거나, 생성된 소프트웨어 정보에 대한 구조, 형태, 위치 등의 정보를 포함할 수 있으며, 일 실시예에서, 메타 정보는 리눅스 운영체제에서 이용되는 아이노드(i-node)를 의미할 수 있다.Here, the meta information may include information such as structure, form, and location of software information used or generated by the software 30 , and in one embodiment, the meta information is an inode used in a Linux operating system. It can mean (i-node).

이와 같이, 소프트웨어 정보 제어부(120)는 메타 정보에 기초하여, 타겟 소프트웨어로부터 소프트웨어 정보를 추출할 수 있다.In this way, the software information control unit 120 may extract software information from the target software based on the meta information.

일 실시예에서, 소프트웨어 정보 제어부(120)는 운영체제(20)가 리눅스인 경우, 리눅스 패키지 또는 라이브러리 관리 도구 등을 이용하여 정적으로 소프트웨어 정보를 수집할 수 있다.In an embodiment, when the operating system 20 is Linux, the software information controller 120 may statically collect software information using a Linux package or a library management tool.

이에 따라, 소프트웨어 정보 제어부(120)는 타겟 소프트웨어로부터 추출된 소프트웨어 정보의 위치에 매칭되도록 초기 환경에 설정된 기본 폴더에 소프트웨어 정보를 이동시킬 수 있다.Accordingly, the software information controller 120 may move the software information to the default folder set in the initial environment to match the location of the software information extracted from the target software.

예를 들어, 소프트웨어 정보 제어부(120)는 타겟 소프트웨어의 바이너리 폴더로부터 추출된 소프트웨어 정보를 초기 환경에 설정된 바이너리 폴더로 이동시킬 수 있고, 소프트웨어 정보 제어부(120)는 타겟 소프트웨어의 디바이스 폴더로부터 추출된 소프트웨어 정보를 초기 환경에 설정된 디바이스 폴더로 이동시킬 수 있다.For example, the software information control unit 120 may move the software information extracted from the binary folder of the target software to the binary folder set in the initial environment, and the software information control unit 120 may move the software information extracted from the binary folder of the target software to the device folder of the target software. Information can be moved to the device folder set in the initial environment.

하드웨어 정보 수집부(130)는 소프트웨어(30)가 설치된 운영체제(20)로부터 하드웨어 정보를 수집할 수 있다.The hardware information collection unit 130 may collect hardware information from the operating system 20 in which the software 30 is installed.

이를 위해, 하드웨어 정보 수집부(130)는 타겟 소프트웨어에 의해 수행되도록 마련되는 호출 명령을 추출할 수 있고, 하드웨어 정보 수집부(130)는 호출 명령에 의해 호출되는, 운영체제(20)의 구성 정보와, 타겟 소프트웨어의 구동에 요구되는 운영체제(20)의 프로필 정보를 수집할 수 있다.To this end, the hardware information collection unit 130 may extract a call command prepared to be executed by the target software, and the hardware information collection unit 130 may extract the configuration information of the operating system 20 and the configuration information of the operating system 20 called by the call command. , it is possible to collect profile information of the operating system 20 required for driving the target software.

여기에서, 호출 명령은 타겟 소프트웨어가 하드웨어(10)의 제어를 수행하도록 마련되는 명령어를 의미할 수 있다.Here, the call command may refer to a command provided so that the target software controls the hardware 10 .

이에 따라, 하드웨어 정보 수집부(130)는 타겟 소프트웨어의 호출 명령에 따른 하드웨어 정보를 수집할 수 있으며, 이때, 하드웨어 정보 수집부(130)는 타겟 소프트웨어에 대해 정적 분석을 수행하여 하드웨어 정보를 수집할 수 있고, 하드웨어 정보 수집부(130)는 타겟 소프트웨어에 대해 동적 분석을 수행하여 하드웨어 정보를 수집할 수 있다.Accordingly, the hardware information collection unit 130 may collect hardware information according to the call command of the target software, and in this case, the hardware information collection unit 130 performs static analysis on the target software to collect hardware information. Also, the hardware information collection unit 130 may collect hardware information by performing dynamic analysis on the target software.

하드웨어 정보 제어부(140)는 초기 환경에 하드웨어 정보를 적용시킬 수 있으며, 이를 위해, 하드웨어 정보 제어부(140)는 운영체제(20)로부터 수집된 하드웨어 정보에 기초하여 소프트웨어 정보가 적용된 초기 환경을 업데이트할 수 있다.The hardware information control unit 140 may apply hardware information to the initial environment, and for this purpose, the hardware information control unit 140 may update the initial environment to which the software information is applied based on the hardware information collected from the operating system 20 . have.

다시 말해서, 하드웨어 정보 제어부(140)는 초기 환경에 적용된 소프트웨어 정보 중 하드웨어 정보가 설정된 소프트웨어 정보를 추출하여, 추출된 소프트웨어 정보에 설정된 하드웨어 정보를 수집된 하드웨어 정보로 업데이트할 수 있다.In other words, the hardware information control unit 140 may extract software information in which hardware information is set from among the software information applied to the initial environment, and update the hardware information set in the extracted software information with the collected hardware information.

또한, 하드웨어 정보 제어부(140)는 운영체제(20)로부터 수집된 하드웨어 정보를 소프트웨어 정보가 적용된 초기 환경에 이동시킬 수도 있다.Also, the hardware information controller 140 may move the hardware information collected from the operating system 20 to the initial environment to which the software information is applied.

패키지 생성부(150)는 소프트웨어 정보와 하드웨어 정보가 적용된 초기 환경으로부터 소프트웨어 패키지(101)를 생성할 수 있다.The package generator 150 may generate the software package 101 from the initial environment to which the software information and the hardware information are applied.

이에 따라, 소프트웨어 패키지(101)는 운영체제(20)에 설치된 복수개의 소프트웨어(30) 중 사전에 설정된 타겟 소프트웨어를 포함하도록 생성될 수 있다.Accordingly, the software package 101 may be generated to include preset target software among a plurality of software 30 installed in the operating system 20 .

도3은 도2의 패키지 생성부에서 소프트웨어 패키지를 생성하는 과정을 나타낸 블록도이다.3 is a block diagram illustrating a process of generating a software package in the package generating unit of FIG. 2 .

도3을 참조하면, 환경 설정부(110)는 초기 환경을 설정할 수 있다. 이를 위해, 환경 설정부(110)는 초기 환경이 설정되도록 사전에 설정된 복수개의 기본 폴더를 생성할 수 있다.Referring to FIG. 3 , the environment setting unit 110 may set an initial environment. To this end, the environment setting unit 110 may create a plurality of preset default folders to set the initial environment.

소프트웨어 정보 제어부(120)는 사전에 설정된 타겟 소프트웨어에 의해 이용되는 소프트웨어 정보를 추출할 수 있고, 소프트웨어 정보 제어부(120)는 초기 환경에 추출된 소프트웨어 정보를 이동시킬 수 있다.The software information control unit 120 may extract software information used by preset target software, and the software information control unit 120 may move the extracted software information to an initial environment.

이를 위해, 소프트웨어 정보 제어부(120)는 타겟 소프트웨어의 메타 정보를 추출할 수 있고, 소프트웨어 정보 제어부(120)는 타겟 소프트웨어로부터, 메타 정보에 기록된 소프트웨어 정보와 동일한 소프트웨어 정보를 추출할 수 있다.To this end, the software information controller 120 may extract meta information of the target software, and the software information controller 120 may extract the same software information as the software information recorded in the meta information from the target software.

이에 따라, 소프트웨어 정보 제어부(120)는 타겟 소프트웨어로부터 추출된 소프트웨어 정보의 위치에 매칭되도록 초기 환경에 설정된 기본 폴더에 소프트웨어 정보를 이동시킬 수 있다.Accordingly, the software information controller 120 may move the software information to the default folder set in the initial environment to match the location of the software information extracted from the target software.

하드웨어 정보 수집부(130)는 소프트웨어(30)가 설치된 운영체제(20)로부터 하드웨어 정보를 수집할 수 있다.The hardware information collection unit 130 may collect hardware information from the operating system 20 in which the software 30 is installed.

이를 위해, 하드웨어 정보 수집부(130)는 타겟 소프트웨어에 의해 수행되도록 마련되는 호출 명령을 추출할 수 있고, 하드웨어 정보 수집부(130)는 호출 명령에 의해 호출되는, 운영체제(20)의 구성 정보와, 타겟 소프트웨어의 구동에 요구되는 운영체제(20)의 프로필 정보를 수집할 수 있다.To this end, the hardware information collection unit 130 may extract a call command prepared to be executed by the target software, and the hardware information collection unit 130 may extract the configuration information of the operating system 20 and the configuration information of the operating system 20 called by the call command. , it is possible to collect profile information of the operating system 20 required for driving the target software.

하드웨어 정보 제어부(140)는 초기 환경에 하드웨어 정보를 적용시킬 수 있으며, 이를 위해, 하드웨어 정보 제어부(140)는 운영체제(20)로부터 수집된 하드웨어 정보에 기초하여 소프트웨어 정보가 적용된 초기 환경을 업데이트할 수 있다.The hardware information control unit 140 may apply hardware information to the initial environment, and for this purpose, the hardware information control unit 140 may update the initial environment to which the software information is applied based on the hardware information collected from the operating system 20 . have.

패키지 생성부(150)는 소프트웨어 정보와 하드웨어 정보가 적용된 초기 환경으로부터 소프트웨어 패키지(101)를 생성할 수 있다.The package generator 150 may generate the software package 101 from the initial environment to which the software information and the hardware information are applied.

한편, 도4는 본 발명의 일 실시예에 따른 소프트웨어 패키징 장치에서 소프트웨어 패키지를 생성하는 과정의 일 실시예를 나타낸 개략도이다.Meanwhile, FIG. 4 is a schematic diagram illustrating an embodiment of a process of generating a software package in a software packaging apparatus according to an embodiment of the present invention.

이와 같이 일 실시예에서, 소프트웨어 패키징 장치(100)는 타겟 소프트웨어가 설치된 Fat(File Allocation Table) image로부터 소프트웨어 정보와 하드웨어 정보를 추출할 수 있고, 소프트웨어 패키징 장치(100)는 초기 환경에 추출된 소프트웨어 정보와 하드웨어 정보를 적용하여 소프트웨어 패키지(101)를 생성할 수 있다.As described above, in one embodiment, the software packaging apparatus 100 may extract software information and hardware information from a Fat (File Allocation Table) image in which the target software is installed, and the software packaging apparatus 100 may extract the software information extracted in the initial environment. The software package 101 may be created by applying the information and the hardware information.

도5는 본 발명의 일 실시예에 따른 소프트웨어 패키징 방법의 순서도이다.5 is a flowchart of a software packaging method according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 소프트웨어 패키징 방법은 도 1에 도시된 소프트웨어 패키징 장치(100)와 실질적으로 동일한 구성 상에서 진행되므로, 도 1의 소프트웨어 패키징 장치(100)와 동일한 구성요소에 대해 동일한 도면 부호를 부여하고, 반복되는 설명은 생략하기로 한다.Since the software packaging method according to an embodiment of the present invention proceeds on substantially the same configuration as that of the software packaging apparatus 100 shown in FIG. 1 , the same reference numerals refer to the same components as the software packaging apparatus 100 of FIG. 1 . , and repeated descriptions will be omitted.

소프트웨어 패키징 방법은 초기 환경을 설정하는 단계(600), 소프트웨어 정보를 추출하고, 초기 환경에 소프트웨어 정보를 이동시키는 단계(610), 운영체제로부터 하드웨어 정보를 수집하는 단계(620), 초기 환경에 하드웨어 정보를 적용시키는 단계(630) 및 소프트웨어 패키지를 생성하는 단계(640)를 포함할 수 있다.The software packaging method includes the steps of setting the initial environment (600), extracting software information, and moving the software information to the initial environment (610), collecting hardware information from the operating system (620), hardware information in the initial environment applying 630 and generating a software package 640 .

초기 환경을 설정하는 단계(600)는 환경 설정부(110)가 초기 환경을 설정하는 단계일 수 있다.The step 600 of setting the initial environment may be a step in which the environment setting unit 110 sets the initial environment.

소프트웨어 정보를 추출하고, 초기 환경에 소프트웨어 정보를 이동시키는 단계(610)는 소프트웨어 정보 제어부(120)가 사전에 설정된 타겟 소프트웨어에 의해 이용되는 소프트웨어 정보를 추출하고, 초기 환경에 소프트웨어 정보를 이동시키는 단계일 수 있다.The step 610 of extracting software information and moving the software information to the initial environment is a step in which the software information control unit 120 extracts the software information used by the preset target software and moves the software information to the initial environment. can be

운영체제로부터 하드웨어 정보를 수집하는 단계(620)는 하드웨어 정보 수집부(130)가 소프트웨어(30)가 설치된 운영체제(20)로부터 하드웨어 정보를 수집하는 단계일 수 있다.The step 620 of collecting hardware information from the operating system may be a step in which the hardware information collecting unit 130 collects hardware information from the operating system 20 in which the software 30 is installed.

초기 환경에 하드웨어 정보를 적용시키는 단계(630)는 하드웨어 정보 제어부(140)가 상기 초기 환경에 하드웨어 정보를 적용시키는 단계일 수 있다.The step 630 of applying the hardware information to the initial environment may be a step in which the hardware information controller 140 applies the hardware information to the initial environment.

소프트웨어 패키지를 생성하는 단계(640)는 패키지 생성부(150)가 소프트웨어 정보와 하드웨어 정보가 적용된 초기 환경으로부터 소프트웨어 패키지(101)를 생성하는 단계일 수 있다.The step 640 of generating the software package may be a step in which the package generating unit 150 generates the software package 101 from an initial environment to which the software information and the hardware information are applied.

이와 같은, 소프트웨어 패키징 방법은 어플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.Such a software packaging method may be implemented as an application or implemented in the form of program instructions that may be executed through various computer components and recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination.

상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the computer-readable recording medium are specially designed and configured for the present invention, and may be known and used by those skilled in the computer software field.

컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.Examples of the computer-readable recording medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as a CD-ROM and DVD, and a magneto-optical medium such as a floppy disk. media), and hardware devices specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.

프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform processing according to the present invention, and vice versa.

이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to the embodiments, those skilled in the art will understand that various modifications and changes can be made to the present invention without departing from the spirit and scope of the present invention as set forth in the following claims. will be able

1: 소프트웨어 패키징 시스템
10: 하드웨어
20: 운영체제
30: 소프트웨어
100: 소프트웨어 패키징 장치
101: 소프트웨어 패키지
1: Software packaging system
10: Hardware
20: operating system
30: software
100: software packaging device
101: software package

Claims (15)

초기 환경을 설정하는 환경 설정부;
사전에 설정된 타겟 소프트웨어에 의해 이용되는 소프트웨어 정보를 추출하고, 상기 초기 환경에 상기 소프트웨어 정보를 이동시키는 소프트웨어 정보 제어부;
상기 소프트웨어가 설치된 운영체제로부터 하드웨어 정보를 수집하는 하드웨어 정보 수집부;
상기 초기 환경에 상기 하드웨어 정보를 적용시키는 하드웨어 정보 제어부; 및
상기 소프트웨어 정보와 상기 하드웨어 정보가 적용된 초기 환경으로부터 소프트웨어 패키지를 생성하는 패키지 생성부;를 포함하고,
상기 하드웨어 정보 수집부는,
상기 타겟 소프트웨어에 의해 수행되도록 마련되는 호출 명령을 추출하고, 상기 호출 명령에 의해 호출되는, 상기 운영체제의 구성 정보와, 상기 타겟 소프트웨어의 구동에 요구되는 운영체제의 프로필 정보를 수집하며,
상기 하드웨어 정보 제어부는,
초기 환경에 적용된 소프트웨어 정보 중 하드웨어 정보가 설정된 소프트웨어 정보를 추출하고, 추출된 소프트웨어 정보에 설정된 하드웨어 정보를 상기 운영체제로부터 수집된 하드웨어 정보로 업데이트하는, 소프트웨어 패키징 장치.
an environment setting unit for setting an initial environment;
a software information control unit that extracts software information used by a preset target software and moves the software information to the initial environment;
a hardware information collection unit for collecting hardware information from an operating system in which the software is installed;
a hardware information control unit for applying the hardware information to the initial environment; and
A package generator for generating a software package from the initial environment to which the software information and the hardware information are applied;
The hardware information collection unit,
Extracting a call command provided to be executed by the target software, collecting configuration information of the operating system, called by the call command, and profile information of the operating system required for driving the target software,
The hardware information control unit,
A software packaging apparatus for extracting software information in which hardware information is set from among software information applied to an initial environment, and updating hardware information set in the extracted software information with hardware information collected from the operating system.
제1항에 있어서, 상기 환경 설정부는,
상기 초기 환경이 설정되도록 사전에 설정된 복수개의 기본 폴더를 생성하는, 소프트웨어 패키징 장치.
According to claim 1, wherein the environment setting unit,
A software packaging device that creates a plurality of preset default folders in which the initial environment is set.
제2항에 있어서, 상기 기본 폴더는,
바이너리 폴더, 디바이스 폴더, 라이브러리 폴더, 변수 폴더 및 슈퍼 바이너리 폴더를 포함하는, 소프트웨어 패키징 장치.
According to claim 2, wherein the default folder,
A software packaging device comprising a binary folder, a device folder, a library folder, a variable folder and a super binary folder.
제1항에 있어서, 상기 소프트웨어 정보 제어부는,
상기 타겟 소프트웨어의 메타 정보를 추출하고, 상기 타겟 소프트웨어로부터, 상기 메타 정보에 기록된 소프트웨어 정보와 동일한 소프트웨어 정보를 추출하는, 소프트웨어 패키징 장치.
According to claim 1, wherein the software information control unit,
Extracting meta information of the target software, and extracting the same software information as software information recorded in the meta information from the target software, a software packaging apparatus.
제4항에 있어서, 상기 소프트웨어 정보 제어부는,
상기 타겟 소프트웨어로부터 추출된 소프트웨어 정보의 위치에 매칭되도록 상기 초기 환경에 설정된 기본 폴더에 상기 소프트웨어 정보를 이동시키는, 소프트웨어 패키징 장치.
According to claim 4, wherein the software information control unit,
A software packaging apparatus for moving the software information to a default folder set in the initial environment so as to match a location of the software information extracted from the target software.
삭제delete 삭제delete 이진 분석을 수행하는 소프트웨어 패키징 장치에서의 소프트웨어 패키징 방법에 있어서,
환경 설정부가 초기 환경을 설정하는 단계;
소프트웨어 정보 제어부가 사전에 설정된 타겟 소프트웨어에 의해 이용되는 소프트웨어 정보를 추출하고, 상기 초기 환경에 상기 소프트웨어 정보를 이동시키는 단계;
하드웨어 정보 수집부가 상기 소프트웨어가 설치된 운영체제로부터 하드웨어 정보를 수집하는 단계;
하드웨어 정보 제어부가 상기 초기 환경에 상기 하드웨어 정보를 적용시키는 단계; 및
패키지 생성부가 상기 소프트웨어 정보와 상기 하드웨어 정보가 적용된 초기 환경으로부터 소프트웨어 패키지를 생성하는 단계;를 포함하고,
상기 운영체제로부터 하드웨어 정보를 수집하는 단계는,
상기 타겟 소프트웨어에 의해 수행되도록 마련되는 호출 명령을 추출하고, 상기 호출 명령에 의해 호출되는, 상기 운영체제의 구성 정보와, 상기 타겟 소프트웨어의 구동에 요구되는 운영체제의 프로필 정보를 수집하며,
상기 초기 환경에 하드웨어 정보를 적용시키는 단계는,
초기 환경에 적용된 소프트웨어 정보 중 하드웨어 정보가 설정된 소프트웨어 정보를 추출하고, 추출된 소프트웨어 정보에 설정된 하드웨어 정보를 상기 운영체제로부터 수집된 하드웨어 정보로 업데이트하는, 소프트웨어 패키징 방법.
A software packaging method in a software packaging device for performing binary analysis, the method comprising:
setting an initial environment by an environment setting unit;
extracting, by a software information control unit, software information used by a preset target software, and moving the software information to the initial environment;
collecting hardware information from an operating system in which the software is installed by a hardware information collection unit;
applying, by a hardware information control unit, the hardware information to the initial environment; and
generating a software package from the initial environment to which the software information and the hardware information are applied, by the package generator;
Collecting hardware information from the operating system comprises:
Extracting a call command provided to be executed by the target software, collecting configuration information of the operating system, called by the call command, and profile information of the operating system required for driving the target software,
The step of applying hardware information to the initial environment includes:
A software packaging method for extracting software information in which hardware information is set from among software information applied to an initial environment, and updating hardware information set in the extracted software information with hardware information collected from the operating system.
제8항에 있어서, 상기 초기 환경을 설정하는 단계는,
상기 초기 환경이 설정되도록 사전에 설정된 복수개의 기본 폴더를 생성하는, 소프트웨어 패키징 방법.
The method of claim 8, wherein the setting of the initial environment comprises:
A software packaging method of creating a plurality of preset default folders in which the initial environment is set.
제9항에 있어서, 상기 기본 폴더는,
바이너리 폴더, 디바이스 폴더, 라이브러리 폴더, 변수 폴더 및 슈퍼 바이너리 폴더를 포함하는, 소프트웨어 패키징 방법.
10. The method of claim 9, wherein the default folder,
A software packaging method, including a binary folder, a device folder, a library folder, a variable folder and a super binary folder.
제8항에 있어서, 상기 소프트웨어 정보를 추출하고, 초기 환경에 소프트웨어 정보를 이동시키는 단계는,
상기 타겟 소프트웨어의 메타 정보를 추출하고, 상기 타겟 소프트웨어로부터, 상기 메타 정보에 기록된 소프트웨어 정보와 동일한 소프트웨어 정보를 추출하는, 소프트웨어 패키징 방법.
9. The method of claim 8, wherein extracting the software information and moving the software information to an initial environment comprises:
Extracting meta-information of the target software and extracting, from the target software, software information identical to the software information recorded in the meta-information.
제11항에 있어서, 상기 소프트웨어 정보를 추출하고, 초기 환경에 소프트웨어 정보를 이동시키는 단계는,
상기 타겟 소프트웨어로부터 추출된 소프트웨어 정보의 위치에 매칭되도록 상기 초기 환경에 설정된 기본 폴더에 상기 소프트웨어 정보를 이동시키는, 소프트웨어 패키징 방법.
12. The method of claim 11, wherein extracting the software information and moving the software information to an initial environment comprises:
The software packaging method of moving the software information to a default folder set in the initial environment so as to match the location of the software information extracted from the target software.
삭제delete 삭제delete 컴퓨터에 제8항 내지 제12항 중 어느 하나의 항에 따른 소프트웨어 패키징 방법을 실행시키기 위한, 컴퓨터 프로그램이 저장된 컴퓨터로 판독 가능한 기록매체.

A computer-readable recording medium storing a computer program for executing the software packaging method according to any one of claims 8 to 12 on a computer.

KR1020210010877A 2020-11-19 2021-01-26 Software packaging device and method for performing binary analysis, and recorded media recorded of the program for performing the same KR102459269B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/472,773 US20220156052A1 (en) 2020-11-19 2021-09-13 Software packaging device and method for performing binary analysis, and recording medium on which program for performing the same is recorded

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200155892 2020-11-19
KR20200155892 2020-11-19

Publications (2)

Publication Number Publication Date
KR20220068874A KR20220068874A (en) 2022-05-26
KR102459269B1 true KR102459269B1 (en) 2022-10-26

Family

ID=81809075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210010877A KR102459269B1 (en) 2020-11-19 2021-01-26 Software packaging device and method for performing binary analysis, and recorded media recorded of the program for performing the same

Country Status (1)

Country Link
KR (1) KR102459269B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200293354A1 (en) * 2018-02-12 2020-09-17 Genetalks Bio-Tech (Changsha) Co., Ltd. Container dockerfile and container mirror image quick generation methods and systems

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101092373B1 (en) * 2010-01-07 2011-12-09 한국과학기술연구원 System and method for generating software package and installing the same
KR102333425B1 (en) * 2014-02-21 2021-12-02 삼성전자주식회사 Method and apparatus to sandbox run-time android applications with lightweight container
KR101937933B1 (en) * 2016-11-08 2019-01-14 한국전자통신연구원 Apparatus for quantifying security of open source software package, apparatus and method for optimization of open source software package

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200293354A1 (en) * 2018-02-12 2020-09-17 Genetalks Bio-Tech (Changsha) Co., Ltd. Container dockerfile and container mirror image quick generation methods and systems

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Ngoc-Tu Chau 외 1명. Dynamic analysis with Android container: Challenges and opportunities. 2018년

Also Published As

Publication number Publication date
KR20220068874A (en) 2022-05-26

Similar Documents

Publication Publication Date Title
US8196138B2 (en) Method and system for migrating virtual machines between hypervisors
US10579355B2 (en) Docker container operating method and apparatus
KR102010508B1 (en) System and method for updating source code files
JP5139987B2 (en) Extensible metadata
KR101740604B1 (en) Generic unpacking of applications for malware detection
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
CN107766130B (en) Method and device for migrating virtual machine to container
US11275615B2 (en) Data processing offload using in-storage code execution
KR102011726B1 (en) Method and apparatus for extracting specific dynamic generated file
EP3198452B1 (en) On-demand loading of dynamic scripting language code for reduced memory usage
US8583709B2 (en) Detailed inventory discovery on dormant systems
WO2021092502A1 (en) Just-in-time containers
US20090328077A1 (en) Software Appliances not Requiring Virtual Machines
CN111831396A (en) Docker software and hardware integration-based delivery method and device
US10061570B2 (en) Per tenant initialization check removal
US20140089557A1 (en) Image storage optimization in virtual environments
US11418555B1 (en) Systems and methods for streaming an application via object storage
KR102459269B1 (en) Software packaging device and method for performing binary analysis, and recorded media recorded of the program for performing the same
US20110219365A1 (en) High and low value application state
US10733095B2 (en) Performing garbage collection on an object array using array chunk references
US20220156052A1 (en) Software packaging device and method for performing binary analysis, and recording medium on which program for performing the same is recorded
Lubin VM2Docker: automating the conversion from virtual machine to docker container
Cloutier VMware virtualiztion and software development

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right