KR20140140288A - Computer-executable hybrid application performing method, coumputer-excutable device and storage media performing the same - Google Patents

Computer-executable hybrid application performing method, coumputer-excutable device and storage media performing the same Download PDF

Info

Publication number
KR20140140288A
KR20140140288A KR20130060923A KR20130060923A KR20140140288A KR 20140140288 A KR20140140288 A KR 20140140288A KR 20130060923 A KR20130060923 A KR 20130060923A KR 20130060923 A KR20130060923 A KR 20130060923A KR 20140140288 A KR20140140288 A KR 20140140288A
Authority
KR
South Korea
Prior art keywords
code
virtual
function
actual
document
Prior art date
Application number
KR20130060923A
Other languages
Korean (ko)
Other versions
KR101499535B1 (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 KR1020130060923A priority Critical patent/KR101499535B1/en
Publication of KR20140140288A publication Critical patent/KR20140140288A/en
Application granted granted Critical
Publication of KR101499535B1 publication Critical patent/KR101499535B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Landscapes

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

Abstract

A method for performing a computer-executable application is performed by a computer-executable device. The method for performing a computer-executable application comprises the steps of: (a) waiting for processing a virtual code included in a document in a virtual code waiting area and searching an actual code from an encryption code database, when the virtual code is read out while the document is rendered by a computing device; and (b) decrypting the searched actual code and inserting the decrypted actual code in the virtual code waiting area. This enables access to an execution code without the leakage of the execution code and may prevent reverse engineering induced by a hacker or the like.

Description

컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체{COMPUTER-EXECUTABLE HYBRID APPLICATION PERFORMING METHOD, COUMPUTER-EXCUTABLE DEVICE AND STORAGE MEDIA PERFORMING THE SAME}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a computer-executable hybrid application execution method, a computer-executable apparatus for performing the hybrid execution method, and a recording medium storing the hybrid execution method.

본 발명은 하이브리드 어플리케이션 수행 기술에 관한 것으로, 보다 상세하게는, 실제 코드의 유출없이 실제 코드에 접근 가능한 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법, 이를 수행하는 컴퓨터 실행 장치 및 이를 저장한 기록 매체에 관한 것이다.
The present invention relates to a hybrid application execution technology, and more particularly, to a computer-executable hybrid application execution method capable of accessing an actual code without leakage of an actual code, a computer execution device performing the hybrid application, and a recording medium storing the same.

하이브리드 어플리케이션은 웹 기술을 일반 어플리케이션에 접목하여 적어도 일부의 어플리케이션 코드(예를 들어, 사용자 인터페이스)를 구현할 수 있다. 이러한 구현은 어플리케이션 개발자가 HTML(Hyper Text Markup Language), 자바스크립트(Java Script), CSS(Cascading Style Sheets) 등과 같은 웹 표준 리소스를 활용하도록 할 수 있고, 결과적으로, 이렇게 구현된 어플리케이션 코드는 플랫폼 독립적으로 사용될 수 있다.A hybrid application may implement at least some application code (e.g., a user interface) by incorporating web technology into a generic application. This implementation allows an application developer to utilize Web standard resources such as Hyper Text Markup Language (HTML), JavaScript, and Cascading Style Sheets (CSS), and as a result, .

하이브리드 어플리케이션은 특히, 비즈니스 로직의 경우 자바스크립트를 통해 개발될 수 있다. 자바스크립트는 어플리케이션 개발 과정에서 협업하는 협력 개발자 등에 노출될 수 있다. 이러한 노출로 인하여, 하이브리드 어플리케이션은 해커와 같은 사용자에 의하여 역컴파일(decompile)을 통한 리버스 엔지니어링될 수 있는 문제점이 있다.Hybrid applications, especially business logic, can be developed through JavaScript. JavaScript can be exposed to collaborative developers who collaborate in application development. Due to such exposure, the hybrid application can be reverse engineered through decompile by a user such as a hacker.

한국공개특허 제10-2011-0093468호(2011.08.18.)은 부분적으로 암호화된 어플리케이션 컨텐츠를 이용하는 사용자 단말 장치에 관한 기술로, 실행 가능한 컨텐츠인 어플리케이션을 사용자 단말로 안전하게 다운로드하고, 설치, 사용 및 업데이트 할 수 있는 효과가 있다.Korean Patent Laid-Open Publication No. 10-2011-0093468 (Aug. 18, 2011) discloses a technique related to a user terminal device that uses partially encrypted application content, and can safely download an application that is executable content to a user terminal, There is an effect that can be updated.

한국공개특허 제10-2012-0029683호(2012.03.27.)은 어플리케이션에 포함된 리소스에 대해 ADRM(Application Digital Rights Management)을 적용하여, 암호화된 리소스를 애플리케이션 패키징 파일에 포함시켜 배포하는 애플리케이션에 대한 리소스 보호 시스템에 관한 기술이다.Korean Patent Laid-Open No. 10-2012-0029683 (Mar. 27, 2012) discloses a method for applying an application digital rights management (ADRM) to a resource included in an application, This is a technology related to a resource protection system.

이러한 선행기술들은 플랫폼 종속적인 리소스 암호화를 개시하므로 어플리케이션 개발자는 이종의 플랫폼 마다 별개의 어플리케이션 코드를 작성해야 한다. 또한, 이러한 선행기술들은 전체 리소스의 암호화로 인하여 하이브리드 어플리케이션 개발 과정에서 디자이너 등과의 협업을 어렵게 하는 문제점을 가진다.Because these prior arts initiate platform-dependent resource encryption, application developers must write separate application code for each heterogeneous platform. Also, these prior arts have a problem that it is difficult to collaborate with designers and the like in the process of developing a hybrid application due to the encryption of the entire resources.

또한, 이러한 선행기술들은 서버와 클라이언트 간의 통신 과정에서 적용할 수 있으므로, 하이브리드 어플리케션과 같이 사용자에게 항상 노출되고 모바일 기기에 저장되는 환경에서 적용하기 어려운 어려운 문제점을 가진다.
In addition, since such prior arts can be applied in a communication process between a server and a client, they are difficult to apply in an environment where they are always exposed to a user and stored in a mobile device like a hybrid application.

한국공개특허 제10-2011-0093468호(2011.08.18.)Korean Patent Publication No. 10-2011-0093468 (Aug. 18, 2011) 한국공개특허 제10-2012-0029683호(2012.03.27.)Korean Patent Laid-Open No. 10-2012-0029683 (March 27, 2012)

본 발명은 실행 코드의 유출없이 실행 코드에 접근 가능한 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법을 제공하고자 한다.SUMMARY OF THE INVENTION The present invention seeks to provide a computer executable hybrid application execution method that allows access to executable code without the leakage of executable code.

본 발명은 실제 코드를 감추면서 협력 개발자(예를 들어, 디자이너)와 협업 가능한 가상 코드를 제공할 수 있는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법을 제공하고자 한다.The present invention seeks to provide a computer executable hybrid application execution method capable of providing virtual code that can be collaborated with a cooperative developer (e.g., a designer) while obscuring the actual code.

본 발명은 실제 코드를 휘발성 메모리에 일시적으로 유지하여 해커 등에 의한 리버스 엔지니어링을 어렵게 할 수 있는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법을 제공하고자 한다.
The present invention provides a computer-executable hybrid application execution method capable of temporarily holding an actual code in a volatile memory, thereby making it difficult to reverse engineer by a hacker or the like.

실시예들 중에서, 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법은 (a) 가상 코드를 포함하는 문서를 컴퓨팅 디바이스에 렌더링하는 동안에 상기 가상 코드가 독출되면 가상 코드 대기 영역에서 가상 코드에 대한 처리를 대기하고 암호화 코드 데이터베이스에서 실제 코드를 검색하는 단계; 및 (b) 상기 검색된 실제 코드를 복호화하여 상기 가상 코드 대기 영역에 삽입시키는 단계를 포함한다.Among the embodiments, a computer-executable hybrid application execution method includes the steps of: (a) when the virtual code is read while rendering a document including virtual code to a computing device, waiting for processing of the virtual code in the virtual code waiting area, Retrieving the actual code from the database; And (b) decoding the retrieved actual code and inserting it into the virtual code waiting area.

일 실시예에서, 상기 가상 코드는 스크립트(Java Script)에 있는 가상 함수, HTML 마크 업 정보, 가상 리소스(CSS) 중 적어도 하나를 포함할 수 있다.In one embodiment, the pseudo code may include at least one of a virtual function in a script, HTML markup information, and a virtual resource (CSS).

일 실시예에서, 상기 (a) 단계는 상기 문서의 스크립트에 있는 특정 함수가 호출되면 상기 특정 함수가 상기 가상 함수인지 여부를 체크하는 단계를 더 포함할 수 있다.In one embodiment, the step (a) may further include, when a specific function in a script of the document is called, checking whether the specific function is the virtual function.

일 실시예에서, 상기 (a) 단계는 상기 특정 함수가 실행 코드를 포함하지 않는 함수에 해당하는 경우에는 상기 특정 함수를 상기 가상 함수로 결정할 수 있다.In one embodiment, in the step (a), when the specific function corresponds to a function not including an executable code, the specific function may be determined as the virtual function.

일 실시예에서, 상기 (a) 단계는 상기 가상 함수가 호출되면 상기 문서의 문서 객체 모델(DOM, Document Object Model)에 진입하는 단계를 더 포함할 수 있다.In one embodiment, the step (a) may further include entering the document object model (DOM) of the document when the virtual function is called.

일 실시예에서, 상기 (a) 단계는 상기 진입 후에 상기 실제 함수가 수행되기 전까지 상기 가상 코드 대기 영역을 상기 문서 객체 모델 내에 생성하는 단계를 더 포함할 수 있다.In one embodiment, step (a) may further comprise generating the virtual code wait area in the document object model until the actual function is performed after the entry.

일 실시예에서, 상기 가상 코드 대기 영역은 비휘발성 메모리에 저장되지 아니하고 휘발성 메모리 상에 존재할 수 있다.In one embodiment, the pseudo code wait area may be stored in a volatile memory without being stored in the non-volatile memory.

일 실시예에서, 상기 (a) 단계는 해시 함수(hashing function)를 통해 상기 가상 함수에 대한 해시 값을 계산하는 단계; 및 상기 가상 함수에 대한 해시 값을 기초로 상기 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출하는 단계를 더 포함할 수 있다.In one embodiment, step (a) comprises: calculating a hash value for the virtual function through a hashing function; And detecting a position of an actual function in the encryption code database based on the hash value for the virtual function.

일 실시예에서, 상기 (a) 단계는 가상 함수와 실제 함수를 포함하는 함수 매핑 테이블을 기초로 상기 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출하는 단계를 더 포함할 수 있다.In one embodiment, the step (a) may further include detecting a position of an actual function in the encryption code database based on a function mapping table including a virtual function and an actual function.

일 실시예에서, 상기 (b) 단계는 상기 가상 코드 대기 영역에 대기 중인 가상 함수를 상기 복호화된 실제 함수로 치환하는 단계를 포함할 수 있다.In one embodiment, the step (b) may include replacing a virtual function waiting in the virtual code wait area with the decoded actual function.

일 실시예에서, 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법은 (c) 상기 가상 함수 수행의 대기를 해제하고 상기 삽입된 실제 함수를 수행하여 상기 문서의 렌더링을 완료하는 단계를 더 포함할 수 있다.In one embodiment, the computer executable hybrid application execution method may further comprise the step of (c) canceling the execution of the virtual function and performing the inserted actual function to complete the rendering of the document.

일 실시예에서, 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법은 특정 시간 내에 상기 복호화된 실제 함수에 대한 호출이 발생하지 않거나 또는 상기 문서에 대한 렌더링이 종료된 경우 상기 가상 코드 대기 영역을 삭제하는 단계를 더 포함할 수 있다.In one embodiment, the computer-executable hybrid application execution method further comprises deleting the virtual code wait area if no call to the decrypted actual function occurs within a certain time, or if rendering of the document is terminated can do.

실시예들 중에서, 컴퓨터 실행 장치는 가상 코드를 포함하는 문서를 컴퓨팅 디바이스에 렌더링하는 동안에 상기 가상 코드가 독출되면 가상 코드 대기 영역에서 가상 코드에 대한 처리를 대기하고 암호화 코드 데이터베이스에서 실제 코드를 검색하는 코드 검색부; 상기 검색된 실제 코드를 복호화하는 코드 보안부; 및 상기 가상 코드 대기 영역에 삽입시키는 실제 코드 처리부를 포함한다.Among the embodiments, when the virtual code is read while the document including the virtual code is rendered on the computing device, the computer executing device waits for the processing of the virtual code in the virtual code waiting area and searches the encrypted code database for the actual code A code retrieval unit; A code security unit for decrypting the retrieved actual code; And an actual code processing unit for inserting the virtual code into the waiting area of the virtual code.

일 실시예에서, 상기 가상 코드는 스크립트(Java Script)에 있는 가상 함수, HTML 마크 업 정보, 가상 리소스(CSS) 중 적어도 하나를 포함할 수 있다.In one embodiment, the pseudo code may include at least one of a virtual function in a script, HTML markup information, and a virtual resource (CSS).

일 실시예에서, 컴퓨터 실행 장치는 상기 문서의 스크립트에 있는 특정 함수가 호출되면 상기 특정 함수가 상기 가상 함수인지 여부를 체크하는 가상 코드 처리부를 더 포함할 수 있다.In one embodiment, the computer execution apparatus may further include a virtual code processing unit for checking whether the specific function is a virtual function when a specific function in the script of the document is called.

일 실시예에서, 상기 가상 코드 처리부는 상기 특정 함수가 실행 코드를 포함하지 않는 함수에 해당하는 경우에는 상기 특정 함수를 상기 가상 함수로 결정할 수 있다.In one embodiment, the virtual code processor may determine the specific function as the virtual function when the specific function corresponds to a function that does not include executable code.

일 실시예에서, 상기 가상 코드 처리부는 상기 가상 함수가 호출되면 상기 문서의 문서 객체 모델(DOM, Document Object Model)에 진입하는 것을 특징으로 할 수 있다.In one embodiment, when the virtual function is called, the virtual code processing unit enters a document object model (DOM) of the document.

일 실시예에서, 상기 가상 코드 처리부는 상기 진입 후에 상기 실제 함수가 수행되기 전까지 상기 가상 코드 대기 영역을 상기 문서 객체 모델 내에 생성할 수 있다.In one embodiment, the virtual code processing unit may generate the virtual code wait area in the document object model until the actual function is performed after the entry.

일 실시예에서, 상기 가상 코드 대기 영역은 비휘발성 메모리에 저장되지 아니하고 휘발성 메모리 상에 존재할 수 있다.In one embodiment, the pseudo code wait area may be stored in a volatile memory without being stored in the non-volatile memory.

일 실시예에서, 상기 코드 검색부는 해시 함수(hashing function)를 통해 상기 가상 함수에 대한 해시 값을 계산하고, 상기 가상 함수에 대한 해시 값을 기초로 상기 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출할 수 있다.In one embodiment, the code retrieval unit computes a hash value for the virtual function through a hashing function, and detects a location of an actual function in the encryption code database based on the hash value for the virtual function .

일 실시예에서, 상기 코드 검색부는 가상 함수와 실제 함수를 포함하는 함수 매핑 테이블을 기초로 상기 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출할 수 있다.In one embodiment, the code searching unit can detect the location of an actual function in the cryptographic code database based on a function mapping table including a virtual function and an actual function.

일 실시예에서, 컴퓨터 실행 장치는 상기 가상 코드 대기 영역에 대기 중인 가상 함수를 상기 복호화된 실제 함수로 치환하는 실제 코드 처리부를 더 포함할 수 있다.In one embodiment, the computer-executable apparatus may further include an actual code processing unit for replacing a virtual function waiting in the virtual code wait area with the decoded actual function.

일 실시예에서, 컴퓨터 실행 장치는 실제 함수가 복호화하여 가상 코드 영역에 삽입된 경우 상기 가상 함수 수행의 대기를 해제하고 상기 삽입된 실제 함수를 수행하여 상기 문서의 렌더링을 완료하는 문서 렌더링부를 더 포함할 수 있다.In one embodiment, the computer-executable apparatus further includes a document rendering unit that releases the wait for the execution of the virtual function when the actual function is decoded and inserted into the virtual code area, and completes the rendering of the document by performing the inserted actual function can do.

일 실시예에서, 상기 문서 렌더링부는 특정 시간 내에 상기 복호화된 실제 함수에 대한 호출이 발생하지 않거나 또는 상기 문서에 대한 렌더링이 종료된 경우 상기 가상 코드 대기 영역을 삭제할 수 있다.In one embodiment, the document renderer may delete the virtual code wait area if a call to the decoded actual function does not occur within a certain time, or when rendering of the document is terminated.

실시예들 중에서, 컴퓨터 실행 장치에서 수행되는 컴퓨터 프로그램을 기록한 기록매체는 (a) 가상 코드를 포함하는 문서를 컴퓨팅 디바이스에 렌더링하는 동안에 상기 가상 코드가 독출되면 가상 코드 대기 영역에서 가상 코드에 대한 처리를 대기하고 암호화 코드 데이터베이스에서 실제 코드를 검색하는 기능; 및 (b) 상기 검색된 실제 코드를 복호화하여 상기 가상 코드 대기 영역에 삽입시키는 기능을 포함한다.
Among the embodiments, a recording medium on which a computer program executed in a computer executing apparatus records (a) a process of processing a virtual code in a virtual code waiting area when the virtual code is read while rendering a document including the virtual code to a computing device And retrieving the actual code from the encrypted code database; And (b) decoding the searched actual code and inserting it into the virtual code waiting area.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technique may have the following effects. It is to be understood, however, that the scope of the disclosed technology is not to be construed as limited thereby, as it is not meant to imply that a particular embodiment should include all of the following effects or only the following effects.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법과 이와 관련된 기술들은 실행 코드의 유출없이 실행 코드에 접근 할 수 있다.The computer-executable hybrid application execution method and related techniques according to an embodiment of the present invention can access the execution code without leakage of the execution code.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법과 이와 관련된 기술들은 실제 코드를 감추면서 협력 개발자(예를 들어, 디자이너)와 협업 가능한 가상 코드를 제공할 수 있다.A computer-executable hybrid application execution method and associated techniques according to an embodiment of the present invention may provide virtual code that can collaborate with a collaborative developer (e.g., a designer) while obscuring the actual code.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법과 이와 관련된 기술들은 실제 코드를 휘발성 메모리에 일시적으로 유지하여 해커 등에 의한 리버스 엔지니어링을 어렵게 할 수 있다.
The computer-executable hybrid application execution method and related techniques according to an embodiment of the present invention can temporarily hold actual codes in the volatile memory and make it difficult to reverse engineer by a hacker or the like.

도 1은 본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법의 개념도이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨터 실행 장치를 설명하는 블록도이다.
도 3은 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법을 설명한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법을 설명한 흐름도이다.
도 5는 가상 함수를 설명한 예시도이다.
도 6은 실제 함수를 설명한 예시도이다.
1 is a conceptual diagram of a computer-executable hybrid application execution method according to an embodiment of the present invention.
2 is a block diagram illustrating a computer-implemented apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a computer-executable hybrid application execution method.
4 is a flowchart illustrating a method of executing a computer-executable hybrid application according to an embodiment of the present invention.
5 is an exemplary diagram illustrating a virtual function.
6 is an exemplary diagram illustrating an actual function.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시 예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시 예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시 예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.The description of the present invention is merely an example for structural or functional explanation, and the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, the embodiments are to be construed as being variously embodied and having various forms, so that the scope of the present invention should be understood to include equivalents capable of realizing technical ideas.

한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present invention should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms "first "," second ", and the like are intended to distinguish one element from another, and the scope of the right should not be limited by these terms. For example, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.It should be understood that the singular " include "or" have "are to be construed as including a stated feature, number, step, operation, component, It is to be understood that the combination is intended to specify that it does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (e.g., a, b, c, etc.) is used for convenience of explanation, the identification code does not describe the order of each step, Unless otherwise stated, it may occur differently from the stated order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한, 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer-readable code on a computer-readable recording medium, and the computer-readable recording medium includes all kinds of recording devices for storing data that can be read by a computer system . Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and also implemented in the form of a carrier wave (for example, transmission over the Internet) . In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs, unless otherwise defined. Commonly used predefined terms should be interpreted to be consistent with the meanings in the context of the related art and can not be interpreted as having ideal or overly formal meaning unless explicitly defined in the present invention.

도 1은 본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법에 대한 개념도이다.1 is a conceptual diagram of a computer-executable hybrid application execution method according to an embodiment of the present invention.

도 1을 참조하면, 하이브리드 어플리케이션은 웹 영역(110), DOM 영역(120) 및 Native 영역(130)에서 수행된다.Referring to FIG. 1, a hybrid application is performed in a web area 110, a DOM area 120, and a native area 130.

여기에서, 웹 영역(110)은 웹 표준 구성요소(HTML, CSS, 자바스크립트)를 통해 하이브리드 어플리케이션이 개발되거나 또는 구동되는 영역에 해당하며, 예를 들어, 플랫폼에서 제공하는 Web Kit 또는 Web Browser에 해당할 수 있다.Here, the web area 110 corresponds to an area in which a hybrid application is developed or driven through web standard components (HTML, CSS, JavaScript). For example, a web kit or a web browser provided by a platform .

DOM 영역(120)은 문서 객체 모델(DOM; Document Object Model) 영역, 즉, 객체 지향 모델로써 구조화된 문서를 표현하는 형식에 해당한다. DOM은 HTML 문서의 요소를 제어하여 동적으로 문서의 내용, 구조 및 스타일에 접근하고 변경하는 수단에 해당할 수 있다. DOM 영역(120)은 컴퓨터 실행 장치 내, 특히 휘발성 메모리 상에 존재할 수 있다.The DOM area 120 corresponds to a document object model (DOM) area, that is, a format for representing a structured document as an object-oriented model. The DOM can be a means of dynamically controlling the elements of an HTML document to access and modify the contents, structure and style of the document. The DOM region 120 may reside within a computer-executable device, in particular on a volatile memory.

Native 영역(130)은 플랫폼 고유의 운영체제(OS, Operating System) 영역에 해당하며, 예를 들어, Android, iOS 에 해당할 수 있다.The native area 130 corresponds to a platform-specific operating system (OS) area, and may correspond to, for example, Android and iOS.

본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법은 가상 코드를 포함할 수 있다.A computer-executable hybrid application execution method according to an embodiment of the present invention may include virtual code.

여기에서, 가상 코드는 하이브리드 어플리케이션의 소스 또는 리소스와 관련하여 실제 내용을 포함하지 않고 형식만을 갖춘 코드에 해당한다. 예를 들어, 함수명만 정의되고 실행 코드를 포함하고 있지 않은 함수(Function)에 해당할 수 있다.Here, the pseudo code corresponds to a code having only a format, not including the actual content in relation to the source or the resource of the hybrid application. For example, it may correspond to a function that is defined only by a function name and does not contain executable code.

일 실시예에서, 가상 코드는 스크립트에 있는 가상 함수, HTML 마크 업 정보, Web Browser에서 사용하는 UI 구성 및 스타일 시트(CSS) 중 적어도 하나에 해당할 수 있다.In one embodiment, the pseudo code may correspond to at least one of a virtual function in the script, HTML markup information, a UI configuration used in the Web Browser, and a style sheet (CSS).

이하에서는 가상 코드 중 특히, 가상 함수를 기초로 하이브리드 어플리케이션 수행 방법 및 이를 수행하는 컴퓨터 실행 장치에 대하여 설명한다.
Hereinafter, a method of executing a hybrid application based on virtual functions, and a computer execution device for performing the hybrid application, will be described.

다시 도 1을 참조하면, 컴퓨터 실행 장치는 웹 영역에서 HTML 파일, CSS 파일(111) 및 가상 함수(112)를 포함하는 하이브리드 어플리케이션을 실행하는 경우, 컴퓨터 실행 장치 상에 어플리케이션의 데이터(예를 들어, 콘텐츠)를 제공하기 위하여 DOM 내에 HTML 파일, CSS 파일 및 가상 함수를 각각 로딩한다.Referring again to FIG. 1, when executing a hybrid application including an HTML file, a CSS file 111, and a virtual function 112 in a web area, the computer executing device executes the application data (for example, , The CSS file, and the virtual function, respectively, in the DOM in order to provide the content.

여기에서, DOM은 통상적으로 사용되는 문서 객체 모델(DOM; Document Object Model)을 의미하며, 객체 지향 모델로써 구조화된 문서를 표현하는 형식에 해당할 수 있다. 보다 구체적으로, DOM은 HTML 문서의 요소를 제어하여 동적으로 문서의 내용, 구조, 스타일에 접근하고 변경하는 수단에 해당할 수 있다.Here, the DOM means a commonly used document object model (DOM), and may correspond to a format for representing a structured document as an object-oriented model. More specifically, the DOM can correspond to a means for dynamically controlling the elements of an HTML document to access and change the contents, structure, and style of the document.

컴퓨터 실행 장치는 함수명만 정의되는 가상 함수가 호출되는 경우 이를 수행하지 아니하고, 이에 상응하는 실제 함수(131)를 Native 영역(130)에 로딩한다.The computer execution unit loads the actual function 131 corresponding to the function name in the native area 130 without executing the virtual function defined only by the function name.

컴퓨터 실행 장치는 실제 함수(131)를 복호화하고, 복호화된 실제 함수를 특정 시점에 DOM 영역(120)으로 삽입(injection) 또는 가상함수(121)와 치환하며, 복호화된 실제 함수를 실행하여 DOM 구성을 완료하고, 하이브리드 어플리케이션을 실행할 수 있다.The computer execution unit decodes the actual function 131, inserts the decoded physical function into the DOM area 120 at a specific time or replaces it with the virtual function 121, executes the decoded physical function, And can execute the hybrid application.

여기에서, 비즈니스 로직 등이 구현된 가상 함수는 휘발성 메모리 영역에 존재하기 때문에 사용자에게 노출되지 않고, 디컴파일을 통한 공격 가능성도 배제시킬 수 있다.
Here, since the virtual function implemented in the business logic exists in the volatile memory area, it is not exposed to the user and it is possible to exclude the possibility of attack through decompilation.

도 2는 본 발명의 일 실시예에 따른 컴퓨터 실행 장치(200)를 설명하는 블록도이다.2 is a block diagram illustrating a computer-implemented apparatus 200 according to an embodiment of the present invention.

도 2를 참조하면, 컴퓨터 실행장치(200)는 문서 렌더링부(210), 가상 코드 처리부(220), 코드 검색부(230), 코드 보안부(240), 실제 코드 처리부(250), 데이터베이스(260) 및 제어부(270)를 포함한다.2, the computer executing apparatus 200 includes a document rendering unit 210, a virtual code processing unit 220, a code searching unit 230, a code security unit 240, an actual code processing unit 250, a database 260 And a control unit 270. [0033]

컴퓨터 실행 장치(200)는 하이브리드 어플리케이션을 수행하기 위해 사용될 수 있는, 예를 들어, 데스크톱(Desktop), 노트북(Laptop), 스마트폰(Smartphone) 또는 태블릿 PC(Tablet Personal Computer)에 해당할 수 있다.
The computer execution device 200 may correspond to a desktop, a laptop, a smartphone, or a tablet personal computer, which can be used for executing a hybrid application.

문서 렌더링부(210)는 하이브리드 어플리케이션 실행시 문서를 렌더링한다.The document rendering unit 210 renders a document when the hybrid application is executed.

여기에서, 문서는 HTML 등과 같은 웹 표준 구성요소에 의해 작성된 문서에 해당할 수 있다.Here, the document may correspond to a document created by a Web standard component such as HTML.

일 실시예에서, 문서 렌더링부(210)는 가상 코드를 포함하는 문서를 렌더링하는 경우, 가상 코드에 대한 처리를 대기할 수 있다.In one embodiment, when the document rendering unit 210 renders a document including virtual code, it may wait for processing on the virtual code.

예를 들어, 문서 렌더링부(210)는 실행 코드를 포함하지 않은 가상 함수가 있는 경우, 가상 함수에 대한 실행을 Skip하고 이 외의 부분에 대해 렌더링 작업을 수행할 수 있으며, 다른 렌더링 작업이 완료되고 가상 함수에 대한 관련 프로세스가 수행된 경우(예를 들어, 가상 함수에 상응하고 실행 코드를 포함하는 코드가 삽입된 경우), 가상 함수에 대한 실행을 실시할 수 있다.For example, if there is a virtual function that does not include an executable code, the document rendering unit 210 may skip the execution of the virtual function and perform a rendering operation on the other part, When a related process for a virtual function is performed (for example, a code corresponding to a virtual function is inserted and a code including the execution code is inserted), execution of the virtual function can be performed.

다른 예를 들어, 문서 렌더링부(210)는 가상 함수가 호출되는 경우 문서 렌더링 작업을 중단하고, 가상 함수에 대한 관련 프로세스가 수행된 후 제어부(270)의 제어에 따라 렌더링 작업을 계속 수행할 수 있다.
For example, the document rendering unit 210 may stop the document rendering operation when the virtual function is called, and may continue the rendering operation under the control of the controller 270 after the related process for the virtual function is performed have.

문서 렌더링부(210)는 문서 렌더링시 호출되는 웹 리소스를 데이터베이스로부터 로딩할 수 있다. 이와 달리, 문서 렌더링부(210)는 웹 리소스를 외부 장치로부터 수신할 수 있다. 여기에서, 외부 장치는 웹 리소스를 저장하고 있는 컴퓨터 실행 장치(미도시) 또는 웹 리소스 제공 서버(미도시) 등에 해당할 수 있다.
The document rendering unit 210 may load the Web resource, which is called when the document is rendered, from the database. Alternatively, the document rendering unit 210 may receive web resources from an external device. Here, the external device may correspond to a computer executing device (not shown) or a web resource providing server (not shown) storing web resources.

가상 코드 처리부(220)는 가상 코드인지 여부를 판단하고, 가상 코드의 수행을 제어하며, 가상 코드 대기 영역을 생성 및 관리한다.The virtual code processing unit 220 determines whether or not it is a virtual code, controls the execution of the virtual code, and generates and manages a virtual code waiting area.

일 실시예에서, 가상 코드 처리부(220)는 문서의 스크립트에 있는 특정 함수가 호출되면 특정 함수가 가상 함수인지 여부를 체크할 수 있다.In one embodiment, the virtual code processing unit 220 can check whether a specific function is a virtual function when a specific function in a script of the document is called.

예를 들어, 가상 코드 처리부(220)는 함수의 이름 형식을 기초로 가상 함수인지 여부를 체크할 수 있다. 가상 함수 정의하는 경우에 [Virtual]과 같이 다른 함수와 구분할 수 있는 식별자를 가상 함수명 앞에 부가 할 수 있고, 가상 코드 처리부(220)는 부가된 식별자를 기초로 특정 함수가 가상 함수인지 여부를 체크할 수 있다.For example, the virtual code processing unit 220 can check whether the virtual function is based on the name format of the function. When defining a virtual function, an identifier that can be distinguished from other functions such as [Virtual] may be added before the virtual function name, and the virtual code processing unit 220 checks whether the specific function is a virtual function based on the added identifier .

일 실시예에서, 가상 코드 처리부(220)는 특정 함수가 실행 코드를 포함하지 않는 함수에 해당하는 경우에는 해당 함수를 가상 함수로 결정할 수 있다.
In one embodiment, when the specific function corresponds to a function that does not include executable code, the virtual code processing unit 220 can determine the function as a virtual function.

도 5는 가상 함수를 설명한 예시도이다. 도 5를 참조하면, [MxpEngine.js] 라는 자바스크립트 파일은 [DebugConsole. prototype.log = function(message, maxDepth){ };]와 같이 정의된 함수를 포함할 수 있고, 함수 후단의 { }(함수 실행 코드가 포함되어야 할 부분)이 공백인 경우, 가상 코드 처리부(220)는 [DebugConsole.prototype.log]를 가상 함수(112)로 결정할 수 있다.5 is an exemplary diagram illustrating a virtual function. Referring to FIG. 5, a JavaScript file [MxpEngine.js] is displayed in the [DebugConsole. (the part to which the function execution code should be included) is empty, the virtual code processing unit 220 (220) may include a function defined as " prototype.log = function (message, maxDepth) {} ) Can determine [DebugConsole.prototype.log] as the virtual function 112.

일 실시예에서, 가상 코드 처리부(220)는 문서를 컴퓨터 실행 장치에 렌더링하는 동안에 가상 코드가 독출되면 가상 코드 대기 영역에서 가상 코드에 대한 처리를 대기시킨다. 여기에서, 가상 코드 대기 영역은 가상 코드가 수행될 때까지 대기할 수 있는 영역에 해당한다. 가상 코드 대기 영역은 휘발성 메모리 상에 존재할 수 있다.In one embodiment, the virtual code processing unit 220 waits for processing of the virtual code in the virtual code waiting area when the virtual code is read while rendering the document to the computer executing device. Here, the virtual code waiting area corresponds to an area that can wait until the virtual code is executed. The virtual code wait area may reside in a volatile memory.

일 실시예에서, 가상 코드 처리부(210)는 가상 함수가 호출되면 문서 객체 모델(DOM, Document Object Model)에 진입할 수 있다.In one embodiment, the virtual code processing unit 210 can enter a document object model (DOM) when a virtual function is called.

가상 코드 처리부(210)는 가상 함수가 호출되면 문서 객체 모델에 진입하여 문서 렌더링부(210)로 하여금 문서 렌더링 작업을 수행할 수 있도록 할 수 있다.When the virtual function is called, the virtual code processing unit 210 may enter the document object model so that the document rendering unit 210 can perform a document rendering operation.

일 실시예에서, 가상 코드 처리부(220)는 문서 객체 모델 진입 후에 실제 함수가 수행되기 전까지 가상 코드 대기 영역을 문서 객체 모델 내에 생성할 수 있다.In one embodiment, the virtual code processing unit 220 may generate a virtual code wait area in the document object model until the actual function is performed after entering the document object model.

예를 들어, 가상 코드 처리부(220)는 가상 함수가 수행되기 전까지 휘발성 메모리의 특정 영역에 해당하는 가상 코드 대기 영역을 생성할 수 있다.For example, the virtual code processing unit 220 may generate a virtual code waiting area corresponding to a specific area of the volatile memory until the virtual function is executed.

일 실시예에서, 가상 코드 처리부(220)는 실제 함수가 가상 코드 대기 영역에 삽입되는 경우, 가상 함수 수행의 대기를 해제하고 삽입된 실제 함수를 수행할 수 있다.In one embodiment, the virtual code processing unit 220 can release the execution of the virtual function and perform the inserted actual function when the actual function is inserted into the virtual code wait area.

예를 들어, 가상 코드 처리부(220)는 가상 함수에 대한 수행을 해제하고, 가상 함수 수행시 삽입된 실제 함수를 호출하도록 제어할 수 있다.For example, the virtual code processing unit 220 may cancel the execution of the virtual function and control the virtual function to call the inserted actual function.

일 실시예에서, 가상 코드 처리부(220)는 특정 시간 내에 복호화된 실제 함수에 대한 호출이 발생하지 않거나 또는 문서에 대한 렌더링이 종료된 경우 가상 코드 대기 영역을 삭제할 수 있다.In one embodiment, the virtual code processing unit 220 may delete the virtual code waiting area when a call to the actual function decoded within a specific time does not occur, or when the rendering of the document is terminated.

예를 들어, 가상 코드 처리부(220)는 특정 시간 내에 복호화된 실제 함수에 대한 호출이 발생하지 않는 경우, 복호화된 실제 함수에 대한 사용이 없는 것으로 판단할 수 있고, 가상 코드 대기 영역을 삭제할 수 있고, 이를 통해 사용자나 또는 제3자에 대한 실제 함수의 노출을 방지할 수 있다.
For example, if the virtual code processing unit 220 does not generate a call to the actual function decoded within a specific time, the virtual code processing unit 220 can determine that there is no use of the decoded actual function, , Thereby preventing exposure of the actual function to the user or a third party.

코드 검색부(230)은 가상 코드와 상응하는 실제 코드를 검색한다. 가상 코드와 실제 코드에 대해 이하 상세히 설명한다.The code search unit 230 searches for an actual code corresponding to the virtual code. The virtual code and the actual code will be described in detail below.

일 실시예에서, 가상 코드는 스크립트(Java Script)에 있는 가상 함수, 가상 실행 코드(HTML 마크 업 정보), 가상 리소스(CSS) 중 적어도 하나를 포함할 수 있다. 여기에서, 가상 코드는 앞서 설명한 바와 같이 하이브리드 어플리케이션의 소스 및 리소스와 관련하여 실제 내용을 포함하지 않고 형식만을 갖춘 코드에 해당할 수 있다.In one embodiment, the virtual code may include at least one of a virtual function in a script (Java Script), a virtual execution code (HTML markup information), and a virtual resource (CSS). Here, as described above, the virtual code may correspond to a code having only a format, not including the actual content in relation to the source and the resource of the hybrid application.

예를 들어, 가상 코드는 실행 코드를 포함하지 않고 이름과 파라미터 정보만 정의된 가상 함수에 해당할 수 있다. 가상 함수의 경우 컴퓨터 실행 장치에 의해 호출되더라도 수행될 수 없으며, 다만, 가상 함수와 상응하는 실제 함수를 검색하는데 사용될 수 있다.For example, a pseudo code may correspond to a virtual function that does not include executable code but defines only name and parameter information. In the case of a virtual function, it can not be executed even if it is called by a computer executing device, but it can be used to search for an actual function corresponding to a virtual function.

가상 코드는 일반 사용자에게 공개되나, 그 내용을 포함하고 있지 않다는 점에서 보안성을 유지할 수 있고, 파라미터 정보를 가지고 있다는 점에서 개발시 디자이너 등과 같은 개발자들과 협업이 가능하게 할 수 있다.Virtual code is open to the general user, but it can maintain security because it does not contain the contents, and it can make it possible to collaborate with developers such as designers in development because it has parameter information.

실제 코드는 가상 코드에 상응하고 개발자가 제3자로부터 보호하고자 하는 내용을 암호화한 형태로 포함할 수 있다.The actual code corresponds to the pseudo code, and the developer can include in encrypted form what he intends to protect from third parties.

도 6은 실제 코드를 나타내는 예시도이다. 도 6을 참조하면, 실제 코드는 제3자가 인식 불가한 문자 또는 숫자들로 구성되어, 실제 코드의 내용을 제3자로부터 보호할 수 있다.6 is an exemplary diagram showing an actual code. Referring to FIG. 6, the actual code is composed of letters or numbers that the third party can not recognize, so that the contents of the actual code can be protected from the third party.

예를 들어, 실제 코드는 비즈니스 로직을 포함하고 암호화된 자바 스크립트 파일에 해당할 수 있다.For example, the actual code may include business logic and correspond to an encrypted JavaScript file.

일 실시예에서, 코드 검색부(230)는 해시 함수(hashing function)를 통해 가상 함수에 대한 해시 값을 계산하고, 가상 함수에 대한 해시 값을 기초로 암호화 코드 데이터베이스(241)에서 실제 함수의 위치를 검출할 수 있다.In one embodiment, the code searching unit 230 calculates a hash value for a virtual function through a hashing function, calculates a hash value for the virtual function based on the hash value of the virtual function, Can be detected.

보다 구체적으로, 암호화 코드 데이터베이스(241)는 실제 함수를 해시 값에 해당하는 주소에 저장해두고, 코드 검색부(230)는 해시 함수를 통해 가상 함수의 이름에 대한 해시 값을 계산하여 바로 실제 함수의 위치를 검출할 수 있다.More specifically, the encryption code database 241 stores an actual function at an address corresponding to the hash value, and the code retrieving unit 230 calculates a hash value for the name of the virtual function through the hash function, The position can be detected.

예를 들어, 가상 함수 A에 대한 해시 값 h(A)=k인 경우, 암호화 코드 데이터베이스(241)는 가상 함수 A에 상응하는 실제 함수 B를 주소 k에 저장해두어, 코드 검색부(230)은 가상 함수 A의 해시 값 k를 계산하는 것으로 실제 함수 B 의 위치를 검출할 수 있다. 이를 통해, 한 번의 해시 키 계산으로 문자열을 하나씩 비교하며 찾는 구성보다 빠르게 실제 코드를 검색할 수 있다.For example, when the hash value h (A) = k for the virtual function A, the encryption code database 241 stores the actual function B corresponding to the virtual function A in the address k, and the code retrieving unit 230 The position of the actual function B can be detected by calculating the hash value k of the virtual function A. This allows you to compare the strings one by one with a single hash key calculation, and to retrieve the actual code faster than the find configuration.

다른 일 실시예에서, 코드 검색부(230)는 가상 함수와 실제 함수를 포함하는 함수 매핑 테이블을 기초로 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출할 수 있다. 여기에서 함수 매핑 테이블은 가상 함수와 실제 함수(위치 정보 포함)를 각각 1:1 대응시킨 매핑 테이블에 해당할 수 있다.In another embodiment, the code searching unit 230 can detect the location of the actual function in the cryptographic code database based on the function mapping table including the virtual function and the actual function. Here, the function mapping table may correspond to a mapping table in which a virtual function and an actual function (including positional information) are associated with each other by 1: 1.

예를 들어, 코드 검색부(230)는 가상 함수 A가 호출되면, 함수 매핑 테이블을 기초로 가상 함수 A에 매칭되는 실제 함수 B 및 실제 함수 B의 위치 정보를 검출할 수 있다.
For example, when the virtual function A is called, the code search unit 230 can detect the location information of the actual function B and the actual function B that match the virtual function A based on the function mapping table.

코드 보안부(240)는 코드를 암호화 하거나, 실제 코드를 복호화 할 수 있다. 보다 구체적으로, 코드 보안부(240)는 사용자에 의해 선택된 특정 함수를 암호화 알고리즘을 통해 암호화 할 수 있고, 이와 반대되는 과정을 통해 암호화된 코드를 복호화할 수 있다.The code security unit 240 can encrypt the code or decrypt the actual code. More specifically, the code security unit 240 can encrypt a specific function selected by the user through an encryption algorithm, and vice versa.

일 실시예에서, 코드 보안부(240)는 특정 코드를 암호화하는 경우, 암호화된 코드, 즉 실제 코드와 이에 상응하는 가상 코드를 각각 생성할 수 있다.In one embodiment, when the specific code is encrypted, the code security unit 240 may generate an encrypted code, that is, an actual code and a corresponding virtual code, respectively.

일 실시예에서, 코드 보안부(240)는 RSA(Rivest Shamir Adleman) 알고리즘, 대칭 키 알고리즘 및 비대칭 키 알고리즘 중 하나를 통해 검색된 실제 함수를 복호화할 수 있다.In one embodiment, the code security unit 240 may decrypt the actual function retrieved via one of the Rivest Shamir Adleman (RSA) algorithm, the symmetric key algorithm, and the asymmetric key algorithm.

RSA 알고리즘은 소인수분해의 난해함, 즉, 큰 수의 소인수를 찾는 것은 쉽지 않다는 점을 기반으로, 공개키만을 가지는 경우 개인키를 쉽게 짐작할 수 없도록 디자인된 암호화 방식에 해당한다.The RSA algorithm is based on the fact that it is not easy to find a large number of prime factors, that is, it is a cryptosystem designed to not easily guess a private key if only a public key is present.

대칭 키는 알고리즘은 암호화 방식 중 암호화 할 때 사용한 키와 복호화 할 때 사용하는 키가 같은 암호화 방식에 해당한다.The symmetric key algorithm corresponds to the encryption method used for encrypting and the key used for decryption in the encryption method.

비대칭 키는 정보를 암호화하기 위하여 사용하는 암호화 키와 암호화된 정보를 복원하기 위하여 사용하는 복호화 키가 서로 다른 암호화 방식에 해당한다. 각각의 암호화 알고리즘은 통상 사용되는 알고리즘에 해당한다.The asymmetric key corresponds to a different encryption scheme used between the encryption key used for encrypting the information and the decryption key used for recovering the encrypted information. Each encryption algorithm corresponds to a commonly used algorithm.

코드 보안부(240)는 외부의 인증서버(미도시)와의 통신을 통해 코드 암호화 및 복호화를 위한 키(key)를 획득할 수 있다.
The code security unit 240 can acquire a key for code encryption and decryption through communication with an external authentication server (not shown).

실제 코드 처리부(250)은 복호화된 실제 함수를 가상 코드 대기 영역에 삽입한다.The actual code processing unit 250 inserts the decoded actual function into the virtual code waiting area.

일 실시예에서, 실제 코드 처리부(250)는 복호화된 실제 함수를 특정 시간에 가상 코드 대기 영역에 삽입할 수 있다.In one embodiment, the actual code processing unit 250 may insert the decoded actual function into the virtual code waiting area at a specific time.

예를 들어, 복호화된 실제 함수 A, B 및 C가 각각 존재하는 경우, 실제 코드 처리부(250)는 코드 보안부(240)에서 실제 함수 A, B 및 C가 복호화된 시점에 실제 함수 각각을 바로 가상 코드 대기영역에 삽입할 수 있다. 이와 달리, 코드 보안부(240)는 코드 보안부(240)에서 실제 함수 A, B 및 C의 복호화가 모두 종료되는 시점에 일괄적으로 가상 코드 대기영역에 삽입할 수도 있다.For example, when the decoded actual functions A, B, and C are respectively present, the actual code processing unit 250 directly codes the actual functions at the time when the actual functions A, B, and C are decoded in the code security unit 240 It can be inserted into the code waiting area. Alternatively, the code security unit 240 may collectively insert the code into the virtual code waiting area at the time when the decryption of the actual functions A, B, and C is completed in the code security unit 240. [

일 실시예에서, 실제 코드 처리부(250)는 가상 코드 대기영역에 존재하는 가상 코드와 다른 위치에 실제 코드를 삽입할 수 있다. 즉, 가상 코드와 실제 함수는 가상 코드 대기 영역에 동시에 존재할 수 있고, 문서 렌더링부(210)는 가상 코드가 호출되는 경우 가상 코드에 상응하고 다른 위치에 존재하는 실제 함수를 호출하는 방식으로 문서 렌더링 작업을 수행할 수 있다.In one embodiment, the actual code processing unit 250 may insert the actual code at a position different from the virtual code existing in the virtual code wait area. That is, the virtual code and the actual function may exist simultaneously in the virtual code waiting area, and when the virtual code is called, the document rendering unit 210 calls the actual function corresponding to the virtual code, You can do the work.

일 실시예에서, 실제 코드 처리부(250)는 가상 코드 대기 영역에 대기 중인 가상 함수를 복호화된 실제 함수로 치환할 수 있다. 보다 구체적으로, 실제 코드 처리부(250)는 가상 코드 대기 영역에 존재하는 가상 코드를 삭제하고, 실제 코드를 가상 코드가 위치한 영역에 삽입할 수 있으며, 문서 렌더링부(210)는 가상 코드에 의한 문서 렌더링 작업의 중단 없이 일괄적으로 문서 렌더링 작업을 수행할 수 있다.
In one embodiment, the actual code processing unit 250 may replace the virtual function waiting in the virtual code wait area with the decoded actual function. More specifically, the actual code processing unit 250 deletes the virtual code existing in the virtual code waiting area, and inserts the actual code into the area where the virtual code is located, and the document rendering unit 210 reads the document You can perform document rendering operations in batch without interruption of the rendering operation.

데이터베이스(260)은 하이브리드 어플리케이션에 대한 패키지(소스, 웹 리소스) 및 실제 코드를 저장한다. 여기에서, 데이터베이스(260)는 실제 코드를 저장하는 암호화 코드 데이터베이스(261)을 별도로 구성할 수 있다. 예를 들어, 암호화 코드 데이터베이스(261)는 실제 함수를 포함하는 암호화 함수 라이브러리로 구현될 수 있다.The database 260 stores the package (source, web resource) and the actual code for the hybrid application. Here, the database 260 can separately constitute an encryption code database 261 for storing actual codes. For example, the encryption code database 261 may be implemented as an encryption function library including an actual function.

암호화 코드 데이터베이스(261)는 하이브리드 어플리케이션 생성시 제작자에 의하여 최초 생성되고, 하이브리드 어플리케이션의 배포시 컴퓨터 실행 장치 내에 생성될 수 있다.The encryption code database 261 may be initially created by the manufacturer at the time of creating the hybrid application, and may be created in the computer execution device at the time of distribution of the hybrid application.

데이터베이스(260)는 하이브리드 어플리케이션 구동에 따라 필요한 소스 또는 리소스를 제어부(270)의 제어에 따라 문서 렌더링부(210)에 제공할 수 있다.The database 260 may provide a necessary source or resource to the document rendering unit 210 under the control of the control unit 270 in accordance with the driving of the hybrid application.

일 실시예에서, 암호화 코드 데이터베이스(261)는 가상 함수에 대한 해시 값에 해당하는 위치에 실제 코드를 저장할 수 있다. 예를 들어, 가상 함수 A에 대한 해시 값이 256인 경우, 256과 관련된 위치에 가상 함수 A에 상응하는 실제 함수 B를 저장할 수 있다. 이 때, 암호화 코드 데이터베이스(261)는 계산된 해시 값과 관련되어 저장된 실제 함수를 코드 보안부(250)에 제공할 수 있다.In one embodiment, the encryption code database 261 may store the actual code at a location corresponding to the hash value for the virtual function. For example, if the hash value for the virtual function A is 256, then the actual function B corresponding to the virtual function A can be stored at a position related to 256. [ At this time, the encryption code database 261 may provide the actual function stored in association with the calculated hash value to the code security unit 250.

다른 일 실시예에서, 암호화 코드 데이터베이스(261)는 실제 코드 검색을 위한 함수 매핑 테이블을 저장할 수 있다. 예를 들어, 암호화 코드 데이터베이스(261)는 가상 함수 A와 가상 함수A에 상응하는 실제 함수 B의 정보(B의 저장 위치를 포함함)를 함수 매핑 테이블을 저장할 수 있다.
In another embodiment, the encryption code database 261 may store a function mapping table for actual code retrieval. For example, the encryption code database 261 can store a function mapping table of the information of the actual function B (including the storage location of B) corresponding to the virtual function A and the virtual function A.

제어부(270)은 문서 렌더링부(210), 가상 코드 처리부(220), 코드 검색부(230), 코드 보안부(240), 실제 코드 처리부(250) 및 데이터베이스(260)간의 데이터 흐름을 제어한다.The control unit 270 controls data flow between the document rendering unit 210, the virtual code processing unit 220, the code searching unit 230, the code security unit 240, the actual code processing unit 250, and the database 260.

제어부(270)는 문서 렌더링 중 가상 함수가 호출되는 경우, 문서 렌더링부(210)의 가상 함수에 대한 수행을 중단 시킬 수 있다. 또한, 가상 함수에 대한 실제 함수가 복호화되어 삽입되는 경우 문서 렌더링부(210)로 하여금 작업 중단을 해제하고, 실제 함수를 호출하여 문서 렌더링 작업을 계속 수행하도록 제어할 수 있다.The control unit 270 may stop the execution of the virtual function of the document rendering unit 210 when the virtual function is called during rendering of the document. In addition, when the actual function for the virtual function is decoded and inserted, the document rendering unit 210 can cancel the job interruption and control the document rendering operation to continue by calling the actual function.

제어부(270)는 데이터베이스(260)에 함수 매핑 테이블을 코드 검색부에 제공하도록 제어할 수 있다.The control unit 270 may control the database 260 to provide a function mapping table to the code search unit.

제어부(270)는 코드 보안부(240)에 의해 복호화된 실제 함수를 실제 코드 처리부(250)에 제공하도록 제어할 수 있으며, 실제 코드 처리부(250)로 하여금 복호화된 실제 코드를 가상 코드 대기 영역에 삽입할 시점을 결정할 수 있다.
The control unit 270 can control the actual code processing unit 250 to provide the actual function decoded by the code security unit 240 and allow the actual code processing unit 250 to insert the decoded actual code into the virtual code waiting area You can decide when to do it.

도 3은 컴퓨터 실행 가능한 어플리케이션 수행 방법을 설명하는 흐름도이다.3 is a flowchart illustrating a computer-executable application execution method.

도 3을 참조하면, 컴퓨터 실행 장치는 하이브리드 어플리케이션의 구동 요청을 수신할 수 있고, 이에 따라 하이브리드 어플리케이션 구동을 준비한다(S310).Referring to FIG. 3, the computer execution apparatus can receive a request for driving the hybrid application, and prepares for driving the hybrid application accordingly (S310).

보다 구체적으로, 문서 렌더링부(210)는 데이터베이스(260) 상에 저장된 하이브리드 소스 및 리소스를 로드하고, 각 소스 및 리소스가 포함하고 있는 코드를 실행하여 문서 렌더링 작업을 수행할 수 있다.More specifically, the document rendering unit 210 may load the hybrid source and the resources stored on the database 260, and execute the code included in each source and the resource to perform a document rendering operation.

코드 보안부(240)는 실제 코드를 로드하여 복호화하는 작업을 수행한다(S320).The code security unit 240 loads and decodes the actual code (S320).

이 때, 코드 보안부(240)는 코드 암호화 및 복호화를 위한 키를 암호화 코드 데이터베이스 또는 외부의 인증서버와의 통신을 통해 획득할 수 있다.At this time, the code security unit 240 can obtain a key for code encryption and decryption through an encryption code database or an external authentication server.

코드 보안부(240)는 실제 코드에 대한 복호화 작업을 문서 렌더링 시작시에 수행할 수 있거나 또는 문서 렌더링 작업 중 가상 코드가 독출되면 가상 코드에 대한 처리를 대기, 즉, 문서 렌더링 작업을 중단하고 이를 수행할 수 있다.The code security unit 240 can perform the decryption operation for the actual code at the start of document rendering or wait for the processing of the virtual code when the virtual code is read during the document rendering operation, can do.

실제 코드 처리부(250)는 복호화된 실제 함수를 가상 코드 대기 영역에 삽입한다(S330).The actual code processing unit 250 inserts the decoded actual function into the virtual code waiting area (S330).

앞서 설명한 바와 같이, 가상 코드를 그대로 두고 실제 코드를 별도의 영역에 삽입하여 가상 코드가 호출되는 경우 실제 코드를 실행할 수 있도록 구현될 수 있고, 이와 달리, 가상 코드를 실제 코드로 치환하는 형태로 실제 코드를 삽입할 수 있다.As described above, the virtual code can be implemented so as to execute the actual code when the virtual code is called by inserting the actual code into a separate area without changing the virtual code. Alternatively, the virtual code can be replaced with the actual code You can insert code.

문서 렌더링부(210)는 실제 코드가 삽입된 경우 제어부(270)의 제어에 따라 문서 렌더링 작업의 중단, 즉 가상 함수 수행의 대기을 해제하고, 삽입된 실제 함수를 수행하여 문서의 렌더링 작업을 완료한다(S340).
When the actual code is inserted, the document rendering unit 210 terminates the document rendering operation, that is, waits for the execution of the virtual function under the control of the control unit 270, and completes the rendering operation of the document by executing the inserted actual function (S340).

도 4는 본 발명의 일 실시예에 따른 컴퓨터 실행 가능한 어플리케이션 수행 방법을 설명하는 흐름도이다.4 is a flowchart illustrating a computer-executable application execution method according to an embodiment of the present invention.

도 4를 참조하면, 컴퓨터 실행 장치는 하이브리드 어플리케이션의 구동 요청을 수신할 수 있고, 이에 따라 하이브리드 어플리케이션 구동을 준비한다(S410).Referring to FIG. 4, the computer executing apparatus can receive a request for driving the hybrid application, and accordingly, prepare for driving the hybrid application (S410).

일 실시예에서, 가상 코드 처리부(220)는 문서 렌더링 동안에 문서의 스크립트에 있는 특정 코드가 독출 또는 호출되면 특정 코드가 가상 코드인지 여부를 체크할 수 있다(S420).In one embodiment, the virtual code processing unit 220 may check whether a specific code is a virtual code when a specific code in a script of the document is read or invoked during document rendering (S420).

가상 코드 처리부(220)는 특정 코드가 가상 코드에 해당하는 경우 가상 코드 대기 영역에서 가상 코드에 대한 처리를 대기시킬 수 있다.The virtual code processing unit 220 can wait for processing of the virtual code in the virtual code waiting area when the specific code corresponds to the virtual code.

일 실시예에서, 코드 검색부(230)는 호출된 가상 코드를 기초로 실제 함수를 검색한다(S430).In one embodiment, the code searching unit 230 searches an actual function based on the called virtual code (S430).

예를 들어, 코드 검색부(230)는 해시 함수를 통해 가상 함수에 대한 해시 값을 계산하고, 이를 기초로 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출할 수 있다.For example, the code searching unit 230 may calculate a hash value for a virtual function through a hash function, and detect the location of the actual function in the encrypted code database based on the calculated hash value.

또 다른 예를 들어, 코드 검색부(230)는 가상 함수와 실제 함수를 포함하는 함수 매핑 테이블을 기초로 코드 데이터 베이스에서 실제 함수의 위치를 검출할 수 있다.For example, the code search unit 230 may detect the location of an actual function in a code database based on a function mapping table including a virtual function and an actual function.

코드 보안부(240)는 코드 검색부(230)에 의해 검색된 실제 코드를 로드하여 복호화하는 작업을 수행한다(S440).The code security unit 240 loads and decodes the actual code retrieved by the code retrieving unit 230 (S440).

이 때, 코드 보안부(240)는 코드 암호화 및 복호화를 위한 키를 암호화 코드 데이터베이스 또는 외부의 인증서버와의 통신을 통해 획득할 수 있다.At this time, the code security unit 240 can obtain a key for code encryption and decryption through an encryption code database or an external authentication server.

실제 코드 처리부(250)는 복호화된 실제 함수를 가상 코드 대기 영역에 삽입한다(S450).The actual code processing unit 250 inserts the decoded actual function into the virtual code waiting area (S450).

문서 렌더링부(210)는 실제 코드가 삽입된 경우 제어부(270)의 제어에 따라 문서 렌더링 작업의 중단, 즉 가상 함수 수행의 대기을 해제하고, 삽입된 실제 함수를 수행하여 문서의 렌더링 작업을 완료한다(S460).When the actual code is inserted, the document rendering unit 210 terminates the document rendering operation, that is, waits for the execution of the virtual function under the control of the control unit 270, and completes the rendering operation of the document by executing the inserted actual function (S460).

일 실시예에서, 문서 렌더링부(210)는 복호화된 실제 함수에 대한 호출이 발생하지 않거나 또는 문서에 대한 렌더링이 종료된 경우 가상 코드 대기 영역을 삭제할 수 있다.In one embodiment, the document rendering unit 210 may delete the virtual code waiting area if no call to the decoded physical function occurs or rendering of the document ends.

이를 통해, 암호화된 실제 코드는 문서 렌더링 과정에서 비휘발성 메모리 상의 가상 코드 대기 영역에 일시적으로 생성 및 소멸됨으로써 코드 내용의 외부 노출을 방지하고, 해커와 같은 제3자에 의한 공격 등을 예방할 수 있다.
As a result, the encrypted actual code is temporarily generated and extinguished in the waiting area of the virtual code on the nonvolatile memory during the document rendering process, thereby preventing external exposure of the code contents and preventing an attack by a third party such as a hacker .

상기에서는 본 출원의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

110 : 웹 영역
111 : 하이브리드 어플리케이션 리소스
112 : 가상 함수
120 : DOM 영역
130 : Native 영역
131 : 실제 함수
210 : 문서 렌더링부
220 : 가상 코드 처리부
230 : 코드 검색부
240 : 코드 보안부
250 : 실제 코드 처리부
260 : 데이터베이스
261 : 암호화 코드 데이터베이스
110: Web area
111: Hybrid application resource
112: virtual function
120: DOM area
130: Native area
131: Physical Function
210: document rendering unit
220: virtual code processor
230: code search unit
240:
250: Actual code processor
260: Database
261: Encryption code database

Claims (25)

(a) 가상 코드(Virtual Code)를 포함하는 문서를 컴퓨팅 디바이스에 렌더링하는 동안에 상기 가상 코드가 독출되면 가상 코드 대기 영역에서 가상 코드에 대한 처리를 대기하고 암호화 코드 데이터베이스에서 실제 코드를 검색하는 단계; 및
(b) 상기 검색된 실제 코드(Actual Code)를 복호화하여 상기 가상 코드 대기 영역에 삽입시키는 단계를 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
(a) when the virtual code is read out while rendering a document including a virtual code to a computing device, waiting for processing of the virtual code in the virtual code waiting area and searching for the actual code in the encrypted code database; And
(b) decrypting the retrieved actual code and inserting the decrypted actual code into the virtual code waiting area.
제1항에 있어서, 상기 가상 코드는
스크립트(Java Script)에 있는 가상 함수, 가상 실행 코드(HTML 마크 업 정보), 가상 리소스(CSS) 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
The method of claim 1,
A virtual function in a script (Java Script), a virtual execution code (HTML markup information), and a virtual resource (CSS).
제2항에 있어서, 상기 (a) 단계는
상기 문서의 스크립트에 있는 특정 함수가 호출되면 상기 특정 함수가 상기 가상 함수인지 여부를 체크하는 단계를 더 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
3. The method of claim 2, wherein step (a)
Further comprising the step of: if the specific function in the script of the document is called, checking whether the specific function is the virtual function.
제3항에 있어서, 상기 (a) 단계는
상기 특정 함수가 실행 코드를 포함하지 않는 함수에 해당하는 경우에는 상기 특정 함수를 상기 가상 함수로 결정하는 단계를 더 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
4. The method of claim 3, wherein step (a)
And determining the specific function as the virtual function when the specific function corresponds to a function that does not include an executable code.
제2항에 있어서, 상기 (a) 단계는
상기 가상 함수가 호출되면 상기 문서의 문서 객체 모델(DOM, Document Object Model)에 진입하는 단계를 더 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
3. The method of claim 2, wherein step (a)
And when the virtual function is called, entering a document object model (DOM) of the document.
제5항에 있어서, 상기 (a) 단계는
상기 진입 후에 상기 실제 함수가 수행되기 전까지 상기 가상 코드 대기 영역을 상기 문서 객체 모델 내에 생성하는 단계를 더 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
6. The method of claim 5, wherein step (a)
Generating the virtual code wait area in the document object model until the actual function is performed after the entry. ≪ Desc / Clms Page number 21 >
제6항에 있어서, 상기 가상 코드 대기 영역은
비휘발성 메모리에 저장되지 아니하고 휘발성 메모리 상에 존재하는 것을 특징으로 하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
7. The method of claim 6, wherein the virtual code waiting area
Wherein the non-volatile memory is present in the volatile memory without being stored in the non-volatile memory.
제2항에 있어서, 상기 (a) 단계는
해시 함수(hashing function)를 통해 상기 가상 함수에 대한 해시 값을 계산하는 단계; 및
상기 가상 함수에 대한 해시 값을 기초로 상기 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출하는 단계를 더 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
3. The method of claim 2, wherein step (a)
Calculating a hash value for the virtual function through a hashing function; And
Detecting a location of an actual function in the encryption code database based on a hash value for the virtual function.
제2항에 있어서, 상기 (a) 단계는
가상 함수와 실제 함수를 포함하는 함수 매핑 테이블을 기초로 상기 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출하는 단계를 더 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
3. The method of claim 2, wherein step (a)
Further comprising detecting a location of an actual function in the encryption code database based on a function mapping table including a virtual function and an actual function.
제2항에 있어서, 상기 (b) 단계는
상기 가상 코드 대기 영역에 대기 중인 가상 함수를 상기 복호화된 실제 함수로 치환하는 단계를 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
3. The method of claim 2, wherein step (b)
And replacing the virtual function waiting in the virtual code wait area with the decoded actual function.
제2항에 있어서,
(c) 상기 가상 함수 수행의 대기를 해제하고 상기 삽입된 실제 함수를 수행하여 상기 문서의 렌더링을 완료하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
3. The method of claim 2,
(c) releasing the wait for the virtual function execution and performing the inserted actual function to complete the rendering of the document.
제11항에 있어서,
특정 시간 내에 상기 복호화된 실제 함수에 대한 호출이 발생하지 않거나 또는 상기 문서에 대한 렌더링이 종료된 경우 상기 가상 코드 대기 영역을 삭제하는 단계를 더 포함하는 컴퓨터 실행 가능한 하이브리드 어플리케이션 수행 방법.
12. The method of claim 11,
Further comprising deleting the virtual code wait area if a call to the decrypted actual function does not occur within a certain time or if rendering to the document is terminated.
가상 코드를 포함하는 문서를 컴퓨팅 디바이스에 렌더링하는 동안에 상기 가상 코드가 독출되면 가상 코드 대기 영역에서 가상 코드에 대한 처리를 대기하고 암호화 코드 데이터베이스에서 실제 코드를 검색하는 코드 검색부;
상기 검색된 실제 코드를 복호화하는 코드 보안부; 및
상기 가상 코드 대기 영역에 삽입시키는 실제 코드 처리부를 포함하는 컴퓨터 실행 장치.
A code retrieving unit for, when the virtual code is read while rendering the document including the virtual code to the computing device, waiting for processing of the virtual code in the virtual code waiting area and retrieving the actual code from the encrypted code database;
A code security unit for decrypting the retrieved actual code; And
And inserting the virtual code into the virtual code waiting area.
제13항에 있어서, 상기 가상 코드는
스크립트(Java Script)에 있는 가상 함수, HTML 마크 업 정보, 가상 리소스(CSS) 중 적어도 하나를 포함하는 것을 특징으로 하는 컴퓨터 실행 장치.
14. The method of claim 13,
And at least one of a virtual function, a HTML markup information, and a virtual resource (CSS) in a script (Java Script).
제14항에 있어서,
상기 문서의 스크립트에 있는 특정 함수가 호출되면 상기 특정 함수가 상기 가상 함수인지 여부를 체크하는 가상 코드 처리부를 더 포함하는 컴퓨터 실행 장치.
15. The method of claim 14,
Further comprising a virtual code processing unit for checking whether the specific function is the virtual function when a specific function in the script of the document is called.
제15항에 있어서, 상기 가상 코드 처리부는
상기 특정 함수가 실행 코드를 포함하지 않는 함수에 해당하는 경우에는 상기 특정 함수를 상기 가상 함수로 결정하는 것을 특징으로 하는 컴퓨터 실행 장치.
16. The apparatus of claim 15, wherein the virtual code processing unit
And determines the specific function as the virtual function when the specific function corresponds to a function not including an executable code.
제14항에 있어서, 상기 가상 코드 처리부는
상기 가상 함수가 호출되면 상기 문서의 문서 객체 모델(DOM, Document Object Model)에 진입하는 것을 특징으로 하는 컴퓨터 실행 장치
15. The apparatus of claim 14, wherein the virtual code processing unit
And when the virtual function is called, enters a document object model (DOM) of the document.
제17항에 있어서, 상기 가상 코드 처리부는
상기 진입 후에 상기 실제 함수가 수행되기 전까지 상기 가상 코드 대기 영역을 상기 문서 객체 모델 내에 생성하는 것을 특징으로 하는 컴퓨터 실행 장치.
18. The apparatus of claim 17, wherein the virtual code processing unit
Wherein the virtual code wait area is created in the document object model until the actual function is performed after the entry.
제18항에 있어서, 상기 가상 코드 대기 영역은
비휘발성 메모리에 저장되지 아니하고 휘발성 메모리 상에 존재하는 것을 특징으로 하는 컴퓨터 실행 장치.
19. The method of claim 18, wherein the virtual code waiting area
And is present in the volatile memory without being stored in the non-volatile memory.
제14항에 있어서, 상기 코드 검색부는
해시 함수(hashing function)를 통해 상기 가상 함수에 대한 해시 값을 계산하고, 상기 가상 함수에 대한 해시 값을 기초로 상기 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출하는 것을 특징으로 하는 컴퓨터 실행 장치.
15. The apparatus of claim 14, wherein the code searching unit
Calculating a hash value for the virtual function through a hashing function and detecting a location of an actual function in the encryption code database based on the hash value for the virtual function.
제14항에 있어서, 상기 코드 검색부는
가상 함수와 실제 함수를 포함하는 함수 매핑 테이블을 기초로 상기 암호화 코드 데이터베이스에서 실제 함수의 위치를 검출하는 것을 특징으로 하는 컴퓨터 실행 장치.
15. The apparatus of claim 14, wherein the code searching unit
Wherein the location of an actual function is detected in the encryption code database based on a function mapping table including a virtual function and an actual function.
제21항에 있어서, 상기 실제 코드 처리부는
상기 가상 코드 대기 영역에 대기 중인 가상 함수를 상기 복호화된 실제 함수로 치환하는 것을 특징으로 하는 컴퓨터 실행 장치.
22. The apparatus of claim 21, wherein the actual code processing unit
And replaces the virtual function waiting in the virtual code waiting area with the decoded actual function.
제14항에 있어서,
상기 가상 함수 수행의 대기를 해제하고 상기 삽입된 실제 함수를 수행하여 상기 문서의 렌더링을 완료하는 문서 렌더링부를 더 포함하는 컴퓨터 실행 장치.
15. The method of claim 14,
Further comprising a document rendering unit for releasing the wait for the execution of the virtual function and performing the inserted actual function to complete the rendering of the document.
제23항에 있어서, 상기 문서 렌더링부는
특정 시간 내에 상기 복호화된 실제 함수에 대한 호출이 발생하지 않거나 또는 상기 문서에 대한 렌더링이 종료된 경우 상기 가상 코드 대기 영역을 삭제하는 것을 특징으로 하는 컴퓨터 실행 장치.
24. The apparatus of claim 23, wherein the document renderer
And deletes the virtual code waiting area when a call to the decrypted actual function does not occur within a specific time or when rendering of the document is terminated.
(a) 가상 코드를 포함하는 문서를 컴퓨팅 디바이스에 렌더링하는 동안에 상기 가상 코드가 독출되면 가상 코드 대기 영역에서 가상 코드에 대한 처리를 대기하고 암호화 코드 데이터베이스에서 실제 코드를 검색하는 기능; 및
(b) 상기 검색된 실제 코드를 복호화하여 상기 가상 코드 대기 영역에 삽입시키는 기능을 포함하는 기록매체.
(a) a function of waiting for processing of a virtual code in a virtual code waiting area and retrieving an actual code in an encrypted code database when the virtual code is read while rendering a document containing the virtual code to a computing device; And
(b) decrypting the retrieved actual code and inserting it into the virtual code waiting area.
KR1020130060923A 2013-05-29 2013-05-29 Computer-executable hybrid application performing method, coumputer-excutable device and storage media performing the same KR101499535B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130060923A KR101499535B1 (en) 2013-05-29 2013-05-29 Computer-executable hybrid application performing method, coumputer-excutable device and storage media performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130060923A KR101499535B1 (en) 2013-05-29 2013-05-29 Computer-executable hybrid application performing method, coumputer-excutable device and storage media performing the same

Publications (2)

Publication Number Publication Date
KR20140140288A true KR20140140288A (en) 2014-12-09
KR101499535B1 KR101499535B1 (en) 2015-03-06

Family

ID=52458193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130060923A KR101499535B1 (en) 2013-05-29 2013-05-29 Computer-executable hybrid application performing method, coumputer-excutable device and storage media performing the same

Country Status (1)

Country Link
KR (1) KR101499535B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017061654A1 (en) * 2015-10-06 2017-04-13 (주)유라클 Method for securing web resource of hybrid application, and computer-readable recording medium, onto which program for executing method according thereto is recorded
JP2019082712A (en) * 2017-08-09 2019-05-30 株式会社センストーン Virtual code providing system, virtual code generator, virtual code verifying device, virtual code providing method and virtual code providing program

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101999209B1 (en) * 2016-12-30 2019-07-11 홍익대학교 산학협력단 A system and method for encryption of pointers to virtual function tables
WO2019031644A1 (en) * 2017-08-09 2019-02-14 주식회사 센스톤 Virtual card number-based financial transaction provision system, virtual card number generation device and virtual card number verification device, virtual card number-based financial transaction provision method and virtual card number-based financial transaction provision program
KR101978812B1 (en) * 2017-08-09 2019-05-15 주식회사 센스톤 System, method and program for providing financial transaction by vritual card number, vritual card number generator and vritual card number verification device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110093468A (en) * 2010-02-12 2011-08-18 삼성전자주식회사 User terminal device, server and control method thereof
KR101673610B1 (en) * 2010-09-17 2016-11-07 주식회사 엘지유플러스 Resource protection system for application and method for the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017061654A1 (en) * 2015-10-06 2017-04-13 (주)유라클 Method for securing web resource of hybrid application, and computer-readable recording medium, onto which program for executing method according thereto is recorded
JP2019082712A (en) * 2017-08-09 2019-05-30 株式会社センストーン Virtual code providing system, virtual code generator, virtual code verifying device, virtual code providing method and virtual code providing program

Also Published As

Publication number Publication date
KR101499535B1 (en) 2015-03-06

Similar Documents

Publication Publication Date Title
TWI530874B (en) Method and apparatus for generating application installation packages and running applications
US20170295013A1 (en) Method for fulfilling a cryptographic request requiring a value of a private key
US9576147B1 (en) Security policy application through data tagging
KR101499535B1 (en) Computer-executable hybrid application performing method, coumputer-excutable device and storage media performing the same
CN107391171B (en) Method for solving iOS thermal repair problem and user terminal
US20080270806A1 (en) Execution Device
US7962952B2 (en) Information processing apparatus that executes program and program control method for executing program
CN104331644A (en) Transparent encryption and decryption method for intelligent terminal file
US20070083378A1 (en) Secure application programming interface
EP3712764A1 (en) Fpga cloud host development method and system
US9940442B2 (en) Supporting secondary use of content of electronic work
JP2010176431A (en) Program, method and apparatus for access control
WO2011134207A1 (en) Method for protecting software
KR101472346B1 (en) Method for providing encrypted web application, terminal supporting the same, and recording medium thereof
WO2016206393A1 (en) Method and apparatus for managing application and method and apparatus for implementing read-write operation
CN108985096B (en) Security enhancement and security operation method and device for Android SQLite database
US9507922B1 (en) System, method, and computer program for conditionally implementing protected content
Tedeschi et al. Information security and threats in mobile appliances
CN111143879A (en) Android platform SD card file protection method, terminal device and storage medium
JP6755539B2 (en) Methods and equipment for publishing copyrighted works on networks
JP6798669B2 (en) Methods and devices for hiding user information contained in applications
JP2008234539A (en) Information processing apparatus, file processing method and program
JP2009169868A (en) Storage area access device and method for accessing storage area
KR101556908B1 (en) Apparatus For Protecting Binary Code
EP4365763A1 (en) Certified copy paste

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 6