JavaSnoop – Debugging aplicaciones Java
A continuación, veamos cómo interceptar un método de un applet Java:
1. Descargamos la última versión de la aplicación JavaSnoop
Nota: Se recomienda dejar la aplicación en un directorio que no contenga espacios en sistemas Windows (ej. C:\JavaSnoop).
2. Descargamos la última versión de Java SDK (se requiere reinicio tras la instalación).
3. Fijar la ubicación del binario JAD en “Settings > Manage JAD > Set jad path”. Descargarlo del sitio web del autor. Esto nos permitirá decompilar las clases.
4. Nos aseguramos que esté creada la variable de entorno JAVA_HOME para nuestro usuario.
5. Para que no tengamos problemas con los permisos, JavaSnoop a la hora de realizar la inyección (hooks) nos ofrece en la carpeta Resources el fichero unsafe.policy. Copiaremos este fichero a %USERPROFILE%\.java.policy. En este directorio deberá encontrarse un fichero .java.policy. Tras nuestro análisis es recomendable restablecer la configuración inicial siempre.
6. Es aconsejable activar el Debug en la consola de Java y que esté siempre activa para ver los mensajes.
6. Es aconsejable activar el Debug en la consola de Java y que esté siempre activa para ver los mensajes.
7. Es muy importante el orden en el que se arranca JavaSnoop y la aplicación java. Con algunos applets es estrictamente necesario que JavaSnoop esté arrancado antes de lanzar el navegador.
8. Una vez arrancado JavaSnoop utilizaremos la funcionalidad “An exisiting process”. En este caso vemos el PID 184 que es un applet que hemos arrancado en Internet Explorer. Pulsamos en el botón de Attach para adherirnos al proceso 184:
8. Una vez arrancado JavaSnoop utilizaremos la funcionalidad “An exisiting process”. En este caso vemos el PID 184 que es un applet que hemos arrancado en Internet Explorer. Pulsamos en el botón de Attach para adherirnos al proceso 184:
9. Una vez nos hemos adherido al proceso, vamos a configurar un “New hook” para ello pulsaremos (o haremos clic) en el botón “Add new hook”. Si no sabemos aún con que clase y qué método queremos hacerle el hook, nos dirigimos a browse (hacemos clic en Browse) y nos abrirá una nueva ventana en la podremos seleccionar la clase que queramos.
A continuación seleccionamos el método que nos interesa:
Una vez seleccionados, la clase y el método, volveremos la pantalla principal:
En esta pantalla de la aplicación, si hemos seleccionamos el método (punto 1) podremos parametrizar las acciones que va a realizar JavaSnoop. Así pues le podemos decir que en tiempo de ejecución nos imprima los parámetros cuando se vaya a invocar el método, que nos imprima el contenido de la pila, que podamos modificar los parámetros que se le pasan a la función y los valores de retorno. (puntos 2 y 3).
10. También podemos ver características del proceso al que nos hemos adherido (attach) en el menu Actions.
10. También podemos ver características del proceso al que nos hemos adherido (attach) en el menu Actions.
0 comentarios:
Publicar un comentario