This paper aims an overview of the obfuscation transformations like layout, data, control, preventative and stealthy obfuscation. Software obfuscation is the common way to prevent reverse engineering. Obfuscation is one of the software secrets technique protections and in general, describes a practice that is used intentionally to make something more difficult to understand. Obfuscation techniques convert program into another one with the same behavior that is more difficult to understand. Obfuscation cannot be mathematical analyze and it is very hard to predict the effectiveness of obfuscation transformations.