The article analyzes the main threats and problems of software protection. Methods for protecting information, their advantages and disadvantages are considered, and the possibility of using existing tools to protect software is studied. The possibility of improving and using a number of software protection methods against active fraud attacks was brought. Type of attacks exists and why protection is necessary was specified. Furthermore, we discussed several states of the art protection techniques which can be used in software to protect against analysis and tampering attacks. Analyzed such methods: Client-Server Solutions, Code Encryption, Code Diversity, Code Obfuscation, White-Box Cryptography, Tamper Resistant Software, Software Guards, Oblivious Hashing. Although we considered all these possible techniques separately, it is possible to combine these techniques into one solution.