Software code protection through software obfuscation

The mode of platform-independent software running on client machine has various advantages. But it also introduces some problems, such as how to guard against software piracy, how to protect user from intellectual property theft and from attacks by malicious modifications. Development of reverse eng...

Full description

Saved in:
Bibliographic Details
Main Author: Liang, Shan
Other Authors: Sabu Emmanuel
Format: Theses and Dissertations
Language:English
Published: 2010
Subjects:
Online Access:https://hdl.handle.net/10356/41864
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-41864
record_format dspace
spelling sg-ntu-dr.10356-418642023-03-04T00:44:37Z Software code protection through software obfuscation Liang, Shan Sabu Emmanuel School of Computer Engineering DRNTU::Engineering::Computer science and engineering::Software::Software engineering The mode of platform-independent software running on client machine has various advantages. But it also introduces some problems, such as how to guard against software piracy, how to protect user from intellectual property theft and from attacks by malicious modifications. Development of reverse engineering techniques makes all these attacks easier. Therefore, obfuscation has gained a lot of interest since the obfuscation technique makes the cost of program reverse engineering prohibitively high with least program size and execution speed overheads. In this report, we present our proposed obfuscation algorithms which are primarily based on self-modifying code. We have designed three software obfuscation algorithms. The first self-modifying proposal is integrated with Control Flow Flattening to realize the obscurity in instruction and execution control flow. The second one is based on Basic Blocks to improve both the performance of storage size overhead and the instruction disassembly errors metrics. And the third one is proposed at the function level to provide full protection to improve the security to both static and dynamic attacks. We implement these obfuscation algorithms at link time and evaluate them on standard benchmark suite. The novel techniques are evaluated with metrics referred by existing proposals to prove that our algorithms succeed in confusing the disassembler when reverse engineering the control flow and instructions of program. We also discuss how the novel methods improve the obfuscation efficiency in comparison with the existing competing obfuscation methods. MASTER OF ENGINEERING (SCE) 2010-08-23T04:54:50Z 2010-08-23T04:54:50Z 2010 2010 Thesis Liang, S. (2010). Software code protection through software obfuscation. Master’s thesis, Nanyang Technological University, Singapore. https://hdl.handle.net/10356/41864 10.32657/10356/41864 en 104 p. application/pdf
institution Nanyang Technological University
building NTU Library
continent Asia
country Singapore
Singapore
content_provider NTU Library
collection DR-NTU
language English
topic DRNTU::Engineering::Computer science and engineering::Software::Software engineering
spellingShingle DRNTU::Engineering::Computer science and engineering::Software::Software engineering
Liang, Shan
Software code protection through software obfuscation
description The mode of platform-independent software running on client machine has various advantages. But it also introduces some problems, such as how to guard against software piracy, how to protect user from intellectual property theft and from attacks by malicious modifications. Development of reverse engineering techniques makes all these attacks easier. Therefore, obfuscation has gained a lot of interest since the obfuscation technique makes the cost of program reverse engineering prohibitively high with least program size and execution speed overheads. In this report, we present our proposed obfuscation algorithms which are primarily based on self-modifying code. We have designed three software obfuscation algorithms. The first self-modifying proposal is integrated with Control Flow Flattening to realize the obscurity in instruction and execution control flow. The second one is based on Basic Blocks to improve both the performance of storage size overhead and the instruction disassembly errors metrics. And the third one is proposed at the function level to provide full protection to improve the security to both static and dynamic attacks. We implement these obfuscation algorithms at link time and evaluate them on standard benchmark suite. The novel techniques are evaluated with metrics referred by existing proposals to prove that our algorithms succeed in confusing the disassembler when reverse engineering the control flow and instructions of program. We also discuss how the novel methods improve the obfuscation efficiency in comparison with the existing competing obfuscation methods.
author2 Sabu Emmanuel
author_facet Sabu Emmanuel
Liang, Shan
format Theses and Dissertations
author Liang, Shan
author_sort Liang, Shan
title Software code protection through software obfuscation
title_short Software code protection through software obfuscation
title_full Software code protection through software obfuscation
title_fullStr Software code protection through software obfuscation
title_full_unstemmed Software code protection through software obfuscation
title_sort software code protection through software obfuscation
publishDate 2010
url https://hdl.handle.net/10356/41864
_version_ 1759855380276445184