Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Skeletron en 24 Junio 2013, 01:42 am



Título: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: Skeletron en 24 Junio 2013, 01:42 am
Hola gente.
Les comento que tengo que hacer algo, y se los voy a plantear con un ejemplo:

Conocen esos softwares para RENDERIZAR planos, como el AUTOCAD?
Bueno, el software AUTOCAD abre un archivo de extension .dwg, precionas el boton: "RENDERIZAR", seleccionas unos parametros de configuración, precionas "ACEPTAR" y el software comienza a renderizar.

Muy posiblemente, ese software tiene una librería destinada a la tarea de renderizado. Mi pregunta es:

Yo podría desarrollar un software de renderizado que utilice esas librerias? Imaginen un software que al abrirse pide que selecciones un archivo .DWG, precias "OK" y comienza a renderizar con las librerías de autocad.

Mi pregunta ahora es:
Como hago para saber que librería usa autocad para renderizar? y como es toda la comunicación que realiza y todo eso.

Necesito desarrollar una alternativa a AutoCad, pero que solamente sirva para renderizar...

Gracias.


Título: Re: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: tincopasan en 24 Junio 2013, 05:10 am
¿depurándolo con olly?


Título: Re: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: engel lex en 24 Junio 2013, 06:34 am
veo que tienes bastante tiempo en el foro... muchos mensajes escritos... a esta altura deberías saber y estar consciente del tipo de locura que estás queriendo hacer! XD hablas de tratar de entender TODOS los parámetros que autocad le envía a una librería para renderizar!? no crees que es más fácil buscar en internet una libreria de renderizado, o buscar el libreCAD, blender o algo así que sea un cad código abierto? creo que es más fácil intentarlo con un código que puedas leer y tenga referencias, comentario y foros, antes que tener que descompilar y analizar desde 0...

es mi opinión personal :P


Título: Re: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: .:UND3R:. en 24 Junio 2013, 18:02 pm
Puedes ver las dll cargadas por el programa (en orden de carga, orden de memoria, etc.) investigando dentro de la estructura PEB (Process evioronment block), ubicada dentro de la estructura TIB (Thread information block), para acceder a ella deberías localizar el puntero a esta (FS:[30]), otra manera es depurar el programa utilizando algún debugger, saludos y suerte.


Título: Re: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: Skeletron en 24 Junio 2013, 22:25 pm
veo que tienes bastante tiempo en el foro... muchos mensajes escritos... a esta altura deberías saber y estar consciente del tipo de locura que estás queriendo hacer! XD hablas de tratar de entender TODOS los parámetros que autocad le envía a una librería para renderizar!? no crees que es más fácil buscar en internet una libreria de renderizado, o buscar el libreCAD, blender o algo así que sea un cad código abierto? creo que es más fácil intentarlo con un código que puedas leer y tenga referencias, comentario y foros, antes que tener que descompilar y analizar desde 0...

es mi opinión personal :P

Muy buena manera de tratar de "Lamer" a alguien, pero te comento algo:
No intento descompilar nada. Simplemente saber que librería usa. No me interesa COMO usa la librería, simplente quiero saber QUE LIBRERIA USA PARA RENDERIZAR. Nada mas.

Porque? Porque yo con el visual Studio, hago click en "Add reference", selecciono la librería, y el Intellisense del Visual Studio me muestra todas las clases y los metodos que tiene esa librería...
Por ejemplo, acabo de seleccionar una librería al azar, dentro de un visualizador de AutoCAD, la añadí como referencia, y EUREKA, dice algo así:
Autodesk.AutoCAD.Interop.Common.Acad3DPolylineClass()
Y muchas otras clases mas.

Posiblemente, la librería que renderice, tenga una clase que se llame:
bla_bla_bla_render_bla_bla_bla.
El cual seguramente recibe un archivo, o algo (ya veré yo que recibe), y listo :D le mando los datos que pide y listo :D así uso la librería del mejor software de renderizado y EUREKA, tengo mi objetivo cumplido.

Verás, la pregunta es:
COmo descubro que librería está utilizando?
Creí que había un software que pueda analizar que librería está consumiento muchos recursos en un momento dado, y sabiendo que el renderizado tarda muchisimas horas, sería muy facil descubrir que librería es la qu renderiza ;)

Saludos


Título: Re: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: engel lex en 24 Junio 2013, 23:24 pm
Mantengo mi opinion (xD estas diciendo lo mismo, y no es el mejor de renderizado, el blender hace un trabajo comparable)

Pero tienes razón tu pregunta es como conseguir la libreria, intenta con los process explorer o process analyzer que pueden decirte que librerias están usando...

Por otro lado a la renderizacion lo mas probable es que no archivos, sino objetos, arrays de ellos... Por ultimo recuerda no publicarlo :p es ilegal


Título: Re: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: Skeletron en 25 Junio 2013, 00:47 am
Todo era un suposicion. En realidad no es el AutoCAD ;)


Título: Re: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: engel lex en 25 Junio 2013, 00:54 am
ok! :P entonces no fastidio lo lograste con process explorer?


Título: Re: Como conocer que libreria utiliza un software en un momento determinado
Publicado por: Skeletron en 25 Junio 2013, 01:52 am
ok! :P entonces no fastidio lo lograste con process explorer?

Aún no termine de descargar el software. Cuando lo instale, te cuento. jaja