14 ago 2017

Desensamblando ejecutables con Dumpbin. Parte 3

Buenas a todos, en el post de hoy continuaremos exprimiendo las posibilidades de la herramienta Dumpbin viendo cómo extraer las dependencias y símbolos de un binario.

Cómo se ha visto en anteriores posts, vamos a lanzar la herramienta Dumpbin con un nuevo parámetro, en esta ocasión "/DEPENDENTS", el cual nos dará las dependencias cargadas en el ejecutable, lo que nos proporcionará interesante información sobre si el programa hace uso, por ejemplo, de sockets que puedan permitirle comunicarse con Internet:
  • dumpbin.exe /DEPENDENTS winprocdump.exe

Otro interesante parámetro es "/SYMBOLS", que muestra la tabla de símbolos COFF. Tenéis más información sobre este parámetro en particular en el siguiente enlace: https://msdn.microsoft.com/es-es/library/b842y285.aspx

Dump of file main.obj  
File Type: COFF OBJECT  
  
COFF    SYMBOL    TABLE  
000    00000000   DEBUG      notype      Filename      | .file  
      main.cpp  
002   000B1FDB   ABS      notype      Static      | @comp.id  
003   00000000   SECT1      notype      Static      | .drectve  
      Section length       26, #relocs   0, #linenums    0, checksum 722C964F  
005   00000000   SECT2      notype      Static      | .text  
      Section length      23, #relocs      1, #linenums    0, checksum 459FF65F, selection    1 (pick no duplicates)  
007   00000000   SECT2      notype ()   External      | _main  
008   00000000   UNDEF      notype ()   External      | ?MyDump@@YAXXZ (void __cdecl MyDump(void))  
  
String Table Size = 0x10 bytes  
  
Summary  
  
      26 .drectve  
      23 .text  

La salida que tendrá sobre nuestro programa es la siguiente:
  • dumpbin.exe /SYMBOLS winprocdump.exe


Eso es todo por hoy, ¡hasta el próximo post!

7 ago 2017

Desensamblando ejecutables con Dumpbin. Parte 2

Buenas a todos, en el post de hoy seguiremos jugando con la herramienta Dumpbin, viendo como desensamblar un ejecutable de Windows.

Siguiendo la sintaxis vista en el post anterior, vamos a lanzar la herramienta Dumpbin con el parámetro "/DISASM", el cual nos permitirá desensamblar el binario. Cómo el volcado ocupa mucho tamaño y no lo veréis cómodamente en la consola de comandos, redirigiremos la salida a un fichero de texto:


Una vez volcado, podremos abrirlo con el Notepad++ por ejemplo:




Obviamente no estamos ante un Radare, OllyDbg, IDA, etc. por lo que solamente podremos leer el código desensamblado de una forma más tosca que con estas otras utilidades diseñadas específicamente para el análisis de binarios y que nos brindan otra serie de herramientas; sin embargo si que es una interesante utilidad para poder destripar un software y tener acceso rápido a su contenido, cómo seguiremos viendo en esta cadena de posts.

Saludos!