Desde o enorme sucesso desta questão, fiquei sem respostas, se houvesse alguma. Mas continuei pesquisando e encontrei um utilitário da Microsoft que data de 1999, chamado nfi.exe, parte da Fase 3 Service Release 2 das ferramentas de suporte OEM para Windows NT 4 e 2000 . O utilitário faz exatamente o que eu precisava, recebe um setor e retorna um arquivo. Mas isso é para setores individuais, então eu tive que criar um script para automatizar o processo. É um script em Python (2.7+) que funciona assim:
Ele recebe como entrada um arquivo de log ddrescue, analisa, chama nfi.exe para cada setor no arquivo e gera uma lista com os arquivos em ordem alfabética.
>sector_correlator.py -h
usage: sector_correlator.py [-h] [-v] [-n \path\to\nfi.exe] [-V] [-L]
logfile nt-device-path output file
Receives a list of sectors and returns a list of files which resides in them.
positional arguments:
logfile path to ddrescue's logfile.
nt-device-path NT-style path to physical device, like
\device\harddisk1\dr1
output file filelist output file name
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-n \path\to\nfi.exe nfi.exe's path, if not speciified, assumes's it is in
the same path as the script
-V enables verbose mode
-L save nfi.exe's output log to nfi_raw.log
Exemplo:
sector_correlator.py sdb.log \devices\harddisk0\dr0 filelist.txt
Onde: sdb.log é o log do ddrescue,
\ device \ harddisk0 \ dr0 é um caminho no estilo NT para o HD (você o descobre usando uma ferramenta sysinternals chamada WinObj e o Utilitário de Gerenciamento de Disco
e filelist.txt é a lista de arquivos que você deseja. Será assim:
\Documents\Downloads\Evernote_4.5.1.5432.exe
\Documents\Downloads\Programs\Apophysis207SE.exe
\Documents\Downloads\Programs\GetGnuWin32-0.6.21.exe
\Documents\Downloads\Programs\mbam-setup.exe
\Documents\Downloads\Programs\msnbackup133.exe
\Documents\Downloads\Programs\x64Components_v254.exe
Os outros argumentos no script são opcionais e são explicados quando você o executa com -h. Por padrão, o script assume que o nfi.exe está no mesmo diretório, caso contrário, use -n pathtonfi.exe.
Por fim, aqui está o link para o script: sector_correlator.py
É muito rudimentar e não tem tratamento de erros, mas faz o trabalho.