miércoles, febrero 14, 2007

Descompiladores de Java

He estado haciendo una auditoría sobre código Java y he estado usando varios descompiladores para ver los resultados. En común es que muchos de ellos el uso de mismo backend,jad. Tiene algunas limitaciones a la hora de descompilar y no está la última versión para MacOS X para powerpc.

He estado usando habitualmente Jarinspector, un proyecto de código abierto LGPL. Utiliza un pequeño envoltorio nativo y luego usa una serie de programas java para descompilar. No funciona mal.

También opensource tenemos una aplicación nativa java, jode. No la he usado mucho, pero sin embargo tiene algunas características interesantes:

  • Cambiar el nombre de clases, métodos, campos o nombres locales, usando incluso una tabla de traducción.
  • Quitar la información de depuración
  • Quitar código muerto y campos constantes
  • Optimizar la local
A la hora de usar ingeniería inversa la primera y la tercera son las más útiles para a la hora de la ingeniería inversa.

En Windows está bastante bien el dj java decompiler - que usa como backend jad. Es bastante útil desde mi punto de vista - en especial por las posibilides de descompilar en batch que tiene -

Siempre es interesante conocer las especificaciones de la máquina virtual Java, en especial el formato del fichero de clase.

Technorati Tags:

No hay comentarios: