Autor Tema: Ayuda sobbre UML  (Leído 6235 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Polaco

  • Sv Jr.
  • **
  • Mensajes: 65
Ayuda sobbre UML
« : julio 04, 2005, 04:55:35 pm »
Quiero saber con que sw puedo aplicar ingeniería inversa, partiendo de codigo java, quiero obtener la respectiva representación en UML(con sus atributos y metodos) de las clases, asi como sus relaciones, multiplicidades, relaciones de herencia e implementación de dichas clases. Es resumen obtener el diagrama de clases y el diagrama de secuencias.

Me habian hablado de Poseidon.

Si saben algo, me informan.
"El sabio consigue más ventajas por sus enemigos
que el necio por sus amigos".

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: Ayuda sobbre UML
« Respuesta #1 : julio 04, 2005, 08:28:11 pm »
Mira, lo primero, para aplicar ingenieria inversa necesitas un decompilador de java, Ojo, el decompilador no te devuelve el codigo exacto de lo que se programo, sino como el compilador dejo la clase luego del preprocesado, esto significa que posiblemente no encontres exactamente la informacion que estes buscando, ni las clases necesarias, a veces incluso no se encuentran exactamente con el mismo nombre porque el compilador los cambia.

Hay cierto codigo Java que esta "ofuscado", es decir que antes de compilarlo un programa ofuscador "desordeno" por decirlo así, el codigo de tal manera que generó un nuevo archivo de codigo fuente que hace exactamente lo mismo que el original pero cuyas funciones y algoritmos estan modificados, muchas veces las funciones son partidas en varias partes, se cambian los nombres de las funciones por cadenas de caracteres ilegibles y cosas por el estilo. Aunque podras decompilar estas clases el análisis de las mismas resulta bastante complicado y es el principal mecanismo de seguridad que se utiliza en java y lenguajes similares para evitar ingenieria inversa.

Asi que si te encontras un archivo que al descompilarlo parece tener muchas funciones "basura" o resulta peculiarmente complicado probablemente es que había sido ofuscado.

Ahora con las herramientas aqui hay algunas que encontre por internet:

Decompiladores de Java:
DJ Java decompiler
http://members.fortunecity.com/neshkov/dj.html

JAD (Java DEcompiler) Herramienta de linea de comandos pero es la mas rapida y hay una que otra interfaz grafica.
http://kpdus.tripod.com/jad.html

Java -> UML

Modelistic es una extensión para Java XP de Eclipse (Una herramienta de desarrollo), Facilita el trabajo de ingenieria inversa convirtiendo los archivos java en diagramas UML.
http://www.modelistic.com/

UModel Es una herramienta comercial integrada para la ingenieria inversa en java, al igual que la anterior convierte directamente desde codigo de Java hacia UML 2.0
http://www.altova.com/products_umodel.html

Para linux

Umbrello Es una herramienta de UML, aunque tambien soporta ingenieria inversa (codigo->UML), la unica desventaja es que esta unicamente para KDE en Linux.
http://uml.sourceforge.net/index.php

Hay un programita que lo conocí en la U para dibujar diagramas de UML, se llama ArgoUML es bastante facil de usar y posee un generador de codigo que facilita la programacion.
ArgoUML: http://www.argouml.org/

Tambíen aqui hay una páginita con varias URL a otras herramientas que te pueden servir para lo que deseas hacer... echale un ojo es masque seguro que vas a encontrar una o varias aplicaciones que te van a servir:
http://plg.uwaterloo.ca/~migod/uml.html
« Última Modificación: julio 04, 2005, 08:31:45 pm por mxgxw »


Desconectado Polaco

  • Sv Jr.
  • **
  • Mensajes: 65
Re: Ayuda sobbre UML
« Respuesta #2 : julio 05, 2005, 01:13:11 am »
hey man thanks por la info. :thumbsup: Me ha servido mucho. despues te cuento en que termino.
Aunque segunn ciertas fuentes, dicen que la ingeniería inversa tiene que ver con lo que crakeas. pero ya vere que ondas!
"El sabio consigue más ventajas por sus enemigos
que el necio por sus amigos".

Desconectado Tio B

  • -^- Elite Gold -^-
  • The Communiter-
  • **
  • Mensajes: 10221
  • Vendo nanosuit barato, poco uso
Re: Ayuda sobbre UML
« Respuesta #3 : julio 05, 2005, 10:04:29 am »
se ve que esta gente lee más y ve Discovery Channel

Desconectado mxgxw

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 5665
  • Starlet - 999cc
    • mxgxw
Re: Ayuda sobbre UML
« Respuesta #4 : julio 05, 2005, 11:08:22 am »
hey man thanks por la info. :thumbsup: Me ha servido mucho. despues te cuento en que termino.
Aunque segunn ciertas fuentes, dicen que la ingeniería inversa tiene que ver con lo que crakeas. pero ya vere que ondas!

Ps fijate que los cracks no necesariamente son relacionados con ingenieria inversa.. sin embargo muchas veces se utilizan tecnicas de ingenieria inversa para poder crear los cracks... se le llama ingenieria inversa porque vos estudias un resultado para tratar de averiguar el proceso que lo genero, sería algo así como si te mostraran un edificio y tuvieras que dibujar los planos, sin conocer los planos originales porsupuesto, tendrias que investigar de que materiales esta hecho, como es la estructura y luego de todo eso puedes dibujar los planos, mas o menos así funciona la ingenieria inversa. Si en un procedimiento de ingenieria normal tenes un problema y buscas la solución, en ingenieria inversa tenes la solución y tenes que encontrar el problema jejejeje :P es un poco mas complicado pero en general a eso se refiere.
« Última Modificación: julio 05, 2005, 11:14:55 am por mxgxw »


Desconectado NoeL

  • Administrator
  • The Communiter-
  • *
  • Mensajes: 3257
    • SvCommunity
Re: Ayuda sobbre UML
« Respuesta #5 : julio 05, 2005, 11:16:44 am »
Pues es cierto la verdad es que si lo que andas buscando es un descompilador esta mero yuca por que estos programas no son tan fieles que digamos para prueba un boton ahi tenes el   Refox...un programa muy util para los que buscan codigos de programas ya ensamblados y todos pero analizando el codigo detenidamente sucede lo que dice mxgxw...que el codigo no queda exctamente igual que como fue escrito en un principio entonces debes aplicar tu sentido comun y la logica de programacion para poder determinar en realidad los procedimientos que el programa realiza a partir de una solucion dada....Suerte!!! :thumbsup:

Desconectado Tio B

  • -^- Elite Gold -^-
  • The Communiter-
  • **
  • Mensajes: 10221
  • Vendo nanosuit barato, poco uso
Re: Ayuda sobbre UML
« Respuesta #6 : julio 05, 2005, 01:25:47 pm »
para los cracks la solucion es un editor hexadecimal tipo debug, pero claro tendrias que tocar el sistema de manera my distinta ya que seria lenguaje ensamblador con el que estarias tratando