
Extrator de arquivos de baixo nível para NTFS via linha de comando
Introdução Esta é uma aplicação de console que copia ficheiros de volumes NTFS utilizando um método de leitura de baixo nível do disco.
Sintaxe RawCopy /ImageFile:FullPath\ImageFilename /ImageVolume:[1,2...n] /FileNamePath:FullPath\Filename /OutputPath:FullPath /AllAttr:[0|1] /RawDirMode:[0|1|2] /WriteFSInfo:[0|1] /TcpSend:[0|1]
Explicação dos parâmetros /ImageFile: O caminho completo e nome do ficheiro de imagem de onde extrair. Se este parâmetro for utilizado, então /ImageVolume: deve ser definido. Opcional. /ImageVolume: O número do volume de onde extrair. Se o volume não for NTFS, nada será extraído. Usado apenas com /ImageFile:. /FileNamePath: O caminho completo e nome do ficheiro a extrair. Pode também estar na forma Volume:MftRef. Obrigatório. /OutputPath: O caminho de saída para onde extrair o ficheiro. Opcional. Se omitido, o caminho de extração assume como padrão o diretório do programa. /OutputName: O nome do ficheiro de saída. Opcional. Se omitido, o nome do ficheiro será o do ficheiro original. Usado apenas para substituir o nome original. /AllAttr: Flag booleana para acionar a extração de todos os atributos. Opcional. O padrão é 0. /RawDirMode: Um modo opcional de listagem de diretório. 0 não imprime. 1 imprime detalhadamente. 2 imprime de forma básica. Se omitido, o padrão é 0. Pode ser usado em conjunto com qualquer um dos outros parâmetros, no entanto, para que isso funcione, não é possível definir FileNamePath com um MftRef. /WriteFSInfo: Uma flag booleana opcional para escrever um ficheiro com algumas informações do volume em VolInfo.txt no diretório de saída definido. /TcpSend Uma flag booleana opcional para indicar que a saída deve ser enviada pela rede. Se esta flag estiver definida, então o valor de /OutputPath: deve ser IP:PORT ou DOMAIN:PORT
Esta ferramenta permite-lhe copiar ficheiros que normalmente não estão acessíveis porque o sistema os bloqueou. Por exemplo, as colmeias do registo como SYSTEM e SAM. Ou ficheiros dentro de "System Volume Information". Ou pagefile.sys. Ou qualquer ficheiro no sistema de ficheiros.
Suporta ficheiro de entrada especificado quer pelo caminho completo do ficheiro, quer pelo seu número de registo $MFT (número de índice).
Então, como obter o número de índice de um determinado ficheiro que não seja um dos ficheiros de sistema conhecidos? Desde a versão 1.0.0.13, a funcionalidade do RawDir foi integrada no RawCopy. Dessa forma, é possível pesquisar em diretórios como "System Volume Information" (RawCopy.exe /FileNamePath:"c:\System Volume Information" /RawDirMode:2).
Para ficheiros de imagem, a letra do volume no parâmetro /FileNamePath: é ignorada.
Ao especificar caminhos de dispositivo em /FileNamePath, é possível aceder a dispositivos anexados que não tenham volumes montados. Exemplos são HarddiskVolume1, Harddisk0Partition2, HarddiskVolumeShadowCopy1, PhysicalDrive1.
Para extrair ficheiros de uma shadow copy dentro de um ficheiro de imagem, terá de montar o ficheiro de imagem previamente para que o Windows apresente uma ligação simbólica para a shadow copy, como \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy60. Recomenda-se montar a imagem com uma ferramenta como o Arsenal Image Mounter (que é gratuito).
O parâmetro /WriteFSInfo: pode ser útil ao fazer scripting, uma vez que SectorsPerCluster e MFTRecordSize são usados com LogFileParser e Mft2Csv.
Ao usar /TcpSend:1 para enviar a saída para a rede, deve obviamente ter algo a escutar no destino para que isto funcione. Por exemplo, netcat. Por enquanto, os dados são enviados como estão pela rede, não encriptados.
Esta versão é incompatível com Windows 2000 / NTFS 3.0. Preparei uma compilação especial a partir da v1.0.0.19 que pode ser usada nesse sistema; https://github.com/jschicht/RawCopy/releases/download/1.0.0.19/RawCopy_v1.0.0.19_.Win2000.zip As versões anteriores não foram testadas.
Exemplos de uso
Exemplo para copiar o ficheiro de hibernação de um sistema em execução e guardá-lo em E:\output\hiberfil_c.sys RawCopy.exe /FileNamePath:C:\hiberfil.sys /OutputPath:E:\output /OutputName:hiberfil_c.sys
Exemplo para copiar a colmeia SYSTEM de um sistema em execução RawCopy.exe /FileNamePath:C:\WINDOWS\system32\config\SYSTEM /OutputPath:E:\output
Exemplo para extrair o $MFT especificando o seu número de índice, para o diretório do programa e substituir o nome de ficheiro de saída padrão para MFT_C.bin. RawCopy.exe /FileNamePath:C:0 /OutputName:MFT_C.bin
Exemplo para extrair o número de referência MFT 30224 e todos os atributos, incluindo $DATA, e enviá-lo para C:\tmp: RawCopy.exe /FileNamePath:C:30224 /OutputPath:C:\tmp /AllAttr:1
Exemplo para aceder a uma imagem de disco e extrair MftRef ($LogFile) do volume número 2. RawCopy.exe /ImageFile:e:\temp\diskimage.dd /ImageVolume:2 /FileNamePath:c:2 /OutputPath:e:\out
Exemplo para aceder a uma imagem de partição/volume e extrair file.ext e enviá-lo para E:\out. RawCopy.exe /ImageFile:e:\temp\partimage.dd /ImageVolume:1 /FileNamePath:c:\file.ext /OutputPath:e:\out
Exemplo para fazer uma listagem raw de diretório em modo detalhado em c:$Extend: RawCopy.exe /FileNamePath:c:$Extend /RawDirMode:1
Exemplo para fazer uma listagem raw de diretório em modo básico em c:\System Volume Information dentro de um ficheiro de imagem de disco: RawCopy.exe /ImageFile:e:\temp\diskimage.dd /ImageVolume:1 /FileNamePath:"c:\System Volume Information" /RawDirMode:2
Exemplo para fazer uma listagem raw de diretório em modo detalhado no nível raiz dentro de uma shadow copy: RawCopy.exe /FileNamePath:\.\HarddiskVolumeShadowCopy1❌\ /RawDirMode:1
Exemplo para extrair $MFT da partição 2 do disco rígido 1 e enviá-lo para e:\out: RawCopy.exe /FileNamePath:\.\Harddisk0Partition2:0 /OutputPath:e:\out
Exemplo para extrair $MFT do segundo volume em PhysicalDrive0 e guardá-lo como E:\out\MFT_Pd0Vol2.bin: RawCopy.exe /FileNamePath:\.\PhysicalDrive0:0 /ImageVolume:2 /OutputPath:e:\out /OutputName:MFT_Pd0Vol2.bin
Exemplo para extrair $LogFile do volume do sistema e enviá-lo pela rede: RawCopy.exe /FileNamePath:c:$LogFile /TcpSend:1 /OutputPath:10.10.10.10:6666 RawCopy.exe /FileNamePath:c:$LogFile /TcpSend:1 /OutputPath:www.mypublicdomain.com:6666