
Quiero usar md5deep para verificar que algunos directorios copiados se copien correctamente. ¡Pero parece que md5deep no usa los nombres de archivo almacenados en los archivos .md5 generados al comparar!
En realidad, esto significa que si copio una estructura de directorio grande (con archivos duplicados) y algo salió mal, por lo que un directorio contiene archivos (con nombres de archivo correctos y contenido incorrecto), entonces md5deep NO encontrará esto como una falta de coincidencia.
EJEMPLO:
Imaginemos que tenemos la siguiente estructura de archivos:
photos\public_photo1.jpg
photos\public_photo2.jpg
photos\private_photo1.jpg
photos\photos_my_mother_can_see\public_photo1.jpg
photos\photos_my_mother_can_see\public_photo2.jpg
Como puedes ver, ¡dos de las fotos son archivos duplicados!
Ahora imagine que mi utilidad de copia falló, de modo que el CONTENIDO de public_photo1.jpg
en realidad era el CONTENIDO de private_photo1.jpg
. ¡La estructura del directorio sigue siendo la misma!
En mi unidad de origen hice lo siguiente para generar el archivo MD5:
md5deep64 -rel c:\photos\*.* > result.md5
(¡Yo uso rutas relativas!)
Luego hago coincidir los archivos con la carpeta de destino:
md5deep64 -X result.md5 -r c:\photosdest
¡No se encontraron cambios!
Si incluso hago una coincidencia (md5deep64 -wm result.md5 -rc:\photosdest), puedo ver cómo no usó los nombres de archivos para comparar:
c:\photosdest\photos_my_mother_can_see\public_photo1.jpg matched c:\photos\private_photo1.jpg
c:\photosdest\public_photo1.jpg matched c:\photos\photos_my_mother_can_see\public_photo1.jpg
c:\photosdest\public_photo2.jpg matched c:\photos\public_photo2.jpg
c:\photosdest\photos_my_mother_can_see\public_photo2.jpg matched c:\photos\public_photo2.jpg
c:\photosdest\private_photo1.jpg matched c:\photos\private_photo1.jpg
:-(
¿Es una característica o un error?
¿Hay alguna forma de forzar que md5deep compare el MD5 de archivos con el mismo nombre de archivo y ubicación? ... ¿o debería empezar a buscar otro generador/comparador md5?
Respuesta1
Esta es una característica de md5deep, no un error. Parece que quieres utilizar el programa complementario hashdeep. Ese programa viene con md5deep.
md5deep estaba destinado a buscar archivos independientemente del nombre del archivo. Por ejemplo, al buscar el rootkit EVILEVIL.EXE, el usuario querrá encontrar cualquier archivo con el mismo hash que EVILEVIL, incluso si se le hubiera cambiado el nombre a fuzzykitten.exe.
El programa hashdeep, por otro lado, puede realizar una auditoría, que verifica el tamaño del archivo, la ubicación,yhash al hacer coincidir.