Potent and Stealthy Control Flow Obfuscation by Stack Based Self-Modifying Code
Software code released to the user has the risk of reverse engineering attacks. Software obfuscation techniques can be employed to make the reverse engineering of software programs harder. In this paper, we propose a potent, stealthy, and cost-effective algorithm to obfuscate software programs. The main idea of the algorithm is to remove control flow information from the code area and hide them in the data area. During execution time, these instructions are reconstructed, thereby preserving the semantics of the program. Experimental results indicate that the algorithm performs well against static and dynamic attacks. Also the obfuscated program is hard to be differentiated from normal binary programs demonstrating the obfuscations good stealth measure.