KR20090096769A - 실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 - Google Patents
실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 Download PDFInfo
- Publication number
- KR20090096769A KR20090096769A KR1020080021792A KR20080021792A KR20090096769A KR 20090096769 A KR20090096769 A KR 20090096769A KR 1020080021792 A KR1020080021792 A KR 1020080021792A KR 20080021792 A KR20080021792 A KR 20080021792A KR 20090096769 A KR20090096769 A KR 20090096769A
- Authority
- KR
- South Korea
- Prior art keywords
- decryption
- block
- execution
- encryption
- executed
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 154
- 238000004886 process control Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 8
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
- G06F12/125—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list being generated by decoding an array or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims (4)
- 복수 개의 블록단위로 암호화된 프로그램의 실행을 위한 복호화 방법으로서,이미 실행된 복호블록을 복호화 이전에 임시로 저장한 암호블록으로 복원하고, 다음에 실행될 특정 암호블록만을 실시간으로 복호화하여 복호블록으로 변환하는 것을 특징으로 하는 암호화된 프로그램의 블록단위 실행을 위한 실시간 복호화 방법.
- 제 1 항에 있어서,상기 실시간 복호화는,(A) 이미 실행된 복호블록을 암호블록으로 복원하고, 다음에 실행할 암호블록을 복호화하며, 복호화요청명령어를 덮어씀으로써 하기 실행프로세스를 제어하는 복호화프로세스와;(B) 복호화된 블록의 명령어를 실행하고 상기 복호화프로세스에게 다음에 실행될 암호블록의 복호화를 요청하는 실행프로세스;에 의해 이루어지는 것을 특징으로 하는 암호화된 프로그램의 블록단위 실행을 위한 실시간 복호화 방법.
- 제 2 항에 있어서,상기 복호화프로세스는(a) 복호블록에 대응되는 암호블록을 임시로 저장하는 암호블록버퍼;(b) 다음에 실행될 암호블록을 복호화하기 위한 복호화요청명령어를 상기 암호블록에 덮어쓰며, 하기 복호화모듈의 작동을 제어하는 제어모듈; 및(c) 상기 제어모듈의 명령에 따라 상기 암호블록버퍼에 저장된 암호블록을 복호화하여 실행프로세스의 코드영역에 덮어쓰는 복호화모듈;로 구성된 것을 특징으로 하는 암호화 프로그램의 블록단위 실행을 위한 실시간 복호화 방법.
- 제 2 항 또는 제 3 항에 있어서,상기 복호화프로세스는,Jump 명령어, 조건부 Jump 명령어, Call 명령어, Return 명령어 등의 비순차적인 제어이동의 경우에도 다음에 실행할 암호블록을 결정하고 복호화요청명령어를 덮어쓰는 것을 특징으로 하는 암호화 프로그램의 블록단위 실행을 위한 실시간 복호화 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080021792A KR100950456B1 (ko) | 2008-03-10 | 2008-03-10 | 실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080021792A KR100950456B1 (ko) | 2008-03-10 | 2008-03-10 | 실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090096769A true KR20090096769A (ko) | 2009-09-15 |
KR100950456B1 KR100950456B1 (ko) | 2010-04-02 |
Family
ID=41356313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080021792A KR100950456B1 (ko) | 2008-03-10 | 2008-03-10 | 실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100950456B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014119915A1 (en) * | 2013-01-30 | 2014-08-07 | Samsung Electronics Co., Ltd. | Method for increasing the security of software |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100811469B1 (ko) * | 2005-12-08 | 2008-03-07 | 한국전자통신연구원 | 파일시스템을 이용한 암호화 파일의 실시간 복호화 방법 |
-
2008
- 2008-03-10 KR KR1020080021792A patent/KR100950456B1/ko active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014119915A1 (en) * | 2013-01-30 | 2014-08-07 | Samsung Electronics Co., Ltd. | Method for increasing the security of software |
Also Published As
Publication number | Publication date |
---|---|
KR100950456B1 (ko) | 2010-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9911008B2 (en) | Microprocessor with on-the-fly switching of decryption keys | |
CN104918116A (zh) | 用于智能终端的资源播放方法及系统 | |
US20120144208A1 (en) | Indexed table based code encrypting/decrypting device and method thereof | |
US9798898B2 (en) | Microprocessor with secure execution mode and store key instructions | |
KR20130120985A (ko) | 소프트웨어 무결성을 보장하기위한 프로세서 실행 방법 | |
JP2009512087A (ja) | プログラム実行可能イメージの暗号化 | |
JP2015504279A (ja) | 鍵駆動の難読化を用いる仮想マシンデバイス及び方法 | |
JP2006085676A (ja) | 暗号化命令処理装置 | |
US20170046280A1 (en) | Data processing device and method for protecting a data processing device against attacks | |
CN106375080B (zh) | 一种flash文件的加密及解密方法及其装置 | |
US20100064125A1 (en) | Programmable device and booting method | |
CN109325322B (zh) | 用于嵌入式平台的软件知识产权保护系统和方法 | |
US9251356B2 (en) | Module encryption/decryption program | |
KR100950456B1 (ko) | 실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 | |
KR20070061222A (ko) | 파일시스템을 이용한 암호화 파일의 실시간 복호화 방법 | |
JP6899308B2 (ja) | 情報処理装置および情報処理装置のデータ処理方法 | |
KR101548211B1 (ko) | 역공학을 방지하기 위한 암호화 방법 | |
JP2020187184A (ja) | 暗号復号装置 | |
JP2009253490A (ja) | メモリシステムの暗号化方式 | |
KR101696900B1 (ko) | 임베디드 시스템의 실행코드 암호화 및 복호화장치 및 이를 이용하여 정보유출 방지기능을 가지는 임베디드 시스템 | |
CN101458756A (zh) | 文件实时解密方法 | |
US20150312030A1 (en) | Initialization vectors generation from encryption/decryption | |
WO2015012782A1 (en) | Dynamic obfuscation processing | |
US20160042160A1 (en) | Apparatus and method for preventing cloning of code | |
JP2011053749A (ja) | デバッグ方法、デバッグ装置、及びトランスレータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
AMND | Amendment | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130304 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140228 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150302 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160304 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170220 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20180219 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20190226 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20200224 Year of fee payment: 11 |