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

Bibliographic Details
Main Author: Liang, Shan
Other Authors: Sabu Emmanuel
Format: Thesis
Language:English
Published: 2010
Subjects:
Online Access:https://hdl.handle.net/10356/41864
_version_ 1826120184785534976
author Liang, Shan
author2 Sabu Emmanuel
author_facet Sabu Emmanuel
Liang, Shan
author_sort Liang, Shan
collection NTU
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.
first_indexed 2024-10-01T05:12:23Z
format Thesis
id ntu-10356/41864
institution Nanyang Technological University
language English
last_indexed 2024-10-01T05:12:23Z
publishDate 2010
record_format dspace
spelling ntu-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
spellingShingle DRNTU::Engineering::Computer science and engineering::Software::Software engineering
Liang, Shan
Software code protection through software obfuscation
title 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_short Software code protection through software obfuscation
title_sort software code protection through software obfuscation
topic DRNTU::Engineering::Computer science and engineering::Software::Software engineering
url https://hdl.handle.net/10356/41864
work_keys_str_mv AT liangshan softwarecodeprotectionthroughsoftwareobfuscation