Software protection system : binary control flow obfuscation for portable executables

With the advancement of reverse engineering technology, the rise in software piracy and program hacking is becoming a worrying factor for software developers. Software developers are always on the lookout for cost-effective measures to protect their software. Even though there are no definite gua...

Full description

Saved in:
Bibliographic Details
Main Author: Chew, Ron Jun Hong.
Other Authors: Sabu Emmanuel
Format: Final Year Project
Language:English
Published: 2012
Subjects:
Online Access:http://hdl.handle.net/10356/48503
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
id sg-ntu-dr.10356-48503
record_format dspace
spelling sg-ntu-dr.10356-485032023-03-03T20:29:21Z Software protection system : binary control flow obfuscation for portable executables Chew, Ron Jun Hong. Sabu Emmanuel School of Computer Engineering Centre for Strategic Infocomm Technologies DRNTU::Engineering::Computer science and engineering::Software::Software engineering DRNTU::Engineering::Computer science and engineering::Data::Data encryption With the advancement of reverse engineering technology, the rise in software piracy and program hacking is becoming a worrying factor for software developers. Software developers are always on the lookout for cost-effective measures to protect their software. Even though there are no definite guarantees in software protection, it is possible to devise a complex obfuscation technique to make program reverse-engineering time-consuming and impracticable. Binary code obfuscation demonstrates the ability to obscure program structure, content and behavior while retaining program functionality. This project features a custom devised obfuscation design that incorporates several modified binary-level obfuscation techniques. These obfuscation techniques include control flow flattening and branch conversion and they are directed at the control flow of a program to hide its intended logic and behavior. The proposed obfuscation design is then tested and implemented into a working prototype that serves as an automated obfuscator for windows portable executables (PE). Unlike other obfuscation techniques implemented at source-code level, the obfuscator performs direct binary code modifications to the targeted PE program. Obfuscated programs are then evaluated against several performance metrics to determine the efficiency of the proposed obfuscation. Experimental results indicate high confusion potency and resilience in the obfuscation techniques. These factors represent how well the obfuscation can confuse and thwart disassembly. Bachelor of Engineering (Computer Science) 2012-04-25T04:17:00Z 2012-04-25T04:17:00Z 2012 2012 Final Year Project (FYP) http://hdl.handle.net/10356/48503 en Nanyang Technological University 116 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
DRNTU::Engineering::Computer science and engineering::Data::Data encryption
spellingShingle DRNTU::Engineering::Computer science and engineering::Software::Software engineering
DRNTU::Engineering::Computer science and engineering::Data::Data encryption
Chew, Ron Jun Hong.
Software protection system : binary control flow obfuscation for portable executables
description With the advancement of reverse engineering technology, the rise in software piracy and program hacking is becoming a worrying factor for software developers. Software developers are always on the lookout for cost-effective measures to protect their software. Even though there are no definite guarantees in software protection, it is possible to devise a complex obfuscation technique to make program reverse-engineering time-consuming and impracticable. Binary code obfuscation demonstrates the ability to obscure program structure, content and behavior while retaining program functionality. This project features a custom devised obfuscation design that incorporates several modified binary-level obfuscation techniques. These obfuscation techniques include control flow flattening and branch conversion and they are directed at the control flow of a program to hide its intended logic and behavior. The proposed obfuscation design is then tested and implemented into a working prototype that serves as an automated obfuscator for windows portable executables (PE). Unlike other obfuscation techniques implemented at source-code level, the obfuscator performs direct binary code modifications to the targeted PE program. Obfuscated programs are then evaluated against several performance metrics to determine the efficiency of the proposed obfuscation. Experimental results indicate high confusion potency and resilience in the obfuscation techniques. These factors represent how well the obfuscation can confuse and thwart disassembly.
author2 Sabu Emmanuel
author_facet Sabu Emmanuel
Chew, Ron Jun Hong.
format Final Year Project
author Chew, Ron Jun Hong.
author_sort Chew, Ron Jun Hong.
title Software protection system : binary control flow obfuscation for portable executables
title_short Software protection system : binary control flow obfuscation for portable executables
title_full Software protection system : binary control flow obfuscation for portable executables
title_fullStr Software protection system : binary control flow obfuscation for portable executables
title_full_unstemmed Software protection system : binary control flow obfuscation for portable executables
title_sort software protection system : binary control flow obfuscation for portable executables
publishDate 2012
url http://hdl.handle.net/10356/48503
_version_ 1759853992775516160