Title: Modifications to GCC for increased software privacy

Authors: William R. Mahoney

Addresses: School of Interdisciplinary Informatics, University of Nebraska at Omaha, 6001 Dodge Street, 68182, Omaha, Nebraska, USA

Abstract: The paper describes methodologies added to the Gnu compiler collection (GCC) in an effort to create an obfuscating compiler. An obfuscating compiler creates programs which, when run, execute with the same results as un-obfuscated code, but which are more difficult to reverse engineer from the binary artefact. This provides increased protection with respect to the privacy of the intellectual property within the software, by thwarting the tools normally used to extract information from the binary executable. Reverse engineering technologies involving analysis of machine instructions are briefly described for background. The three methods of obfuscation implemented in the research are detailed: jump hiding, block shuffling, and junk insertion. Overhead in terms of space and speed are given using standard benchmark software.

Keywords: automatic code generation; intellectual privacy protection; software obfuscation; reverse engineering; compilers; GCC; Gnu compiler collection; software privacy; privacy preservation; jump hiding; block shuffling; junk insertion.

DOI: 10.1504/IJICS.2015.073024

International Journal of Information and Computer Security, 2015 Vol.7 No.2/3/4, pp.160 - 176

Received: 21 Jul 2014
Accepted: 01 May 2015

Published online: 12 Nov 2015 *

Full-text access for editors Full-text access for subscribers Purchase this article Comment on this article