응용프로그램 역분석 방지를 위한 코드블록 암호화 방법
A Code Block Cipher Method to Protect Application Programs From Reverse Engineering
0
조회
0
다운로드
2
인용
0
참고문헌
초록
실행코드의 변조와 역분석(reverse engineering)을 방지하기 위한 대표적인 방법은 실행코드를 암호화하는 것이다. 본 논문에서는 키체인(key chaining) 방식의 블록암호화 기법을 이용하여 응용프로그램을 암호화하는 방법을 제안한다. 키체인 방식의 블록암호화 기법은 키가 블록의 내부에 은닉되어 있고 각 블록의 키가 서로 다르다는 장점을 갖지만, 제어이동을 필요로 하는 프로그램에 적용하기에는 적합하지 않다고 알려져 있다. 본 논문에서는 실행코드에서의 제어이동 명령어에 대해서도 키체인 방식을 효과적으로 적용할 수 있도록 블록을 변형시키거나 중복시키는 방법을 제시하고, MIPS 명령어집합을 이용하여 가능성을 분석한다.
Abstract
One of the typical methods to prevent tampering and reverse engineering on executable codes is to encrypt them. This paper proposes a code block cipher method based on key chaining to encrypt the code. The block cipher by key chaining has been known to be inadequate for encrypting the code with control transfer, even though the key chaining has advantage of hiding the keys in blocks and making the individual keys different from block to block. This paper proposes a block transformation and duplication method to apply the block cipher by key chaining to the executable codes with control transfer instructions, and shows the idea works with the MIPS instruction set.
참고문헌 (10)
- Gleb Naumovich, "Preventing Piracy, Reverse Engineer- ing, and Tampering", pp.64~71 (2003), Computer
- Christian S. Collberg, "Water- marking, Tamper-Proofing, and Obfuscation Tools for Software Protection", IEEE Transac- tions on Software Engineering, 735(746) (2002)
- Tao Zhang, "Tamper-Resistant Whole Program Partitioning", Proc. Conference on Languages, Compilers, and Tools for Embedded Systems (2003)
- Ping Wang, "Tamper Resistant Software Through Dynamic Integrity Checking", Proc. 2005 Symposium on Cryptography and Information Security (2005)
- Protecting Software Codes By Guards, "Hoi Chang", CERIAS Tech- nical Report 2001-49, ~ (2001)
- Cullen Linn, "Obfuscation of Executable Code to Improve Resistance to Static Disassembly", Proc. 10th ACM Conference on Computer and Communications Security, pp.290~299 (2003)
- "Code Obfuscation"[URL]
- "Code Obfuscation Part 2: Obfu- scating Data Structures"[URL]
- "Code Obfuscation Part 3: Hiding Control Flows"[URL]
- "Trusted Platform Module (TPM) Specifica tions"[URL]
