Está en la página 1de 5

Decompilar, parchear e ingeniera inversa en Java

Inicindo.
Para poder seguir las partes de esta exposicin es necesario tener conocimientos en la programacin en Java. Tambin tener el cdigo que se utilizar en las siguientes partes que est en el archivo adjunto a este documento. CovertJava.rar.

Mejorar la productividad con un administrador de archivos


La tcnica que se explicar a continuacin se utiliza para aumentar la productividad en el desarrollo de programacin. Cuando acabas un trabajo, la calidad y la productividad de lo que se ha realizado es lo que diferencia a los programadores expertos de los programadores novatos, con lo cual introduciremos unas cuantas herramientas para aumentar dicha productividad. Cualquier desarrollo de hacking o cracking requiere la manipulacin de diferentes archivos y directorios, el utilizar la herramienta correcta nos lo puede hacer mucho ms facil. Obviamente, cada uno debe decidir que herramienta usar. Adems debe recordar que la mayor parte de herramientas requieren de una instalacin, configuracin y aprendizaje. Vamos a ver como reemplazar el Explorador de Windows y la consola CMD.EXE, por otra combinacin avanzada. Este desarrollo lo enfocaremos en Windows ya que es donde se desarrolla la mayor parte de programas Java, pero dichas herramientas de productividad tambin pueden estar disponibles en otras plataformas. Windows Explorer es una shell simple, fcil de entender por los usuarios normales, pero no es capaz de proporcionar ayuda suficiente a las tareas que necesita ejecutar un programador. Un ejemplo muy simple es crear y ejecutar un archivo .bat. Usando el Windows por defecto, tienes que navegar al directorio objetivo, hacer clic con el ratn en unas cuantas cajas de dilogo para crear un nuevo archivo, y entonces abrir el archivo en Notepad y editarlo. Luego para ejecutar el archivo, debes pulsar dos veces el Ratn en l, pero cualquier salida u errores mostrados en la ventana de CMD se pueden perder si es abierto de forma automtica por el Explorer. La mejor forma, por lo tanto, es abrir un CMD.EXE, navegar al directorio, y entonces ejecutar el archivo. A la larga, tendrs que jugar con tres ventanas abiertas que no se sincronizan o no se correlacionan entre ellas. Una alternativa mejor est en usar un software integrado de gestin de ficheros que combina la interface de navegacin de directorios con un editor de texto, soporte de archivos, y una multitud de caractersticas que hacen las tareas comnes mucho ms fciles y rpidas.

Total Commander (La herramienta)


Total Commander es un gestor de archivos avanzado para Windows, que tiene sus races en la poca del DOS y de Norton Commander. Est repleto de caractersticas para buscar archivos, cambiar atributos de archivos, y trabajar con archivos y directorios mltiples. Trabaja en red y soporta FTP remotos, que aparecen en un panel como un directorio local. Tambin tiene un gran conjunto de atajos de teclado. Soporta tambin el poder ver el contenido de archivos comprimidos, tales como JAR y Zip, en un panel como si examinaras una subcarpeta.

La tabla 1.1 proporciona una lista de sus caractersticas. Crear, copiar, mirar, editar y borrar archivos y carpetas Visor / editor externo e interno Visor de contenidos de archivos (JAR, Zip) Extensa personalizacin de caractersticas y UI Vista i entorno parecido a Windows Menus de usuario personalizados Soporte de red de Windows incorporado Cliente de FTP incorporado Atajos de teclado Filtros de nombre de archivo Vista rpida Historial de rdenes, carpetas y vistas Asociaciones de archivos personalizados Archivos realzados Memoria de recuerdo 4MB14MB Dicha herramienta proporciona una alternativa mejor al explorador de Windows. Una vista de Total Commander se muestra en la Figura 1.1

Java IDE
Un IDE es un entorno integrado en donde se realiza el desarrollo de la programacin, este hace que realizar el cdigo sea mucho ms fcil, vamos a presentar una breve visin general del IDE y una recomendacin para utilizar alguno. La pregunta no es si se debe usar IDE o no, pero si, qu IDE debo usar. Los dos IDE libres son Eclipse (http://www.eclipse.org) promovido por IBM y NetBeans ( http://www.netbeans.org ) promovido por Sun. Ambos son buenos, aunque eclipse tiene un poco ms de experiencia. Los mejores IDE comerciales son IntelliJ IDEA, Borland JBuilder y Oracle JDeveloper. Debido a que trabajaremos con codificacin de bajo nivel y realizaremos hacking y cracking, la mejor apuesta es un IDE flexible con cache de memoria pequea. Uno bueno pero de pago es IDEA debido a su flexibilidad, enlace intuitivo, y abundancia de atajos y caractersticas de rehacer. Como libre se recomienda eclipse. Ejemplo de funcionalidad y estructura de una aplicacin: El Chat A lo largo de todas las partes siguientes, trabajaremos con la misma aplicacin. No es muy sofisticada, pero contiene un conjunto de componentes bsicos existentes en la mayora de programas de Java. Estos siguientes prrafos describen la aplicacin y su ejecucin. El Chat es una simple ejecucin TCP/IP en Java. La aplicacin habilita a los usuarios el intercambiar mensajes inmediatos a travs de la red. El Chat mantiene un historial de la conversacin y utiliza colores para diferenciar los mensajes enviados y recibidos. Este tiene una barra de men y dialog box. El Chat puede ejecutarse utilizando el script chat.bat que est ubicado en el directorio CovertJava/distrib/bin. La figura 1.2 muestra el Chat funcionando.

El Chat es ejecutado utilizando Java Swing para la interfaz de usuario y RMI para la comunicacin de red. Al ejecutarse, cada instancia del Chat crea un registro interior del proceso RMI que es usado por otras instancias para postear mensajes al usuario. Los usuarios tienen que introducir el hostname del usuario al que quieren postear un mensaje. Cuando el usuario enva un mensaje, el Chat busca el servidor remoto objeto y llama a un mtodo en este. Para probar su funcionamiento, los mensajes se pueden enviar a localhost, en cuyo caso el mismo mensaje es aadido, a la conversacin, como enviado y recibido. El diagrama UML para ClassChat es el mostrado en la figura 1.3.

Figura 1.3. Diagrama de la Clase Chat La estructura de directorios de Chat sigue las normas de desarrollo de las aplicaciones de Java. La carpeta home para los directorios de la aplicacin se llama CovertJava. Los subdirectorios que contiene son los listados en la tabla 1.3. Tabla 1.3.Estructura de directorios de la aplicacin Chat bin contiene los scripts y los scripts de desarrollo y prueba build contiene los archivos de Ant build.xml y archivos de la estructura classes directorio de archivos compilados de salida para .class distrib. contiene la aplicacin en su forma de distribucin distrib\ bin contiene los scripts que ejecutan la aplicacin distrib\conf contiene los archivos de configuracin, como archivos de poltica de Java distrib\lib contiene las libreras usadas para ejecutar la aplicacin distrib\patches contienen parches para las clases lib contiene las libreras usadas para construir la aplicacin src contiene el archivo fuente de la aplicacin Se puede realizar una aplicacin Chat con Ant usando build.xml que est en el directorio build.

También podría gustarte