
Quero usar o md5deep para verificar se alguns diretórios copiados foram copiados corretamente. Mas parece que o md5deep não usa os nomes de arquivos armazenados nos arquivos .md5 gerados ao combinar!
Na verdade, isso significa que se eu copiar uma grande estrutura de diretórios (com arquivos duplicados) e algo der errado, então um diretório contém arquivos (com nomes de arquivos corretos e conteúdo errado), então o md5deep NÃO achará isso uma incompatibilidade!
EXEMPLO:
Imagine que temos a seguinte estrutura de arquivos:
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 você pode ver, duas das fotos são arquivos duplicados!
Agora imagine que meu utilitário de cópia falhou, de modo que o CONTENT de public_photo1.jpg
realmente era o CONTENT de private_photo1.jpg
. A estrutura de diretórios ainda é a mesma!
Na minha unidade de origem, fiz o seguinte para gerar o arquivo MD5:
md5deep64 -rel c:\photos\*.* > result.md5
(Eu uso caminhos relativos!)
Depois combino os arquivos com a pasta de destino:
md5deep64 -X result.md5 -r c:\photosdest
Nenhuma alteração encontrada!!
Se eu fizer uma correspondência (md5deep64 -wm result.md5 -rc:\photosdest) posso até ver como ele não usou os nomes dos arquivos 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
:-(
É um recurso ou um bug?
Existe alguma maneira de forçar o md5deep a comparar o MD5 de arquivos com o mesmo nome e local? ...ou devo começar a procurar outro gerador/comparador md5?
Responder1
Este é um recurso do md5deep, não um bug. Parece que você deseja usar o programa complementar hashdeep. Esse programa vem com md5deep.
md5deep foi projetado para localizar arquivos independentemente do nome do arquivo. Por exemplo, ao procurar pelo rootkit EVILEVIL.EXE, o usuário desejaria encontrar qualquer arquivo com o mesmo hash do EVILEVIL, mesmo que tivesse sido renomeado como fuzzykitten.exe.
O programa hashdeep, por outro lado, pode fazer uma auditoria, que verifica o tamanho do arquivo, localização,ehash ao combinar.