Encontre sequência em arquivos usando o Editor HEX

2

Alguns dias atrás, decidi desfragmentar e otimizar meu disco rígido externo de 2 TB usando o Desfragmentador Auslogics. Agora, um pouco de fundo aqui. A partição que eu desfragmentou foi uma partição de 1,8 TB criptografada por VeraCrypt, um fork do TrueCrypt. Depois que a desfragmentação foi concluída, descobri que vários arquivos foram corrompidos. Os arquivos nos quais eu pude detectar a corrupção eram todos arquivos compactados, compactados usando a compactação padrão do Windows 10. Abri os arquivos no WinHex e vi uma coisa curiosa: O final de todos esses arquivos corrompidos tinha um bloco da sequência "DF DF DF". Aqui está a captura de tela do problema.Observe que, embora a imagem mostre que é um arquivo de arco, ele ainda foi compactado pela compactação do Windows. O curioso é que, mesmo que os arquivos tivessem esses fragmentos DF, uma Pesquisa Binária da partição montada não produziu nenhuma sequência.

Agora eu quero criar um arquivo em lotes que:

  • Crie uma lista de arquivos compactados no disco
  • Verifique a sequência DF no final do conteúdo binário de cada arquivo
  • Faça uma lista de todos os arquivos afetados

Tentei resolver isso usando o script do Powershell, mas não obtive êxito. Acho que abordar o problema na plataforma Linux seria muito mais fácil, mas não tenho idéia de como fazê-lo. Qualquer ajuda ou sugestão seria muito apreciada.

Nota adicional: Muitos disseram que a Pesquisa Binária da partição montada não teve êxito devido ao fato de a partição estar criptografada. Isto é errado. Montei a partição antes da pesquisa. Portanto, a pesquisa não estava nos dados RAW do HDD, mas nos dados da partição não criptografada.

Detalhes adicionais: Sistema operacional: Windows 10 Professional X64 / Ubuntu 14.04 x64 Sistema de arquivos: NTFS

Sabyasachi Mukherjee
fonte
Eu posso te dar apenas um palpite. Em Hex DF está o caractere 233, em alguma página de código (definida) a letra Ú. Disse poucos. Se você o vir em formato binário, o padrão DF= 11011111parece ser um dos padrões usados ​​para limpar com segurança o disco rígido. Se algo der errado e esse segmento tiver sido substituído por motivos de segurança ... Tente entender como funciona a ferramenta de desfragmentação usada em uma partição criptografada. Boa sorte.
Hastur 29/07
O que eu acho é que o PerfectDisk já estava sendo executado em segundo plano e, quando executei um segundo desfragmentador, houve um conflito entre os dois desfragmentadores, e os arquivos compactados foram os que mais sofreram.
Sabyasachi Mukherjee

Respostas:

2

O Get-Contentcmdlet com as opções -Encoding Bytee -Tailfornece o que você deseja comparar no PowerShell. Assumindo que é onde você falha.

kRush
fonte
Aqui está um link que me impediu de usar a opção -Encoding Byte. Esta ferramenta pode fazer a mesma tarefa?
Sabyasachi Mukherjee
Ajudaria se eu dissesse a você que o Microsoft MVP de 250 mil representantes está falando mal dele? Parece que a ferramenta poderia fazê-lo, mas, a menos que você tente algo e forneça detalhes específicos sobre o que está errado, estou fora daqui, especialmente vendo como isso é basicamente um engodo de sua própria pergunta anterior.
KRush
Bem, montei a partição no modo somente leitura e tentei o Get-Contentcmdlet, e funcionou! Quanto à questão de ser uma pergunta idiota, a pergunta anterior era referente à recuperação de dados, e apenas à pesquisa de arquivos danificados.
Sabyasachi Mukherjee
@SabyasachiMukherjee Suponho que agora você pode até upvote a resposta ... :-) ... Nem todas as pessoas quer ser um herói anônimo :-)
Hastur
Não tenho os pontos de reputação necessários para votar em público. Desculpa.
Sabyasachi Mukherjee
0
Get-ChildItem -recurse -file -Attributes Compressed -path $Path | Foreach-Object -Process { if ((Get-Content -Tail 1 -encoding String -literalpath $_.fullname).endswith("ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß")) { Write-Output "$($_.Name) `t $($_.FullName) `t $($_.length)"}  }

Um forro simples. Basicamente, com base no que o kRush disse. Substitua $ Path pelo caminho correto.

Mycroft Holmes
fonte