On the possibility of practically obfuscating programs towards a unified perspective of code protection

被引:27
作者
Beaucamps, Philippe [1 ]
Filiol, Eric [2 ]
机构
[1] Ecole Mines, F-54042 Nancy, France
[2] Ecole Super & Applicat Transmiss, Lab virol & cryptol, BP 18, F-35998 Rennes Armees, France
来源
JOURNAL IN COMPUTER VIROLOGY AND HACKING TECHNIQUES | 2007年 / 3卷 / 01期
关键词
D O I
10.1007/s11416-006-0029-6
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Barak et al. gave a first formalization of obfuscation, describing an obfuscator O as an efficient, probabilistic "compiler" that takes in input a program P and produces a new program O(P) that has the same functionality as P but is unintelligible. This means that any result an obfuscated program can compute is actually computable given only an input/output access (called oracle access) to the program P: we call such results trivial results. On the basis of this informal definition, they suggest a formal definition of obfuscation based on oracle access to programs and show that no obfuscator can exist according to this definition. They also try to relax the definition and show that, even with a restriction to some common classes of programs, there exists no obfuscator. In this work, we show that their definition is too restrictive and lacks a fundamental property, that we formalize by the notion of oracle programs. Oracle programs are an abstract notion which basically refers to perfectly obfuscated programs. We suggest a new definition of obfuscation based on these oracle programs and show that such obfuscators do not exist either. Considering the actual implementations of "obfuscators", we define a new kind of obfuscators, tau-obfuscators. These are obfuscators that hide non trivial results at least for time t. By restricting the tau-requirement to deobfuscation (that is outputting an intelligible program when fed with an obfuscated program in input), we show that such obfuscators do exist. Practical tau-obfuscation methods are presented at the end of this paper: we focus more specifically on code protection techniques in a malware context. Based on the fact that a malware may fulfill its action in an amount of time which may be far larger than the analysis time of any automated detection program, these obfuscation methods can be considered as efficient enough to greatly thwart automated analysis and put check on any antivirus software.
引用
收藏
页码:3 / 21
页数:19
相关论文
共 15 条
[1]  
[Anonymous], 1980, 2814789 GOST
[2]  
Barak B., 2001, P 21 ANN INT CRYPT C, P1
[3]  
Collberg Christian, 1997, TAXONOMY OBFUSCATING
[4]  
Filiol E., 2005, P 14 EICAR C, P201
[5]  
Filiol E., 2006, TECHNIQUES VIRALES A
[6]   PROBABILISTIC ENCRYPTION [J].
GOLDWASSER, S ;
MICALI, S .
JOURNAL OF COMPUTER AND SYSTEM SCIENCES, 1984, 28 (02) :270-299
[7]  
Kleene S., 1938, J SYMBOL LOGIC, V3, P150, DOI DOI 10.2307/2267778
[8]   Integer factoring [J].
Lenstra, AK .
DESIGNS CODES AND CRYPTOGRAPHY, 2000, 19 (2-3) :101-128
[9]  
Menezes A., 1997, HDB APPL CRYPTOGRAPH
[10]   THE NOTION OF SECURITY FOR PROBABILISTIC CRYPTOSYSTEMS [J].
MICALI, S ;
RACKOFF, C ;
SLOAN, B .
SIAM JOURNAL ON COMPUTING, 1988, 17 (02) :412-426