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

Bibliographic Details
Main Author: Chew, Ron Jun Hong.
Other Authors: Sabu Emmanuel
Format: Final Year Project (FYP)
Language:English
Published: 2012
Subjects:
Online Access:http://hdl.handle.net/10356/48503
_version_ 1826113936709124096
author Chew, Ron Jun Hong.
author2 Sabu Emmanuel
author_facet Sabu Emmanuel
Chew, Ron Jun Hong.
author_sort Chew, Ron Jun Hong.
collection NTU
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.
first_indexed 2024-10-01T03:31:00Z
format Final Year Project (FYP)
id ntu-10356/48503
institution Nanyang Technological University
language English
last_indexed 2024-10-01T03:31:00Z
publishDate 2012
record_format dspace
spelling ntu-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
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
title 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_short Software protection system : binary control flow obfuscation for portable executables
title_sort software protection system binary control flow obfuscation for portable executables
topic DRNTU::Engineering::Computer science and engineering::Software::Software engineering
DRNTU::Engineering::Computer science and engineering::Data::Data encryption
url http://hdl.handle.net/10356/48503
work_keys_str_mv AT chewronjunhong softwareprotectionsystembinarycontrolflowobfuscationforportableexecutables