KR101930596B1 - 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법 - Google Patents

데이터 히든 장치 및 이에 있어서 프로그램 구동 방법 Download PDF

Info

Publication number
KR101930596B1
KR101930596B1 KR1020160129141A KR20160129141A KR101930596B1 KR 101930596 B1 KR101930596 B1 KR 101930596B1 KR 1020160129141 A KR1020160129141 A KR 1020160129141A KR 20160129141 A KR20160129141 A KR 20160129141A KR 101930596 B1 KR101930596 B1 KR 101930596B1
Authority
KR
South Korea
Prior art keywords
address
hidden area
program
command
function
Prior art date
Application number
KR1020160129141A
Other languages
English (en)
Other versions
KR20180038262A (ko
Inventor
류연승
신정미
Original Assignee
명지대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 명지대학교 산학협력단 filed Critical 명지대학교 산학협력단
Priority to KR1020160129141A priority Critical patent/KR101930596B1/ko
Publication of KR20180038262A publication Critical patent/KR20180038262A/ko
Application granted granted Critical
Publication of KR101930596B1 publication Critical patent/KR101930596B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1066Hiding content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • G06F2221/0748

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

악의의 공격자로부터 중요한 정보를 보호할 수 있는 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법이 개시된다. 상기 데이터 히든 장치는 정보를 기록한 히든 영역을 관리하는 히든 영역 관리부 및 프로그램 명령을 실행시키는 프로그램 구동부를 포함한다. 여기서, CALL 명령에 따라 실행된 함수 내의 RETURN 명령 실행시, 상기 프로그램 구동부는 상기 히든 영역에 해당하는 주소가 아닌 상기 히든 영역 외의 영역에 해당하는 주소를 호출한다.

Description

데이터 히든 장치 및 이에 있어서 프로그램 구동 방법{DATA HIDDEN DEVICE AND METHOD OF EXECUTING PROGRAM INSTRUCTIONS IN THE SAME}
본 발명은 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법에 관한 것이다.
최근, 사물 인터넷(Internet of Things, IoT) 기기들이 등장하여 활용되고 있다. 그러나, 이러한 IoT 기기들은 악의의 공격자로부터 통신을 위해 사용되는 중요한 암호화 키 등을 보호할 수 있는 방법이 없었다.
따라서, 악의의 공격자로부터 공격당할 위험이 많았다.
KR 10-2009-0065232 A
본 발명은 악의의 공격자로부터 중요한 정보를 보호할 수 있는 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법을 제공하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 데이터 히든 장치는 정보를 기록한 히든 영역을 관리하는 히든 영역 관리부; 및 프로그램 명령을 실행시키는 프로그램 구동부를 포함한다. 여기서, CALL 명령에 따라 실행된 함수 내의 RETURN 명령 실행시, 상기 프로그램 구동부는 상기 히든 영역에 해당하는 주소가 아닌 상기 히든 영역 외의 영역에 해당하는 주소를 호출한다.
본 발명의 다른 실시예에 따른 데이터 히든 장치는 주소에 대한 정보를 저장하는 저장부; 및 상기 주소들에 매칭되는 프로그램 명령들을 실행시키는 프로세서를 포함한다. 여기서, 특정 정보를 기록한 히든 영역의 주소 이전의 주소에서 해당하는 CALL 명령에 따라 실행된 함수에서 RETURN 명령이 실행되는 경우, 상기 프로세서는 상기 히든 영역 외의 영역에 해당하는 주소를 호출한다.
본 발명의 또 다른 실시예에 따른 데이터 히든 장치는 주소에 대한 정보를 저장하는 저장부; 및 상기 주소들에 매칭되는 프로그램 명령들을 실행시키는 프로세서를 포함하며, 상기 프로세서는 순차적으로 프로그램 명령들을 실행시킨다. 여기서, 특정 정보를 기록한 히든 영역 직전의 프로그램 명령 실행 후 상기 히든 영역의 프로그램을 실행시킴이 없이 상기 히든 영역을 건너뛴 후 상기 히든 영역 다음의 프로그램 명령을 실행시킨다.
본 발명의 일 실시예에 따른 데이터 히든 장치에서의 프로그램 구동 방법은 프로그램 명령 실행 중 히든 영역 전의 주소에 해당하는 CALL 명령에 따라 호출된 함수를 실행시키는 단계; 상기 함수 실행 중 RETURN 명령에 따라 상기 히든 영역 외의 영역에 해당하는 주소를 호출하는 단계; 및 상기 히든 영역의 프로그램 명령의 실행없이 상기 호출된 주소에 해당하는 프로그램 명령을 실행시키는 단계를 포함한다. 여기서, 상기 히든 영역은 특정 정보를 기록한다.
본 발명의 일 실시예에 따른 프로그램 기록 매체는 프로그램 명령 실행 중 히든 영역 전의 주소에 해당하는 CALL 명령에 따라 호출된 함수를 실행시키는 단계; 상기 함수 실행 중 RETURN 명령에 따라 상기 히든 영역 외의 영역에 해당하는 주소를 호출하는 단계; 및 상기 히든 영역의 프로그램 명령의 실행없이 상기 호출된 주소에 해당하는 프로그램 명령을 실행시키는 단계를 포함한다. 여기서, 상기 히든 영역은 특정 정보를 기록한다.
본 발명에 따른 데이터 히든 장치 및 프로그램 구동 방법은 RETURN 명령시 히든 영역의 주소 다음의 주소를 호출시키며, 따라서 악의의 공격자로부터 히든 영역 내의 중요한 정보를 보호할 수 있다.
도 1은 본 발명의 일 실시예에 따른 데이터 히든 장치에서의 프로그램 구동 과정을 도시한 순서도이다.
도 2는 본 발명의 일 실시예에 따른 데이터 히든 장치에서의 프로그램 구동 과정을 도시한 도면이다.
도 3은 일반적인 프로그램 구동 과정을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 히든 장치를 도시한 블록도이다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 발명은 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법에 관한 것으로서, 데이터, 특히 중요한 정보를 히든 영역에 기록할 수 있다. 이 때, 상기 데이터 히든 장치는 함수에서의 RETURN 명령시 히든 영역 외의 영역의 주소에 해당하는 프로그램 명령이 실행되도록 제어한다. 따라서, 악의의 공격자가 히든 영역의 정보로 접근할 수가 없어서 중요한 정보를 보호할 수 있다.
상기 히든 영역에 기록되는 데이터는 중요한 정보로서, 예를 들어 통신을 위한 암호화 키(Cryptography key)일 수 있다. 이러한 암호화 키가 악의의 공격자에게 노출되면 악의의 공격자에게 치명적인 공격을 당할 위험에 노출될 수 있기 때문이다. 따라서, 본 발명은 키 보호 기술(Key protection scheme)을 사용하여 암호화 키 등을 보호한다.
한편, 데이터 히든 장치는 IoT 디바이스 등 데이터를 감출 수 있는 히든 영역을 포함하는 한 제한이 없다.
일 실시예에 따르면, 본 발명의 데이터 히든 장치는 함수 호출 혼동 기술(function call obfuscation technique)을 사용하여 악의의 공격자가 중요한 정보를 용이하게 검출할 수 없도록 하여 중요한 정보를 보호한다.
이하, 본 발명의 다양한 실시예들을 첨부된 도면을 참조하여 상술하겠다.
도 1은 본 발명의 일 실시예에 따른 데이터 히든 장치에서의 프로그램 구동 과정을 도시한 순서도이다.
도 1을 참조하면, 사용자의 명령에 따라 프로그램이 시작된다(S100). 즉, 프로그램 내의 주소들에 해당하는 프로그램 명령들(program instructions)이 순차적으로 실행된다.
프로그램 명령들이 순차적으로 실행되는 중에 함수 호출(CALL) 명령이 실행되면, 해당 함수(Function)가 호출된다(S102).
일 실시예에 따르면, CALL 명령의 주소의 다음 주소부터 히든 영역이 존재할 수 있으며, 상기 히든 영역에는 암호화 키 등과 같은 중요한 정보가 기록되어 있다.
이어서, 호출된 함수가 실행된다(S104).
계속하여, 상기 함수의 실행 종료에 따라 RETURN 명령이 실행되면, CALL 명령의 주소의 다음 주소가 아닌 히든 영역의 주소의 다음 주소에 해당하는 프로그램 명령이 실행된다(S108).
즉, 함수로부터 리턴시 히든 영역 내의 주소가 아닌 히든 영역 외의 주소로 리턴된다. 따라서, 악의의 공격자는 히든 영역으로 직접적으로 접근할 수가 없으며, 그 결과 히든 영역에 기록된 중요한 정보가 악의의 공격자로부터 보호될 수 있다.
이하, 이러한 데이터 히든 장치에서의 프로그램 구동 방법의 예시를 살펴보겠다.
도 2는 본 발명의 일 실시예에 따른 데이터 히든 장치에서의 프로그램 구동 과정을 도시한 도면이고, 도 3은 일반적인 프로그램 구동 과정을 도시한 도면이다.
우선, 도 3을 참조하여 일반적인 프로그램 구동 과정을 살펴보겠다.
프로그램이 시작되면, 순차적인 주소들에 해당하는 프로그램 명령들이 실행된다.
프로그램 명령들 실행 중 CALL 명령이 나오면, CALL 명령에 해당하는 함수가 호출된다. 도 3에서는 주소(0x1020)에 해당하는 프로그램 명령이 'CALL Function 1<0x1060>'이며, 따라서 <0x1060>에 해당하는 Function1이 호출된다.
이어서, 도 3에 도시된 바와 같이, Function1의 프로그램 명령들이 순차적으로 실행된다.
계속하여, Function1의 프로그램 명령들 실행 중 'RETURN' 명령이 실행되면, 'RETURN' 명령이 'CALL' 명령의 주소 다음의 주소로 이동하라는 명령이므로 도 3에 도시된 바와 같이 주소(0x1024)로 이동된다. 즉, 주소(0x1024)에 해당하는 프로그램 명령부터 프로그램 명령들이 순차적으로 실행된다.
이 경우, 주소(0x1024)에 암화화 키 등과 같은 중요한 정보가 기록되어 있었다면, 악의의 공격자에 의해 중요한 정보가 용이하게 탐지될 수 있다.
따라서, 이러한 문제를 방지하기 위하여, 본 발명은 히든 영역을 설정한다.
이하, 도 2를 참조하여 본 발명의 프로그램 구동 과정을 살펴보겠다. 다만, 설명의 편의를 위하여 메모리 주소가 16 비트 길이를 가진다고 가정하겠다. 따라서, 본 발명의 데이터 히든 장치는 CPU 내의 고속 저장 장소인 16 비트 레지스터들(registers)을 사용할 수 있다. 예를 들어, 상기 데이터 히든 장치는 BH 레지스터, BL 레지스터, CX 레지스터 및 DX 레지스터 등을 사용할 수 있다.
물론, 메모리 주소가 32 비트 길이를 가지면, EBX 레지스터, ECX 레지스터, EDX 레지스터 등이 사용될 것이다.
우선, 본 발명의 데이터 히든 장치는 주소(Ox103C 내지 0x1048)에 해당하는 영역을 히든 영역으로 설정하고, 중요한 정보를 주소(Ox103C 내지 0x1048)에 해당하는 메모리 영역에 기록한다.
또한, 주소(0x104C)가 2개의 'MOV' 명령들을 이용함에 의해 BH 레지스터 및 BL 레지스터에 저장되고, 2개의 'PUSH' 명령들이 스택(Stack) 상의 메모리 주소를 로딩한다.
프로그램 구동 과정을 살펴보면, 프로그램이 시작되며, 그 결과 순차적인 주소들에 해당하는 프로그램 명령들이 실행된다.
프로그램 명령들 실행 중 CALL 명령이 실행되면, CALL 명령에 해당하는 함수가 호출된다. 도 2에서는 주소(0x1038)에 해당하는 프로그램 명령이 'CALL_fastcall Function2<0x2000>'이며, 따라서 주소(0x2000)에 해당하는 Function2가 호출된다.
이어서, 도 2에 도시된 바와 같이, Function2의 프로그램 명령들이 순차적으로 실행된다.
한편, Function1의 메모리 주소는 Function2에 의해 호출된다. 주소(0x1060)를 Function2의 파라미터들로 패스한다. Function2가 fastcall calling convention을 이용하므로, 'PUSH' 명령이 아닌 CX 레지스터 및 DX 레지스터를 이용한다. 그런 후, CX 레지스터 및 DX 레지스터에 저장된 주소(0x1060)가 스택에 업로드된다.
계속하여, 주소(0x2014)의 'RETURN' 명령이 실행되면, Function2는 종료되고 Function1이 실행된다.
이어서, 도 2에 도시된 바와 같이, Function1의 프로그램 명령들이 순차적으로 실행된다.
계속하여, 주소(0x1080)의 'RETURN' 명령이 실행되면, FUNCTION1은 종료되고 스택 상의 주소(Ox104C)가 호출된다.
결과적으로, 주소(0x1080)의 'RETURN' 명령이 실행될지라도, 히든 영역의 주소가 전혀 호출되지 않는다. 즉, 히든 영역 다음의 주소가 호출되며, 따라서 악의의 공격자는 히든 영역 내의 정보를 전혀 파악할 수가 없게 된다.
다음으로, 주소(Ox104C)에 해당하는 프로그램 명령이 실행된다.
정리하면, 본 발명의 데이터 히든 장치는 중요한 정보를 히든 영역에 기록하고 'RETURN' 명령이 실행될 지라도 히든 영역 외의 주소를 호출시킨다. 따라서, 히든 영역의 정보를 악의의 공격자로부터 보호할 수 있다.
한편, 도 2에서는 Function2 및 Function1이 실행된 후 원래 코드로 복귀되었으나 Function2만 실행되고 원래 코드로 복귀될 수도 있다.
또한, 'RETURN' 명령시 히든 영역의 마지막 주소의 다음 주소가 호출되었으나, 히든 영역의 주소가 아닌 한 호출되는 주소에는 제한이 없다.
도 4는 본 발명의 일 실시예에 따른 데이터 히든 장치를 도시한 블록도이다.
도 4를 참조하면, 본 실시예의 데이터 히든 장치는 레지스터(410)를 포함하는 제어부(400), 프로그램 구동부(402), 히든 영역 관리부(404) 및 메모리(406)를 포함한다.
프로그램 구동부(402)는 프로그램 명령들을 실행시키는 역할을 수행한다.
히든 영역 관리부(404)는 히든 영역을 설정하고 히든 영역에 암호화 키 등과 같은 정보를 기록하는 등 히든 정보를 관리한다.
메모리(406)는 프로그램 명령을 주소와 매칭시켜 저장하고, 각종 데이터를 저장한다.
레지스터(410)는 'MOV' 등과 같은 프로그램 명령을 저장한다.
제어부(400)는 데이터 히든 장치의 구성요소들의 동작을 전반적으로 제어한다.
다른 관점에서 살펴보면, 데이터 히든 장치는 주소에 대한 정보를 저장하는 저장부(레지스터, 메모리) 및 상기 주소들에 매칭되는 프로그램 명령들을 실행시키는 프로세서를 포함할 수 있다. 여기서, 특정 정보를 기록한 히든 영역의 주소 전의 주소에서의 CALL 명령이 따라 실행된 함수에서 RETURN 명령이 실행되는 경우, 상기 프로세서는 상기 히든 영역 외의 주소를 호출할 수 있다. 바람직하게는, 상기 프로세서는 상기 히든 영역의 주소 다음 주소를 호출하여 상기 호출된 주소에 해당하는 프로그램 명령을 실행시킬 수 있다.
또 다른 관점에서 살펴보면, 데이터 히든 장치는 주소에 대한 정보를 저장하는 저장부 및 상기 주소들에 매칭되는 프로그램 명령들을 실행시키는 프로세서를 포함하며, 상기 프로세서는 순차적으로 프로그램 명령들을 실행시킨다. 여기서, 특정 정보를 기록한 히든 영역 직전의 프로그램 명령 실행 후 상기 히든 영역의 프로그램 명령을 실행시킴이 없이 상기 히든 영역을 건너뛴 후 상기 히든 영역 다음의 프로그램 명령을 실행시킬 수 있다.
한편, 전술된 실시예의 구성 요소는 프로세스적인 관점에서 용이하게 파악될 수 있다. 즉, 각각의 구성 요소는 각각의 프로세스로 파악될 수 있다. 또한 전술된 실시예의 프로세스는 장치의 구성 요소 관점에서 용이하게 파악될 수 있다.
또한 앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기한 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
400 : 제어부 402 : 프로그램 구동부
404 : 히든 영역 관리부 406 : 메모리
410 : 레지스터

Claims (12)

  1. 프로그램 명령을 저장하는 레지스터;
    상기 레지스터 상에 적어도 하나의 주소를 포함하는 히든 영역을 설정하고, 상기 히든 영역에 포함된 적어도 하나의 주소에 보호되어야 할 정보를 기록하는 히든 영역 관리부; 및
    상기 레지스터에 저장된 프로그램 명령을 실행시키는 프로그램 구동부를 포함하되,
    상기 히든 영역에 포함된 적어도 하나의 주소는 CALL 명령을 저장한 상기 레지스터의 주소의 다음 주소로부터 시작되는 적어도 하나의 주소이고,
    상기 CALL 명령에 따라 상기 레지스터의 특정 주소들에 저장된 함수가 실행되며, 상기 함수 내에서 RETURN 명령이 실행되는 경우, 상기 프로그램 구동부는 상기 RETURN 명령에 대응하여 상기 히든 영역의 마지막 주소의 다음 주소를 호출하고, 상기 호출된 주소에 해당하는 프로그램 명령을 실행하는 것을 특징으로 하는 데이터 히든 장치.
  2. 제1항에 있어서, 상기 정보는 암호화 키인 것을 특징으로 하는 데이터 히든 장치.
  3. 삭제
  4. 제1항에 있어서, 상기 프로그램 구동부는 상기 CALL 명령에 따라 제 1 함수를 실행시키고, 상기 제 1 함수의 RETURN 명령 실행 시 제 2 함수를 실행시키며, 상기 제 2 함수의 상기 RETURN 명령 실행 시 상기 히든 영역의 마지막 주소의 다음 주소를 호출하는 것을 특징으로 하는 데이터 히든 장치.
  5. 주소에 대한 정보를 저장하는 저장부; 및
    상기 주소들에 매칭되는 프로그램 명령들을 실행시키는 프로세서를 포함하되,
    상기 프로세서는
    상기 저장부 상에 적어도 하나의 주소를 포함하는 히든 영역을 설정하고, 상기 히든 영역에 포함된 적어도 하나의 주소에 보호되어야 할 정보를 기록하되, 상기 히든 영역에 포함된 적어도 하나의 주소는 CALL 명령을 저장한 상기 저장부의 주소의 다음 주소로부터 시작되는 적어도 하나의 주소이고,
    상기 CALL 명령을 실행하여 상기 저장부의 특정 주소들에 저장된 함수를 실행하되, 상기 함수 내에서 RETURN 명령이 실행되는 경우, 상기 RETURN 명령에 대응하여 상기 히든 영역의 마지막 주소의 다음 주소를 호출하고, 상기 호출된 주소에 해당하는 프로그램 명령을 실행하는 것을 특징으로 하는 데이터 히든 장치.
  6. 삭제
  7. 삭제
  8. 프로세서에서 수행되는 프로그램 구동 방법에 있어서,
    레지스터 상에 적어도 하나의 주소를 포함하는 히든 영역을 설정하는 단계 - 상기 히든 영역에 포함된 적어도 하나의 주소에는 보호되어야 할 정보가 기록되고, 상기 히든 영역에 포함된 적어도 하나의 주소는 CALL 명령을 저장한 상기 레지스터의 주소의 다음 주소로부터 시작되는 적어도 하나의 주소임 -;
    프로그램 명령 실행 중에 상기 CALL 명령에 따라 호출된 함수를 실행시키는 단계;
    상기 함수 실행 중 RETURN 명령에 대응하여 상기 히든 영역의 마지막 주소의 다음 주소를 호출하는 단계; 및
    상기 호출된 주소에 해당하는 프로그램 명령을 실행시키는 단계를 포함하는 데이터 히든 장치에서의 프로그램 구동 방법.
  9. 제8항에 있어서, 상기 정보는 암호화 키인 것을 특징으로 하는 데이터 히든 장치에서의 프로그램 구동 방법.
  10. 삭제
  11. 프로세서가 포함된 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 디지털 처리 장치에 의해 판독될 수 있는 프로그램 기록 매체로서,
    레지스터 상에 적어도 하나의 주소를 포함하는 히든 영역을 설정하는 단계 - 상기 히든 영역에 포함된 적어도 하나의 주소에는 보호되어야 할 정보가 기록되고, 상기 히든 영역에 포함된 적어도 하나의 주소는 CALL 명령을 저장한 상기 레지스터의 주소의 다음 주소로부터 시작되는 적어도 하나의 주소임 -;
    프로그램 명령 실행 중에 상기 CALL 명령에 따라 호출된 함수를 실행시키는 단계;
    상기 함수 실행 중 RETURN 명령에 대응하여 상기 히든 영역의 마지막 주소의 다음 주소를 호출하는 단계; 및
    상기 호출된 주소에 해당하는 프로그램 명령을 실행시키는 단계를 수행하는 것을 특징으로 하는 프로그램 기록 매체.












  12. 삭제
KR1020160129141A 2016-10-06 2016-10-06 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법 KR101930596B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160129141A KR101930596B1 (ko) 2016-10-06 2016-10-06 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160129141A KR101930596B1 (ko) 2016-10-06 2016-10-06 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법

Publications (2)

Publication Number Publication Date
KR20180038262A KR20180038262A (ko) 2018-04-16
KR101930596B1 true KR101930596B1 (ko) 2018-12-18

Family

ID=62082214

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160129141A KR101930596B1 (ko) 2016-10-06 2016-10-06 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법

Country Status (1)

Country Link
KR (1) KR101930596B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101130459B1 (ko) * 2004-04-30 2012-03-27 마이크로소프트 코포레이션 특수 목적 힙

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060069041A (ko) * 2004-12-17 2006-06-21 엘지전자 주식회사 버퍼 오버플로우로부터 복귀주소를 보호하기 위한 메모리스택 분리 방법 및 장치
KR20070041800A (ko) * 2005-10-17 2007-04-20 이종일 응용프로그램의 실행 코드 영역 수정을 통한 응용프로그램제어 방법
KR100858241B1 (ko) * 2006-10-25 2008-09-12 삼성전자주식회사 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법
JP6435834B2 (ja) * 2014-12-12 2018-12-12 富士通株式会社 命令実行制御装置、命令実行制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101130459B1 (ko) * 2004-04-30 2012-03-27 마이크로소프트 코포레이션 특수 목적 힙

Also Published As

Publication number Publication date
KR20180038262A (ko) 2018-04-16

Similar Documents

Publication Publication Date Title
KR101480821B1 (ko) 리턴-지향형 프로그래밍을 억제하기 위한 동적 실행 방지
US8583939B2 (en) Method and apparatus for securing indirect function calls by using program counter encoding
US8875165B2 (en) Computing device having a DLL injection function, and DLL injection method
KR20120117747A (ko) 사설 메모리 영역 내 복수의 보호된 파일들에 액세스하기 위해 공공 메모리 영역 내 가상 파일을 사용하는 저장장치 및 방법
US9734329B2 (en) Mitigating ROP attacks
WO2011134207A1 (zh) 软件保护方法
TW201512877A (zh) 防止二進位檔案被反編譯的方法和裝置
US8775826B2 (en) Counteracting memory tracing on computing systems by code obfuscation
EP2425369B1 (en) Memory device and method for adaptive protection of content
US8140809B2 (en) Computer implemented masked representation of data tables
EP2937803B1 (en) Control flow flattening for code obfuscation where the next block calculation needs run-time information
KR101930596B1 (ko) 데이터 히든 장치 및 이에 있어서 프로그램 구동 방법
CN103186746A (zh) 一种可执行文件的保护方法及系统
US20140283060A1 (en) Mitigating vulnerabilities associated with return-oriented programming
EP3040895A1 (en) System and method for protecting a device against return-oriented programming attacks
US20150059000A1 (en) Method and electronic device for protecting data
KR101771348B1 (ko) 패키지 파일에 대한 패킹 방법 및 시스템
JP6215468B2 (ja) プログラム保護装置
KR102677540B1 (ko) 네이티브 라이브러리를 보호하는 방법 및 시스템
CN107665175A (zh) 存储器分区隔离的方法、装置及电子设备
KR20090102422A (ko) 파일명을 이용하여 데이터를 보호하는 저장 시스템, 미들시스템 및 데이터 관리 방법
EP3286653A1 (en) Fine grained memory protection to thwart memory overrun attacks
CN114741713A (zh) 数据库加密方法、装置、电子设备和存储介质
KR101252188B1 (ko) 가상 메모리 데이터 접근 제어방법
CN103530572A (zh) 虚拟机文件保护方法和用户终端

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant