ACM Home Page
Please provide us with feedback. Feedback
Obfuscation of executable code to improve resistance to static disassembly
Full text PdfPdf (156 KB)
Source Conference on Computer and Communications Security archive
Proceedings of the 10th ACM conference on Computer and communications security table of contents
Washington D.C., USA
SESSION: Emerging applications table of contents
Pages: 290 - 299  
Year of Publication: 2003
ISBN:1-58113-738-9
Authors
Cullen Linn  University of Arizona, Tucson, AZ
Saumya Debray  University of Arizona, Tucson, AZ
Sponsor
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 31,   Downloads (12 Months): 170,   Citation Count: 31
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/948109.948149
What is a DOI?

ABSTRACT

A great deal of software is distributed in the form of executable code. The ability to reverse engineer such executables can create opportunities for theft of intellectual property via software piracy, as well as security breaches by allowing attackers to discover vulnerabilities in an application. The process of reverse engineering an executable program typically begins with disassembly, which translates machine code to assembly code. This is then followed by various decompilation steps that aim to recover higher-level abstractions from the assembly code. Most of the work to date on code obfuscation has focused on disrupting or confusing the decompilation phase. This paper, by contrast, focuses on the initial disassembly phase. Our goal is to disrupt the static disassembly process so as to make programs harder to disassemble correctly. We describe two widely used static disassembly algorithms, and discuss techniques to thwart each of them. Experimental results indicate that significant portions of executables that have been obfuscated using our techniques are disassembled incorrectly, thereby showing the efficacy of our methods.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
W. Cho, I. Lee, and S. Park. Againt intelligent tampering: Software tamper resistance by extended control flow obfuscation. In Proc. World Multiconference on Systems, Cybernetics, and Informatics. International Institute of Informatics and Systematics, 2001.
 
4
 
5
 
6
 
7
F. B. Cohen. Operating system protection through program evolution, 1992. http://all.net/books/IP/evolve.html.
 
8
9
 
10
C. Collberg and C. Thomborson. Watermarking, tamper-proofing, and obfuscation -- tools for software protecti on. Technical Report TR00-03, The Department of Computer Science, University of Arizona, February 2000.
 
11
12
 
13
DataRescue sa/nv, Liege, Belgium. IDA Pro. http://www.datarescue.com/idabase/.
14
 
15
16
 
17
 
18
 
19
Objdump. GNU Manuals Online. GNU Project---Free Software Foundation. http://www.gnu.org/manual/binutils-2.10.1/html_chapter/binutils_4.html.
 
20
T. Ogiso, Y. Sakabe, M. Soshi, and A. Miyaji. Software obfuscation on a theoretical basis and its implementation. IEEE Trans. Fundamentals, E86-A(1), January 2003.
 
21
B. Schwarz, S. K. Debray, and G. R. Andrews. Plto: A link-time optimizer for the Intel IA-32 architecture. In Proc. 2001 Workshop on Binary Translation (WBT-2001), 2001.
 
22
23
 
24
A. Srivastava and D. W. Wall. A practical system for intermodule code optimization at link-time. Journal of Programming Languages, 1(1):1--18, March 1993.
 
25
 
26
 
27
 
28
G. Wroblewski. General Method of Program Code Obfuscation. PhD thesis, Wroclaw University of Technology, Institute of Engineering Cybernetics, 2002.

CITED BY  31

Collaborative Colleagues:
Cullen Linn: colleagues
Saumya Debray: colleagues