La deformación de código es un método utilizado para ofuscar software y proteger las aplicaciones de ingeniería inversa , análisis , modificaciones y piratería. Esta tecnología protege el código de nivel intermedio, como el compilado a partir de lenguajes Java y .NET ( Oxygene , C# , Visual Basic , etc.), en lugar del código de objeto binario . La deformación de código divide el código protegido en varios comandos de procesador o pequeños fragmentos de comandos y los reemplaza por otros, manteniendo el mismo resultado final. De este modo, el protector ofusca el código en el nivel intermedio. [1]
La transformación de código es una tecnología multinivel que contiene cientos de patrones únicos de transformación de código. Además, esta tecnología transforma algunos comandos de capa intermedia en comandos de máquina virtual (como p-code ). La transformación de código no protege contra el seguimiento en tiempo de ejecución, que puede revelar la lógica de ejecución de cualquier código protegido.
A diferencia de otros protectores de código, con este método no existe el concepto de descifrado de código . Los bloques de código protegidos siempre están en estado ejecutable y se ejecutan (interpretan) como código transformado. El código intermedio original está ausente hasta cierto punto, pero la desofuscación aún puede brindar una visión clara del flujo del código original.
El término "deformación de código" también se utiliza para referirse a la tecnología de compilación justo a tiempo utilizada en los procesadores Transmeta , como Crusoe y Efficeon, para implementar la arquitectura del conjunto de instrucciones x86 .
La deformación de código se utiliza a menudo para ofuscar la protección de copia u otras comprobaciones que realiza un programa para determinar si se trata de una instalación válida y auténtica o de una copia no autorizada , con el fin de que la eliminación del código de protección de copia sea más difícil de lo que sería de otro modo.