Securing Software Using Genetic Algorithms and Encoding
摘要
Protection of software against reverse engineering that is done by individuals with different purposes becomes more and more complex with time due to evolving technology. No matter how unimportant a piece of software is some kind of protection against intellectual property and data theft must be in place. In the help of protection against reverse engineering, a method of encoding is proposed that encodes the principal section of a Portable Executable(PE) file in such a way that the encoded assembly instruction look like a normal assembly instructions of a program. This method is using a Genetic Algorithm(GA) together with Asm2Vec engine. The Genetic Algorithm has into his population the assembly instructions of the input program and other assembly instructions from other legitimate programs. The decoding is made at the user request based with a key that is uniquely generated for each encoded program. The results show that the encoded program is not obfuscated nor encrypted which may misled the attacker and hide the behavior of the program.