1. Cómo funciona Protector4J

    Protector4J protege su código fuente Java convirtiendo archivos jar en archivos jarx cifrados privados. Adoptamos múltiples enfoques para garantizar la seguridad de su aplicación tanto a nivel de JVM como a nivel binario, proporcionando protección de aplicaciones de alta resistencia.

  2. Los problemas de la ofuscación de código

    Debido a la alta semántica del bytecode JVM, es extremadamente fácil de analizar y leer. Es fácil analizar su lógica de ejecución mediante depuración dinámica. Escribir una herramienta de depuración dinámica no es una tarea muy complicada. Por lo tanto, la ofuscación no es una solución de protección confiable.

  3. Los problemas del cifrado de clases

    Debido a la existencia del mecanismo de enlace JVM, todos los códigos supuestamente cifrados que no se han separado del funcionamiento normal de JVM pueden leerse fácilmente con herramientas de enlace. Por lo tanto, esta es la solución de protección más ineficaz.

  4. Los problemas de la protección VM

    La protección por 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 puede aplicarse a todos los códigos de un programa. Solo puede proteger código crítico, mientras que otros códigos siguen en 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.

  5. Los problemas de la compilación AOT

    La compilación AOT es difícil de configurar y compilar, y tiene una alta probabilidad de fallo. Incluso si la compilación tiene éxito, la lógica del código solo cambia de representación de bytecode a representación de código máquina. Su lógica operacional inherente sigue existiendo sin ninguna protección especial. Si se puede comprender su propio mecanismo de compilación y ejecución, todavía es posible realizar ingeniería inversa del código legible.

  6. Desofuscación con vlx-vmengine

    Desofuscar código Java con el motor de ejecución de bytecode JVM vlx-vmengine

  7. Motor de ejecución de bytecode JVM escrito en Java/Kotlin

    La depuración dinámica Java tradicional solo puede realizarse basándose en el código fuente, y sin código fuente o con archivos de clases Java ofuscados, la depuración dinámica es imposible. La ejecución de programas Java se basa en la JVM, y la JVM usa el bytecode como base de ejecución. Usamos Kotlin para construir un motor de ejecución de bytecode JVM, que puede usarse con IDEs modernos, como IDEA, para depurar programas Java a nivel de bytecode y observar el comportamiento de ejecución del programa.

  8. Ingeniería inversa de GraalVM NativeImage

    Para los programas Java que han entrado en la era de la compilación binaria, ¿se puede descompilar fácilmente su código como en la era del bytecode? ¿Cuáles son las características de los archivos binarios compilados por NativeImage? ¿Es suficiente la fuerza de la compilación binaria para proteger código importante? Para explorar las cuestiones anteriores, recientemente escribí una herramienta de análisis NativeImage que ha logrado un cierto nivel de derivación inversa.

  9. Hackeo de una aplicación Java cifrada con jhsdb (HotSpot Debugger)

    Una solución para la protección del código Java es cifrar los archivos de clases. Tales soluciones cargan archivos de clases o jar cifrados a través de un classloader personalizado. Debido a la existencia del mecanismo de enlace de JVM, este método no es efectivo y puede ser fácilmente crackeado con herramientas incluidas en el JDK.

  10. Extracción de información de clases Java de binarios compilados AOT

    AOT también se considera una solución para la protección del código Java, pero desafortunadamente, muchos programas Java no pueden separarse del framework. Debido a la complejidad del framework, incluso los programas compilados por AOT deben incluir información de clases en el archivo binario final generado, y los archivos de clases están de hecho organizados ordenadamente en el área de recursos del archivo binario.

  11. Qué es un archivo JARX

    El archivo JARX es nuestro formato de archivo de archivo propietario, que utiliza el mismo algoritmo de compresión Deflate que Zip y el algoritmo de cifrado AES para cifrar los datos.

  12. La mejor solución de protección de código Java más allá de la ofuscación

    Cifrar su código protege su propiedad intelectual y mejora enormemente la seguridad de sus aplicaciones. Hace que el robo de propiedad intelectual, la manipulación del código y el descubrimiento de vulnerabilidades de seguridad sean tan complejos y costosos que un curioso casual armado con un descompilador Java gratuito no podrá hacerlo.

  13. Alternativa a Excelsior JET

    Protector4J es más que un simple reemplazo de Excelsior JET