Saltar al contenido

¿Cómo ofuscar el código Java rápidamente?

Posterior a buscar en diversos repositorios y páginas webs al concluir nos hemos encontrado la resolución que te compartiremos aquí.

Solución:

Q1. Entonces, ¿alguien podría decirme, por favor, algunos ofuscadores simples o algunos pasos simples para usar proguard para que pueda ingresar “abc.jar” y generar “obfuscate_abc.jar” o algo así de simple?

Simplemente elija ProGuard, definitivamente es una buena herramienta (recomendada en muchas respuestas aquí en SO como esta, esta y esta).

Q2. Una cosa más, como mi programa Java usa bibliotecas externas, ¿debería ofuscar esas bibliotecas también?

En mi humilde opinión, no es necesario (sin mencionar que es posible que no).

Q3. ¿Hay algún complemento de eclipse o netbeans disponible para esta ofuscación?

Prefiero sugerir usar Ant Task o proguard-maven-plugin. Consulte esta pregunta sobre el complemento maven si es necesario.

Q4. Entonces, una pregunta más es ¿Por qué necesitamos mantener esa tabla de mapeo con nosotros? Simplemente podemos conservar una copia de la aplicación no ofuscada para realizar cambios en ella (si es necesario en el futuro). ¿Hay alguna razón para conservar ese archivo de tabla de mapeo con nosotros?

Sí, para “traducir” stacktrace.

Intenté esto desde cero. Debería ayudarte a empezar. Pienso que el key será comprender las “opciones de mantenimiento” en el archivo de configuración.

Usando este código:

import java.util.*;

public class Example 

    public static void main(String... args) 
        Example ex = new Example();
        ex.go();
    

    public void go() 
        String[] strings =  "abc", "def", "ijk" ;
        for (String s : strings) 
            System.out.println(s);
        
    


Creé un Ejemplo.jar. Copié proguard.jar del directorio lib de ProGuard y ejecuté esta línea de comandos

java -jar proguard.jar @myconfig.pro

donde myconfig.pro contiene:

-injars Example.jar
-outjars ExampleOut.jar
-libraryjars /lib/rt.jar

-keep public class Example 
    public static void main(java.lang.String[]);

Esto produce ExampleOut.jar que contiene la misma funcionalidad y está ofuscado (verificado con JAD). Tenga en cuenta que no usé un manifiesto, así que para probar la funcionalidad, desarmé y probé la clase. Los puntos de entrada de ejecución dentro de los frascos se dejan al lector.

Hay muchas más opciones de mantenimiento enumeradas en la sección Uso.

Solo necesita ofuscar las otras bibliotecas en el caso de que necesite protegerlas contra lo que crea que la ofuscación está haciendo por su código. Sin embargo, debe leer las licencias de esas otras bibliotecas para ver si le impiden distribuir versiones modificadas.

Si estás de acuerdo, puedes dejar una crónica acerca de qué le añadirías a esta reseña.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *