Modifications to GCC for increased software privacy

Research output: Contribution to journalArticle

1 Citation (Scopus)

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.

Original languageEnglish (US)
Pages (from-to)160-176
Number of pages17
JournalInternational Journal of Information and Computer Security
Volume7
Issue number2-4
DOIs
StatePublished - Jan 1 2015

Fingerprint

Program compilers
Reverse engineering
Engineering technology
Intellectual property
Engineers

Keywords

  • Automatic code generation
  • Compilers
  • Intellectual privacy protection
  • Reverse engineering
  • Software obfuscation

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality
  • Hardware and Architecture
  • Computer Networks and Communications

Cite this

Modifications to GCC for increased software privacy. / Mahoney, William R.

In: International Journal of Information and Computer Security, Vol. 7, No. 2-4, 01.01.2015, p. 160-176.

Research output: Contribution to journalArticle

@article{537df30e40604132b69bb7ae6814ba4b,
title = "Modifications to GCC for increased software privacy",
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, Compilers, Intellectual privacy protection, Reverse engineering, Software obfuscation",
author = "Mahoney, {William R.}",
year = "2015",
month = "1",
day = "1",
doi = "10.1504/IJICS.2015.073024",
language = "English (US)",
volume = "7",
pages = "160--176",
journal = "International Journal of Information and Computer Security",
issn = "1744-1765",
publisher = "Inderscience Enterprises Ltd",
number = "2-4",

}

TY - JOUR

T1 - Modifications to GCC for increased software privacy

AU - Mahoney, William R.

PY - 2015/1/1

Y1 - 2015/1/1

N2 - 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.

AB - 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.

KW - Automatic code generation

KW - Compilers

KW - Intellectual privacy protection

KW - Reverse engineering

KW - Software obfuscation

UR - http://www.scopus.com/inward/record.url?scp=84996538463&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84996538463&partnerID=8YFLogxK

U2 - 10.1504/IJICS.2015.073024

DO - 10.1504/IJICS.2015.073024

M3 - Article

AN - SCOPUS:84996538463

VL - 7

SP - 160

EP - 176

JO - International Journal of Information and Computer Security

JF - International Journal of Information and Computer Security

SN - 1744-1765

IS - 2-4

ER -