Browse > Article
http://dx.doi.org/10.9716/KITS.2011.10.3.167

A Technique to Apply Inlining for Code Obfuscation based on Genetic Algorithm  

Kim, Jung-Il (경북대학교 대학원 전자전기컴퓨터)
Lee, Eun-Joo (경북대학교 IT대학 컴퓨터학부)
Publication Information
Journal of Information Technology Services / v.10, no.3, 2011 , pp. 167-177 More about this Journal
Abstract
Code obfuscation is a technique that protects the abstract data contained in a program from malicious reverse engineering and various obfuscation methods have been proposed for obfuscating intention. As the abstract data of control flow about programs is important to clearly understand whole program, many control flow obfuscation transformations have been introduced. Generally, inlining is a compiler optimization which improves the performance of programs by reducing the overhead of calling invocation. In code obfuscation, inlining is used to protect the abstract data of control flow. In this paper, we define new control flow complexity metric based on entropy theory and N-Scope metric, and then apply genetic algorithm to obtain optimal inlining results, based on the defined metric.
Keywords
Code Obfuscation; Genetic Algorithm; Inline; Complexity Metric;
Citations & Related Records
Times Cited By KSCI : 1  (Citation Analysis)
연도 인용수 순위
1 Li, M. and H. Wang, "GA based inlining optimization in front-end synthesis of embedded software", 5th International Conference on ASIC, Vol.1(2003), pp.341-343.
2 Low, D., "Java control flow obfuscation", Master's Thesis, Department of Computer Science, (1998), pp.13-69.
3 http://www.scitools.com/.
4 http://www.gnu.org/software/cflow/.
5 Ogiso, T., Y. Sakabe, M. Soshi, and A. Miyaji, "Software obfuscation on a theoretical basic and its implementation", IEEE Trans. Fundamentals, Vol.1, No.1(2003), pp. 176-186.
6 Cavazos, J. and M. F. P. O'Boyle, "Automatic Tuning of Inlining Heuristics", Proc. of the ACM/IEEE SC 2005 Conference, (2005), p.14.
7 Colleberg, C., C. Thomborson, and D. Low, "A Taxonomy of Obfuscating Transformations", Technical Report 148, University of Auckland, (1997), pp.2-36.
8 Hsin-Yi, T., H. Yu-Lun, and D. Wagner, "A graph approach to quantitative analysis of control-Flow obfuscationg transformations", IEEE Transactions On Information Forensics and Security, Vol.4(2009), pp.257- 267.   DOI
9 Collberg, C., C. Thomborson, and D. Low, "Manufacturing cheap, resilient, and stealthy opaque constructs", In Principles of Programming Languages, POPL, San Diego, CA, (1998), pp.184-192.
10 Harrison, W., "An entropy-based measure of software complexity", IEEE Transactions on Software Engineering, Vol.18(1992), pp. 1025-1029.   DOI   ScienceOn
11 김갑수, 신영길, 우치수, "엔트로피를 이용한 객체 지향 프로그램의 복잡도 척도", 한국정보과학회논문지, 제22권, 제12호(1995), pp.1656-1666.
12 엘다드 에일람, 리버싱:리버스 엔지니어링 비밀을 파헤치다, 1판, 에이콘, 2009.
13 Zuse, H., "Software Complexity:Measures and Methods", Hawthorne, NJ:Walter de Gruyter Co., 1991.
14 Sakabe, Y., M. Soshi, and A. Miyaji, "Java Obfuscation Approaches to Construct Tamper-Resistant Object-Oriented Programs", IPSJ Digital Courier, Vol.1(2005), pp.134-146.
15 정우성, 이은주, "유사도 기반의 웹 어플리케이션 구조 복잡도", 한국컴퓨터정보학회논문지, 제9권, 제8호(2010), pp.117-126.
16 채영현, "소프트웨어 보안을 위한 코드 난독화 도구의 개발", Master Thesis, Dep. Electrical Engineering and Computer Science. KAIST, (2007), pp.1-38.