Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: SubAtomicParticula en 17 Septiembre 2016, 10:18 am



Título: Programar un Desensamblador
Publicado por: SubAtomicParticula en 17 Septiembre 2016, 10:18 am
Saludos, estoy trabajando en un Desensamblador en C++, la cuestión es que comienzo a desensamblar el código desde el Entrypoint y voy decodificando instrucciones, cuando encuentro un CALL salto a la dirección y cuando llega el RET vuelvo al lugar donde se llamaba al CALL.

Cuando no encuentro más código nuevo comienzo a analizar los saltos condicionales JXX hasta recorrer todo el código binario. Pero pronto me dí cuenta que esta forma de desensamblar un EXE no era correcta.

El típico programa Windows cuando crea la Ventana principal del programa pasa la dirección de memoria de la función que se encargará de atender los eventos. Y seguro que hay otro tipo de situaciones que no estoy contemplando.

Si alguien puede ayudarme sobre cómo desensamblar un ejecutable, tengo como referencia el PE Explorer 1.99 pero no llego a entender como obtiene el Desensamblado del EXE.

Muchas gracias.


Título: Re: Programar un Desensamblador
Publicado por: MCKSys Argentina en 18 Septiembre 2016, 01:30 am
Hola!

Te dejo esta página (https://en.wikibooks.org/wiki/X86_Disassembly/Disassemblers_and_Decompilers), donde encontrarás mucha info sobre el tema.

Puedes recurrir al fuente de los proyectos open source para quitarte las dudas que tengas.

Inlcuso desde la página de Olly (http://ollydbg.de/), te puedes bajar el desemsamblador de la primera versión de Olly y pegarle una mirada.

Saludos!


Título: Re: Programar un Desensamblador
Publicado por: SubAtomicParticula en 18 Septiembre 2016, 09:33 am
Gracias MCKSys Argentina, trabajaré en ello.


Título: Re: Programar un Desensamblador
Publicado por: apuromafo CLS en 19 Septiembre 2016, 04:36 am
https://derevenets.com/ -> programado

https://retdec.com/decompilation/ -> web

 


Título: Re: Programar un Desensamblador
Publicado por: surfdata en 16 Octubre 2016, 17:48 pm
Magnificos aportes , yo también estoy interesado en conocer cómo funciona un desensamblador a nivel interno y ésto me sirve mucho.