Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: hackmeifyoucan en 11 Agosto 2008, 03:17 am



Título: ¿Como puedo comparar dos DLL?
Publicado por: hackmeifyoucan en 11 Agosto 2008, 03:17 am
Bueno por ahi me comentaron que con IDA pro, podia yo comparar 2 DLL, sin embargo no encuentro la opcion Adecuado, He estado leyendo un poco la Documentacion, sin embargo no doy con alguna opcion parecida. Alguien podria guiarme, o decirme que Software Puedo utilizar.

Lo que quiero es Comparar una DLL, un OCX y un EXE, estos son los que venian con una Actualizacion de Windows.

Saludos y Gracias!!


Título: Re: ¿Como puedo comparar dos DLL?
Publicado por: karmany en 11 Agosto 2008, 10:45 am
A qué te refieres con comparar: ¿Comparar byte a byte las dos dll y ver las diferencias?
Si es así tienes muchos programas, puedes utilizar por ejemplo Hex Comparison, que a mí me gusta bastante y además tiene una opción para trabajar con datos hexadecimales muy útil: pegar valores hexadecimales

Su página web es la siguiente:
http://www.exeicon.com/hex-comparison/
No es gratuito, pero está bien y se va actualizando.

También puedes mirar gratuitos:
http://usuarios.lycos.es/visualdiego/programas/Diego-Comparador/Diego-Comparador.exe
http://www.elguille.info/colabora/vb2006/cristianfa2_COMPARADOR.htm

Y este ejemplo igual no lo conoces: comando FC en la Consola de Windows:

Código:
C:\Documents and Settings\usuario>help FC
Compara dos archivos o conjuntos de archivos y muestra las diferencias
entre ellos


FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn]
   [unidad1:][ruta1]archivo1 [unidad2:][ruta2]archivo2
FC /B [unidad1:][ruta1]archivo1 [unidad2:][ruta2]archivo2

   /A     Muestra sólo la primera y última línea de cada grupo de
          diferencias.
   /B     Ejecuta una comparación binaria.
   /C     Omite mayúsculas y minúsculas.
   /L     Compara archivos como texto ASCII.
   /LBn   Establece el máximo número de diferencias consecutivas como
          el número de líneas especificadas.
   /N     Muestra los números de línea en una comparación ASCII.
   /OFF[LINE] No omite archivos con el atributo "sin conexión"
          establecido.
   /T     No expande tabulaciones a espacios.
   /U     Compara archivos como archivos de texto UNICODE.
   /W     Comprime espacios en blanco (tabulaciones y espacios) por
          comparación.
   /nnnn  Especifica el número de líneas consecutivas que deben
          coincidir después de una diferencia.
  [unidad1:][ruta1]nombre-archivo1
             Especifica el primer archivo o conjunto que se comparará.
  [unidad2:][ruta2]nombre-archivo2
             Especifica el segundo archivo o conjunto que se comparará.



C:\Documents and Settings\usuario>

Un ejemplo que acabo de hacer de este último caso. He creado dos archivos y sus respectivos bytes son los siguientes:
Archivo 1.dll --> 01 02 03 04
Archivo 2.dll --> 11 02 33 44 55 66

Código:
C:\Documents and Settings\usuario> FC C:\1.dll C:\2.dll /b
Comparando archivos C:\1.dll y C:\2.dll
00000000: 01 11
00000002: 03 33
00000003: 04 44
FC: C:\2.DLL es mayor que C:\1.dll


Título: Re: ¿Como puedo comparar dos DLL?
Publicado por: hackmeifyoucan en 11 Agosto 2008, 23:23 pm
Muchas gracias por tu respueta karmany, fijate que no conocia el comando.

Sin embargo y despues de Verificarlo aunque cumple con el proposito no es muy facil ver las diferencias ahi, digo es un poco mas tedioso.

mirar:

(http://hackmeifyoucan.super-red.es/img/fc.PNG)

Ahora tambien Buscando alternativas Libres, encontre uno hecho para linux en modo terminal basado en Ncurses llamado vbindiff.

mirar:

(http://hackmeifyoucan.super-red.es/img/vbindiff.png)
El programa practicamente es lo mismo que fc, sin embargo te lo muestra de una manera mas visual y ademas Con la posibilidad de editar alguno de los archivos comparados.

Gracias karmany y Un saludo!!