La transformación de código es un enfoque que se utiliza en el software de ofuscación para proteger las aplicaciones de software de la ingeniería inversa , el análisis , las modificaciones y el craqueo. 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 objeto binario . La transformación del código divide el código protegido en varios comandos del procesador o pequeños fragmentos de comandos y los reemplaza por otros, mientras se mantiene el mismo resultado final. Así, el protector ofusca el código en el nivel intermedio. [1]
Code morphing 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 código p ). La modificación del 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, no existe un concepto de descifrado de código con este método. Los bloques de código protegidos están siempre 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 puede dar una visión clara del flujo del código original.
La transformación de código también se usa 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 modificación del código se utiliza a menudo para ocultar la protección de copia u otras comprobaciones que hace un programa para determinar si se trata de una instalación auténtica y válida o una copia no autorizada , con el fin de hacer que la eliminación del código de protección de copia sea más difícil de lo que sería de otra manera. sea el caso.
Ver también
Referencias
- ^ "El software Transmeta Code Morphing ™: utilizando la especulación, la recuperación y la retraducción adaptativa para abordar los desafíos de la vida real" . CGO '03: Actas del Simposio Internacional sobre Generación y Optimización de Código: Optimización de Tiempo de Ejecución y Dirigida por Retroalimentación - vía ACM.