Name obfuscation is the process of replacing the identifiers with meaningless sequences of characters. (Of course, a name obfuscator must process the entire application to ensure consistency of name changes across all files.)
Crackers will frequently search for specific strings in your code to locate strategic logic. String Encryption makes this much more difficult to do, because the attacker's search will come up empty. The original string is nowhere to be found in the code. Only its encrypted version is present.
Code Flow Obfuscation
It is the process to change the control flow in a software application. The changed control flow must lead to the same results as the initial one, but produces spaghetti logic that can be very difficult for a cracker to analyze.
Lock your code based on IP address, domain name and much more. Create trial versions with time limiting and many other features.
Minification & Compression
Inserts code that is executed when the program is run but does not affect the semantics of the program, making any disassembled code more difficult to analyze.