Software de descompilación JAVA
Debido a la alta seguridad, optimización del código, multiplataforma y otras características del lenguaje JAVA, después de que SUN lo lanzó en mayo de 1995, reemplazó rápidamente a muchos lenguajes tradicionales de alto nivel y ocupó Muchas áreas, como el desarrollo de aplicaciones de red a nivel empresarial, dominan el campo.
Sin embargo, la ventaja multiplataforma más destacada de JAVA es que no se puede compilar en código local, sino que debe ejecutarse como código intermedio en un entorno de máquina virtual, lo que hace que la descompilación de JAVA sea más avanzada. que otros. El lenguaje es fácil de implementar y el código descompilado está optimizado para ser casi tan bueno como el código fuente.
Para proteger mejor los derechos de propiedad intelectual y evitar que los logros intelectuales de la empresa sean robados fácilmente, los desarrolladores deben tener un conocimiento profundo de las herramientas de descompilación para poder tomar medidas de protección específicas.
Actualmente, existen casi 30 herramientas de descompilación de JAVA populares, tres de las cuales son productos excelentes:
1. JAD, que se usa ampliamente
Entre muchas Entre En cuanto a las herramientas de descompilación de JAVA, existen varias herramientas muy famosas que utilizan el mismo motor central: JAD, entre ellas: Front End Plus, mDeJava, Decafe Pro, Cavaj Java Decompiler, DJ Java Decompiler, NMI's Java Class Viewer y el experto en descompilación de código fuente de JAVA nacional. .
JAD en sí es una herramienta de línea de comandos sin una interfaz gráfica. La mayoría de las herramientas anteriores simplemente agregan una interfaz gráfica basada en el kernel JAD. La elección única de tantos productos es suficiente para demostrar la distinguida posición de JAD en el campo de la descompilación de JAVA.
JAD se desarrolla utilizando Microsoft Visual C. Se ejecuta muy rápido y puede manejar archivos compilados JAVA muy complejos. Numerosos parámetros permiten a JAD hacer frente de manera flexible a varios métodos de cifrado, lo que hace que el código descompilado sea más optimizado y legible. Dado que hay demasiados parámetros JAD, no es necesario explicarlos uno por uno. Algunos de los más utilizados son los siguientes (tomando la versión JAD 1.5.8f como ejemplo):
-d.
- para especificar el directorio del archivo de salida
-s - Extensión del archivo de salida (predeterminado: .jad). Normalmente, la extensión del archivo de salida se especifica directamente como .java para facilitarlo. recompilación modificada.
-8 - Convierte caracteres Unicode a cadenas ANSI Si la cadena de salida es china, se debe agregar este parámetro para mostrarla correctamente.
Las instrucciones de descompilación más utilizadas son las siguientes:
Jad –d c:\javasource –s .java -8 javatest.class
Esta instrucción The javatest.class en el directorio actual se descompila en javatest.java y se guarda en el directorio c:\javasource. La salida del mensaje está en chino en lugar de código Unicode.
2. JODE con código fuente abierto
JODE es miembro de Sourceforge.net, el sitio web de proyectos de código abierto más grande del mundo. Entre todos los descompiladores de JAVA, JODE tiene el mejor efecto de descompilación. Bueno, especialmente cuando se trata de algunos métodos de cifrado comunes, como la tecnología de ofuscación, es sobresaliente.
JODE también está desarrollado en JAVA puro Recientemente, cada vez más software de descompilación de JAVA también eligen JODE como su motor central, como JCavaj Java Decompiler, BTJ (Back To Java), el complemento JavaInsight de jEdit.
JODE es un archivo JAR ejecutable que se puede ejecutar haciendo doble clic en él en el entorno Windows.
Cabe señalar que JODE no carga archivos de clases compilados JAVA (*.class) ni paquetes de clases (*.jar) a través del método convencional Open-gt;File, pero esto se logra mediante Set Classpath. en el menú Opciones, un archivo de clase única puede ingresar su directorio de nivel superior como Classpath y luego seleccionar Recargar Classpath.
El nombre del paquete de clase o clase recién agregado aparecerá en la ventana izquierda. Haga doble clic en el nombre del paquete de clase para expandir la estructura del árbol del directorio. Haga doble clic en el nombre de la clase que necesita descompilarse. Se mostrará directamente en la esquina superior derecha de la ventana. Código fuente descompilado.
3. DAVA único
DAVA no es un descompilador de JAVA independiente, sino una parte de la herramienta de optimización de código JAVA Soot. Soot, como JODE, está desarrollado en JAVA puro y también es un paquete JAR independiente. Sin embargo, no se puede ejecutar directamente haciendo doble clic en él, sino que se ejecuta en el estado de línea de comando como JAD.
Soot tiene requisitos muy estrictos sobre la configuración de las variables de entorno. Por lo general, CLASSPATH debe configurarse de la siguiente manera:
Set CLASSPATH=CLASSPATH; .0.jar;.;
Entre ellos, c:\sootdir\ es la ruta donde se coloca el paquete de clase de hollín descargado. El .; Si no se agrega, Soot a menudo informará un error de búsqueda Sin error de clase.
DAVA se utiliza como parámetro de Soot. El uso habitual es el siguiente:
Java soot.Main –f dava –d c:\javasource javatest
Nota No es necesario que el nombre de clase final tenga el sufijo .class, porque procesa archivos de clase de forma predeterminada. Esta operación tiene el mismo efecto que los parámetros JAD antes mencionados.
DAVA adopta un método de optimización de procesos para la descompilación, que es diferente de la idea de descompilación tradicional, pero tiene un efecto de descompilación único al cambiar el método de cifrado de las clases de proceso.
Las tres herramientas anteriores tienen sus propias ventajas y desventajas, pero los resultados son muy buenos. Después de la prueba, básicamente pueden descompilar por completo algunas de las rutinas que vienen con el JDK y luego recompilarlas exitosamente sin ninguna modificación y ejecutarlas normalmente.