Problemas con las soluciones de protección de virtualización

La ofuscación puede aumentar la dificultad del análisis estático, pero no puede impedir eficazmente el análisis dinámico. El objetivo de la virtualización de código es aumentar la dificultad del análisis dinámico.

La virtualización de código Java se logra mediante la creación de motores de virtualización personalizados, lo que permite que los códigos de bytes ejecutables directamente se ejecuten a través de estos motores. Al ser un motor de virtualización personalizado, el mundo exterior no puede acceder directamente a su método de ejecución, formato de instrucción ni otra información. Además, esto genera una expansión significativa del código, lo que dificulta la ingeniería inversa del código que contiene su información semántica original.

El impacto de la virtualización en el rendimiento.

La protección de virtualización es una solución de protección de código extremadamente sólida, pero el mayor problema con la protección de virtualización es actuaciónLos motores de virtualización personalizados son difíciles de adoptar, ya que ofrecen numerosas medidas de optimización del rendimiento, como JVM, y no pueden aplicar técnicas de optimización del rendimiento como JIT. Puede intentar usar... Motor JVM Mencionamos anteriormente ejecutar el mismo código que una JVM normal y comparar el rendimiento, lo que puede resultar en una diferencia de rendimiento de más de 100 veces.

Conclusión

La protección por virtualización es el método de protección de código más seguro, pero debido a su importante impacto en el rendimiento, no puede aplicarse a todo el código de un programa. Solo protege el código crítico, mientras que el resto del código aún conlleva el riesgo de exposición. Al abordar otras partes del código, se puede obtener información funcional sobre la parte virtualizada.