Implementation and evaluation of some platformindependent obfuscating transformations

We study the state-of-art of code obfuscation, a technique used to protect software from reverse engineering by complicating the execution flow of a program. The best current solutions are platform dependent. Platform independent code obfuscation techniques are evaluated by implementing specific cod...

Full description

Bibliographic Details
Main Author: WERKELIN AHLIN, OSKAR
Format: Others
Language:English
Published: KTH, Skolan för datavetenskap och kommunikation (CSC) 2013
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-142376
Description
Summary:We study the state-of-art of code obfuscation, a technique used to protect software from reverse engineering by complicating the execution flow of a program. The best current solutions are platform dependent. Platform independent code obfuscation techniques are evaluated by implementing specific code obfuscation methods, and comparing their efficiency with respect to a number of defined metrics. The obfuscation methods are implemented tightly coupled with a common open source compiler. We conclude that the choice is good and gives a lot of freedom in implementing an obfuscator. We successfully implement and evaluate some obfuscation methods, which alone are not that potent, but when applied in chain with other methods can make the job harder for a reverse engineer. === Vi studerar kodobfuskering, ett verktyg som används för att skydda mjukvara från att bakåtkompileras. När man obfuskerar programkod så komplicerar man exekveringsflödet och gör det på så sätt svårare för angripare eller konkurrenter att tyda den bakomliggande logiken hos programmet. Dagens bästa lösningar för kodobfuskering är beroende av en viss plattform. Vi utvärderar några plattformsoberoende obfuskeringsalgoritmer genom att implementera dem och utvärdera dem med avseende på ett antal definierade mätvärden. Obfuskeringsmetoderna implementeras med hjälp av ett vanligt kompilatorprojekt som baseras på öppen källkod. Vi konstaterar att det är gynnsamt att göra implementationerna på valt sätt. Givet implementationen av några vanliga obfuskeringsmetoder så utvärderar vi dem var för sig, och ensamma visar de sig inte vara så kraftfulla som förväntat. Vi kan dock konstatera att obfuskeringsmetoderna kan bli mycket mer kraftfulla om de appliceras i kombination med varandra.