Eu tenho um arquivo, um pouco maior que 500 MB, que está causando alguns problemas.
Acredito que o problema esteja no fim da linha (EOL) da convenção usada. Gostaria de examinar o arquivo em sua forma bruta não interpretada (1) para confirmar a convenção EOL do arquivo.
Como posso visualizar o "binário" de um arquivo usando algo incorporado ao Windows 7? Eu preferiria evitar ter que baixar qualquer coisa adicional.
(1) Meu colega e eu abrimos o arquivo nos editores de texto e eles mostram as linhas como seria de esperar. Mas os dois editores de texto abrirão arquivos com diferentes convenções de EOL e os interpretarão automaticamente. (TextEdit e Emacs 24.2. Para o Emacs, criei um segundo arquivo com apenas os primeiros bytes de 4K usando head -c4096
uma caixa Linux e abri-o na caixa do meu Windows.
Tentei usar o modo hexl no Emacs, mas quando fui para o modo hexl e retornei ao modo de texto, o conteúdo do buffer mudou, adicionando um ^ M visível ao final de cada linha, por isso não estou confiando nisso no momento.
Acredito que o problema possa estar no final dos caracteres de linha usados. Os editores que eu e meu colega de trabalho tentamos (1) reconheceram automagicamente a convenção de fim de linha e nos mostraram as linhas. E com base em outras evidências, acredito que a convenção da EOL é apenas para retorno de carro. (2) somente retorno.
Para saber o que realmente está no arquivo, eu gostaria de examinar o conteúdo binário do arquivo, ou pelo menos alguns milhares de bytes do arquivo, preferencialmente em Hex, embora eu possa trabalhar com decimal ou octal. Apenas os zeros seriam bem difíceis de se olhar.
ATUALIZAR
Exceto o que sugere DEBUG
, todas as respostas abaixo funcionam em certa medida ou em outra. Votei cada um deles como útil. Minha pergunta foi mal formada. Ao testar cada solução sugerida, achei que realmente queria exibir lado a lado o conteúdo hexadecimal e de texto, e que queria que fosse algo em que, quando eu tivesse o cursor sobre alguma coisa, um valor de byte ou o caractere de texto, a coisa correspondente na outro lado seria destacado.
Na verdade, eu resolvi meu problema quando o modo hexl do Emacs começou a funcionar "corretamente". Acabei não usando nenhuma dessas respostas, apenas as testando (realmente deveria investigar o comportamento estranho do Emacs e registrar um relatório de erro).
Respostas:
Você precisa de um "editor hexadecimal". Eu uso o "Hex Editor Neo" há anos e é muito bom. Está disponível nas versões gratuita e paga . (E tenho certeza de que existem outras ferramentas semelhantes disponíveis.)
fonte
Se você possui o powershell versão 5.0 ou posterior, pode usar a
powershell
função internaFormat-Hex
fonte
Format-Hex
não está disponível no meu PowerShell; Acabei de receber um erro "não reconhecido"Integrado, rápido e sujo: inicie
powershell
, execute:TotalCount é a contagem de bytes que você deseja ler do arquivo.
Google 'powershell hexdump' para obter versões muito mais polidas / viáveis.
Se você possui as Ferramentas do Windows Resource Kit (não exatamente integradas, mas fechadas), também pode usar um utilitário de linha cmd chamado
list.exe
. É um pequeno editor com o modo hexadecimal. Projetado especificamente para trabalhar com arquivos grandes:fonte
list.exe /?
comando help não fornece muitas informações, mas uma vez dentro do editor, basta clicar?
para ver os comandos.H
abre o editor Hex, eF1
alterna a forma como o Hex é exibidoIsso também funciona em tudo após o XP:
certutil -encodehex MyProgram.exe MyProgram.txt
O XP requer o Pacote de Ferramentas Administrativas do Windows Server 2003 a partir daqui:
https://www.microsoft.com/en-us/download/details.aspx?id=16770
fonte
Copie o arquivo para um nome com uma
.COM
extensão, onde o nome base não tenha mais que oito caracteres. CorreEle dará um
-
prompt ' '. Tiporepetidamente para d isplay o arquivo 128 bytes de cada vez. Tipo
para exibir 128 bytes começando no endereço , que deve ser digitado em hexadecimal, em que o início do arquivo é o endereço 100. Digite
para exibir do endereço 1 para o endereço 2 . Tipo
para exibir num bytes (comprimento) começando no endereço . num também é inserido em hexadecimal. Use
Q
para sair.Por exemplo,
fonte
C:\>attrib debug.exe /s
. Resultados:File not found - debug.exe
. Não foi possível encontrar o funcionário, a depuração não é mais uma declaração suportada , mas pelo que vi na Web, parece que o suporte a depuração foi descartado há algum tempo. Encontrei DebugDiag da Microsoft. (Download extra.) Depuração? Talvez ele suporte a visualização de arquivos em HEX? Entregue como um arquivo .MSI. Precisa de uma senha de administrador para instalar. Eu não sou um.head -c4096 bigFileName > smallFileName
no linux para obter os primeiros 4 KB dos arquivos. Linhas são pequenos o suficiente para que quatro KB tem abundância de linhas para os meus propósitoshexdump -C
enquanto estiver no Linux?O HxD é um editor hexadecimal portátil, o que significa que não é necessária instalação e nada mais é do que um único arquivo exe.
http://mh-nexus.de/en/hxd/
Outra opção igualmente portátil é o Frhed:
http://frhed.sourceforge.net/en/screenshots/
fonte
Como o Windows 7 vem com o dotnet framework 3.5 embutido, você terá o compilador C # embutido, para poder pegar, por exemplo, a lista de http://illegalargumentexception.blogspot.co.uk/2008/04/c- file-hex-dump-application.html e compile usando
e você deve terminar com um printhex.exe, que deve exibir caracteres hexadecimais e ascii.
fonte
Não é o ideal, mas se você realmente não deseja baixar nada, tente usar fc / b (isto é, comparação de arquivos no modo binário) para comparar esse arquivo com outro arquivo completamente diferente, e ele mostrará o código hexadecimal valores de cada byte diferente. Você pode obter alguns valores que são iguais nos dois arquivos e, portanto, podem ser ignorados na saída, mas é possível saber se isso acontece verificando os valores ausentes na coluna de deslocamento.
fonte
Você pode usar a função PowerShell abaixo, juntamente com Get-Content, para ver um hexdump do conteúdo do arquivo, ou seja
Get-Content -Encoding Byte 'MyFile.bin' | Format-HexDump
,. Demora cerca de 23 segundos para despejar um arquivo de 222 KB e, se desejado, a saída pode ser redirecionada para um arquivo de texto para facilitar a análise do despejo.A saída é assim:
fonte
Como o texto sublime é meu editor favorito, eu uso o plug-in para visualizar arquivos hexadecimais. http://facelessuser.github.io/HexViewer/
fonte
Eu sei que você está usando o Emacs, mas os usuários do Vim podem usar o
xxd
utilitário:ie
fonte