Obfuscation Techniques
It aims at hardening the process of reverse engineering.
Increases level of experience required
Increases cost (time, money)
Imposes the need for specific tools, techniques and procedures
Applications (some):
License-protected software: to prevent the generation of arbitrary licenses or subversion of the program code
Proprietary software: prevent the recovery of a design pattern or algorithm (IP protection)
Malware: to prevent recovery of the actions, prevent detection, Social Engineer users
Static vs Dynamic
Static obfuscation frequently transforms code before execution.
Maybe before the compilation, or during compilation
Countering static analysis
An obfuscated program is complex to analyze
Dynamic obfuscation transforms code during execution
Countering Dynamic Analysis
The obfuscated program may change its behaviour, expand or include further code
Main Categories (Balachandran, TIFS 2013)
Layout Obfuscation
Design Obfuscation
Data Obfuscation
Control Obfuscation
Last updated