Leer la memoria de una aplicación java

1

Necesito algunos consejos de inicio aquí. Nunca hice ingeniería inversa de Java antes, pero necesitaba leer de alguna manera la memoria de una aplicación Java de escritorio en ejecución. El proceso se comunica con un servidor externo en un canal encriptado y recupera algunos archivos. Por lo que sé, los archivos son un bytecode de Java destinado a ampliar la funcionalidad de la aplicación actual. Me gustaría saber qué hay en esos archivos, por lo que luego podría intentar revertir el bytecode al código del programa para ver de cerca cómo es cambiar el comportamiento de la aplicación. ¿Puede sugerir una herramienta de depuración adecuada o decirme algo sobre esta metodología?

    
pregunta Rápli András 28.02.2017 - 02:06
fuente

2 respuestas

1

Por lo general uso el Krakatau (dis) assember enlace para examinar y ajustar los archivos de código de bytes de Java.

La única forma de obtener código en una JVM es implementar un cargador de clases. El bytecode que entra en la JVM es, por supuesto, en texto plano. Entonces, primero desarme las clases locales, localice el ClassLoader y enganche el ClassLoader para volcar el bytecode que se cargaría en un archivo (y posiblemente, cargue el código de reemplazo si lo desea).

Buena suerte, y no hagas esto en EE. UU., ya que probablemente sea una violación de DMCA.

    
respondido por el DepressedDaniel 28.02.2017 - 04:37
fuente
-1

¿Puede interrumpir el canal cifrado con un proxy (si, por ejemplo, se usa HTTPS para el cifrado) e instalar los certificados SSL del proxy en su almacén de certificados local para que el proceso confíe en el proxy? ¿Entonces puede capturar los datos de los paquetes (es decir, el código de byte) e ir desde allí? Esto no le da la imagen de lo que realmente se está ejecutando después de una descarga, pero puede ser suficiente para sus propósitos. Si no puede hacer esto (porque no es un protocolo de proxy, por ejemplo, o el proceso no utiliza el almacén local de certificados), entonces depende de su configuración local en términos de sistema operativo y nivel de privilegio, etc.

    
respondido por el David Scholefield 28.02.2017 - 08:43
fuente

Lea otras preguntas en las etiquetas