Code virtualization is a cutting-edge technology for making code more complex and obscure, so that your program becomes much harder to analyze and crack.
As in the case of mutation, the executable code is broken down into individual instructions. However, each machine instruction is replaced not by a set of machine instructions, but by pseudo code that describes that instruction for the protection interpreter. Then a reference to the processed code is passed on to the execution function that interprets the pseudo code and executes it as CPU instructions.
The complexity of analyzing such code is high because the pseudo code is unique for each protection system and undocumented. For the attacker, to analyze such code is almost as difficult as to learn another programming language. Thanks to that, the attacker needs to spend much more time to analyze the code. Therefore, program protection through code virtualization is the most secure one.