Software protection system - II - Hong, Dexter Xian Jun. (2012)
Reverse engineering is the process of recovering a high level structure and its semantics from a lower-level structure. Various techniques have been developed to prevent malicious use of reverse engineering of software applications in binary format. One widely practiced technique called - code obfuscation, modifies a program by altering the original structure and look of its source or binary code while preserving the original functionality of the program.