Desempacar PeiD 0.95 (Parte II)

Tamaño de letra:

¿Por qué reconstruir la IAT?

En el anterior tutorial dejamos pendiente la reconstrucción de la IAT y quiero recordar que estamos parados en el OEP en OllyDBG 2. Ya tenemos nuestro archivo dumpeado: dump.exe. Vamos primeramente a intentar entender por qué es necesario reconstruir la IAT en el dumpeado que hemos realizado de un UPX.

Reconstruir la IAT

Aunque ya he dicho que sobre la IAT (Import Address Table) voy a hablar detenidamente en otros tutoriales y con mucho más detalle, vamos a ver de forma muy simple por qué en el archivo dump.exe la IAT está destrozada. La respuesta simple es que la IAT del programa descomprimido es generada automáticamente por el propio UPX. Esta nueva IAT suele estar en otro lugar y es diferente de la IAT original del programa empacado con UPX. Para este tutorial no hay que explicar más, será en específicos sobre la IAT.

Tenemos OllyDBG ejecutándose y parado en el OEP como vimos en el anterior artículo. Hemos generado dump.exe. Vamos a ejecutar el programa ImportRE. En el desplegable "Attach to an Active Process" vamos a buscar nuestro proceso peid.exe que es el que está detenido y depurándose en OllyDBG 1.

En la parte de abajo el programa me pide de momento 1 dato:

  • OEP: El OEP sabemos que está en 0046F49E, así que ahí tenemos que introducir lo siguiente: 0006F49E2
    (Hay que quitar la image base ya que ImportRE trabaja con la RVA. Si quieres un programa para hacer esta operación automáticamente puedes usar el programa File Location Calculator que hice y en breve subiré a la web)

Ahora simplemente pulsa el botón IAT AutoSearch (búsqueda automática de la IAT) 3, te saldrá una ventana y se habrán creado dos nuevos datos:

  • RVA: 00007FFC (4)
  • Size: 0000039C (5)

No quiero complicarlo, así que te digo que esos datos son totalmente correctos. Ahora pulsa el botón Get Imports 6 y verás cómo se rellena correcta y completamente la ventana 7.

Como el proceso ha sido sencillo, vamos a hacerle trabajar a ImportRE y que nos cree una nueva sección con la nueva IID. Pulsa el botón Fix Dump (8) tildando como se ve en la imagen "Add new section" (añadir nueva sección). Selecciona el archivo dump.exe que hemos creado y automáticamente ImportRE (que hace un trabajo fabuloso) crea un nuevo archivo llamado dump_.exe. (9). Ya tenemos realizado el dumpeado:

Reconstruir IAT con ImportRE

Si ahora ejecutas dump_.exe verás que funciona y parece que lo hace correctamente pero... si pulsas el botón Entropy o algún otro más, verás que sale una ventana muy bonita:

Error ejecución dump_.exe

Un usuario en la web comentó cómo poder solucionar este error. Es fácil dar con la solución y verás que el programa hace unos chequeos de integridad. Mucha gente puede pensar el porqué de esto, pero es algo razonable ya que se verifica que el programa es original y que no contiene amenazas. Analizaremos el problema en el siguiente tutorial.

Última actualización: Miércoles, 14 Diciembre 2011

No tiene privilegios para responder a los comentarios.


 

También te puede interesar. Relacionados:

Visitas: 8487253