KR100950456B1 - 실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 - Google Patents
실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 Download PDFInfo
- Publication number
- KR100950456B1 KR100950456B1 KR1020080021792A KR20080021792A KR100950456B1 KR 100950456 B1 KR100950456 B1 KR 100950456B1 KR 1020080021792 A KR1020080021792 A KR 1020080021792A KR 20080021792 A KR20080021792 A KR 20080021792A KR 100950456 B1 KR100950456 B1 KR 100950456B1
- Authority
- KR
- South Korea
- Prior art keywords
- decryption
- block
- execution
- command
- encryption
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 158
- 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 Security & Cryptography (AREA)
- Computer Hardware Design (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)
- 삭제
- 삭제
- 복수 개의 블록단위로 암호화된 프로그램의 실행을 위한 실시간 복호화 방법으로서,(A) (a) 복호블록에 대응되는 암호블록을 임시로 저장하며, 하기 제어모듈의 명령에 따라 암호블록(N-1)으로 이미 실행된 복호블록(N-1)을 덮어쓰는 암호블록버퍼;(b) 상기 암호블록버퍼와 하기 복호화모듈의 작동을 제어하며, 하기 실행프로세스의 요청에 따라 다음에 실행될 암호블록(N+1)을 복호화하기 위한 복호화요청명령어를 상기 암호블록(N+1)의 처음 제어가 미치는 명령어 위치에 덮어쓰는 제어모듈; 및(c) 상기 제어모듈의 명령에 따라 상기 암호블록버퍼에 저장된 암호블록(N+1)을 복호화하여 하기 실행프로세스의 코드영역에 덮어쓰는 복호화모듈;로 구성되어,이미 실행된 복호블록(N-1)을 암호블록(N-1)으로 복원하고, 다음에 실행될 암호블록(N+1)을 복호화하여 하기 실행프로세스의 코드영역에 덮어쓰며, 복호화요청명령어를 다음에 실행될 암호블록(N+1)의 처음 제어가 미치는 명령어 위치에 덮어쓰는 복호화프로세스: 및(B) 복호화된 블록(N)의 명령어를 실행하고 상기 복호화프로세스의 제어모듈에게 다음에 실행될 암호블록(N+1) 및 처음 제어가 미치는 명령어 위치를 통보하여 복호화를 요청하는 실행프로세스:에 의해이미 실행된 복호블록을 복호화 이전에 임시로 저장한 암호블록으로 복원하고, 다음에 실행될 암호블록만을 실시간으로 복호블록으로 복호화하는 것을 특징으로 하는 암호화된 프로그램의 블록단위 실행을 위한 실시간 복호화 방법.
- 제 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 KR20090096769A (ko) | 2009-09-15 |
KR100950456B1 true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140097927A (ko) * | 2013-01-30 | 2014-08-07 | 삼성전자주식회사 | 소프트웨어의 보안을 높이는 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070061222A (ko) * | 2005-12-08 | 2007-06-13 | 한국전자통신연구원 | 파일시스템을 이용한 암호화 파일의 실시간 복호화 방법 |
-
2008
- 2008-03-10 KR KR1020080021792A patent/KR100950456B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070061222A (ko) * | 2005-12-08 | 2007-06-13 | 한국전자통신연구원 | 파일시스템을 이용한 암호화 파일의 실시간 복호화 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20090096769A (ko) | 2009-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8700919B2 (en) | Switch key instruction in a microprocessor that fetches and decrypts encrypted instructions | |
US20190087566A1 (en) | Call path dependent authentication | |
US20160104011A1 (en) | Microprocessor with on-the-fly switching of decryption keys | |
EP1536308A2 (en) | System and method for securing executable code | |
JP5616528B2 (ja) | ソフトウェアの完全性を保証するためのプロセッサにより実施される方法 | |
US10956157B1 (en) | Taint protection during speculative execution | |
US20120144208A1 (en) | Indexed table based code encrypting/decrypting device and method thereof | |
CN104918116A (zh) | 用于智能终端的资源播放方法及系统 | |
CN105095771A (zh) | 一种共享目标文件的保护方法及装置 | |
CN105843776B (zh) | 微处理器与其中安全执行指令的方法 | |
US20170046280A1 (en) | Data processing device and method for protecting a data processing device against attacks | |
US20100064125A1 (en) | Programmable device and booting method | |
KR100950456B1 (ko) | 실행프로세스와 상호작용하는 별도의 프로세스를 이용한실시간 프로그램 복호화 방법 | |
US9251356B2 (en) | Module encryption/decryption program | |
KR100811469B1 (ko) | 파일시스템을 이용한 암호화 파일의 실시간 복호화 방법 | |
KR101548211B1 (ko) | 역공학을 방지하기 위한 암호화 방법 | |
KR101696900B1 (ko) | 임베디드 시스템의 실행코드 암호화 및 복호화장치 및 이를 이용하여 정보유출 방지기능을 가지는 임베디드 시스템 | |
CN101458756A (zh) | 文件实时解密方法 | |
WO2015012782A1 (en) | Dynamic obfuscation processing | |
JP6374453B2 (ja) | モジュールの暗号化/復号化プログラム | |
JP6374454B2 (ja) | モジュールの暗号化/復号化プログラム | |
JP2011053749A (ja) | デバッグ方法、デバッグ装置、及びトランスレータプログラム | |
EP3944106A1 (en) | Obfuscating method of protecting code | |
JP2007065963A (ja) | データ転送システム | |
US20230098588A1 (en) | Program update system, vehicle control device, and program update method |
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 |