Problemas con soluciones de protección de virtualización

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

La virtualización del código Java se logra mediante la creación de motores de virtualización personalizados, lo que permite ejecutar códigos de bytes que podrían ejecutarse directamente a través de estos motores de virtualización. Dado que es un motor de virtualización personalizado, el mundo externo no puede acceder directamente a su método de ejecución, formato de instrucción y otra información. Además, da como resultado 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 la virtualización es una solución de protección de código extremadamente sólida, pero el mayor problema con la protección de la virtualización esrendimiento. Los motores de virtualización personalizados tienen dificultades para adoptar numerosas medidas de optimización del rendimiento como JVM y no pueden aplicar técnicas de optimización del rendimiento como JIT. Puedes intentar usar elmotor JVM Mencionamos antes ejecutar el mismo código que una JVM normal y comparar el rendimiento, lo que puede dar como resultado una diferencia de rendimiento de más de 100 veces.

Conclusión

La protección de virtualización es el método de protección de código más seguro, pero debido a su impacto significativo en el rendimiento, no se puede aplicar a todo el código de un programa. Solo puede proteger código crítico, mientras que otros códigos aún conllevan el riesgo de exposición. Al apuntar a otras partes del código, se puede obtener información funcional sobre la parte virtualizada del código.