Pergunta

Eu não encontrei uma resposta a esta questão particular; talvez não há um. Mas eu estive pensando por um tempo sobre isso.

O que exatamente faz com que um arquivo binário para exibição como "jargão" quando você olha para ele em um editor de texto? É a mesma coisa com arquivos criptografados. São os valores binários do arquivo tentando ser convertido em ASCII? É possível converter a visualização para exibir valores binários brutos, ou seja, para mostrar os 1s e 0s que compõem o arquivo?

Finalmente, há uma maneira para determinar qual o programa irá abrir corretamente um arquivo de dados? Muitas vezes, especialmente com o Windows, um arquivo é órfão ou de outra forma não associada w / um programa particular. Abrindo-o em um editor de texto, por vezes, diz-lhe onde ele pertence, mas na maioria das vezes não, devido ao jargão. Se a extensão não fornece qualquer informação, como você pode determinar qual programa a que pertence?

Foi útil?

Solução

  • são os valores binários do arquivo tentando ser convertido em ASCII?

Sim, isso é exatamente o que está acontecendo. Normalmente, os valores binários do arquivo também incluem controle caracteres ASCII que não são de impressão, resultando em exibição ainda mais bizarro em um editor de texto normal.

  • É possível converter a visualização para exibir valores binários brutos, ou seja, para mostrar os 1s e 0s que compõem o arquivo?

Depende do seu editor. O que você quer é um "editor hex", em vez de um editor de texto normal. Isto irá mostrar o conteúdo matérias do arquivo (normalmente em hexadecimal, em vez de binário, uma vez que os zeros e uns ocuparia muito espaço e ser mais difícil de ler).

  • Finalmente, há uma maneira para determinar qual o programa será adequadamente aberta um arquivo de dados?

Existe um programa de linha de comando Linux chamado "file" que tentará para analisar o arquivo (normalmente à procura de padrões de cabeçalho comuns) e dizer-lhe que tipo de arquivo que é (por exemplo, texto ou áudio ou vídeo, ou XML, etc). Eu não tenho certeza se há um programa equivalente para Windows. Claro, a saída deste programa é apenas um palpite, mas pode ser muito útil quando você não sabe o que o formato de um arquivo é.

Outras dicas

Um arquivo binário aparece como jargão porque os dados em que é projetado para a máquina de ler e não para seres humanos. Infelizmente, alguns de nós se acostumar a interpretar o jargão - embora com ferramentas pouco especializados para ajudar a ver melhor os dados -., Mas a maioria das pessoas não precisa de saber

Cada byte no arquivo é tratado como um caractere no conjunto de código atual (provavelmente CP1252 no Windows). valor de byte 65 é 'A', por exemplo; você pode encontrar exemplos ilustrativos facilmente na web. Assim, os bytes que compõem os dados binários são exibidos de acordo com o conjunto de códigos - o melhor que a lata editor de texto. Ele não tenta converter o binário -. Não sei como (apenas o programa original faz)

Quanto à forma de detectar qual o programa criou o arquivo - você pode ser capaz de fazer isso algumas vezes, mas não fácil e confiável. No Unix (ou com Cygwin no Windows) o programa 'arquivo' pode ser capaz de ajudar. Este programa olha para os primeiros bytes para tentar adivinhar o programa.

dados criptografados é suposto para olhar como o jargão. não se ele não se parece com rabiscos, então provavelmente é muito bem criptografado.

Os arquivos razão que são exibição binário como jargão quando visto em editores de texto padrão, como o bloco de notas é porque quando exibido com as codificações comumente usados ??por estes tipos de aplicações (por exemplo, ASCII de UTF-8) os dados são mapeados para caracteres quando é codificado para exibição, a saída deste processo geralmente faz tão pouco sentido para os seres humanos como os dados binários sendo mapeados, ergo o jargão que você vê

Como mencionado anteriormente esses arquivos fazer mais sentido quando visto de uma forma diferente, como com um edutor hex.

Alguns tipos de arquivos podem ser reconhecidos por dados presentes em todos os arquivos de um determinado tipo, por exemplo, todos os arquivos executáveis ??(* .exe) começam com as letras MZ

O display parece interessante, porque um arquivo binário pode conter caracteres não imprimíveis. Cabe ao programa exibindo para substituir esses caracteres com outra coisa.

Isto pode ser evitado usando um editor hexadecimal. Tal programa de exibe cada byte do arquivo como o seu valor hexadecimal. Isso contribui para uma visão tabular agradável do arquivo, mas não é fácil para a pessoa média para decifrar este ponto de vista, porque não estamos habituados a olhar para os dados dessa forma.

Existem algumas maneiras de descobrir que programa um arquivo pode pertencer. Você pode olhar para o início do arquivo e com algum conhecimento, você pode reconhecer o tipo de arquivo. Existem alguns tipos que começam com os mesmos caracteres (RAR, GIF etc.). Para outros tipos pode não ser tão fácil.

No Linux, você pode usar o comando "file" para ajudar a determinar o tipo de arquivo. Há provavelmente programas para Windows que irá fazer o mesmo.

Os dados binários é frequentemente muito aleatória. dados codificados, em particular, por definição. Cada byte pode ser representado por um de 256 caracteres (deixando Unicode fora da equação). ASCII cobre apenas 128 destes, e apenas 94 destes são caracteres de impressão reais. Fora do intervalo ASCII, você tem um número de caracteres internacionais e símbolos estranhos. Há certamente mais de 128 deles, por isso é preciso especificar uma página de código para selecionar um conjunto específico de símbolos.

De qualquer forma, já que os arquivos binários pode ser representado como uma variedade muito aleatória de personagens conhecidos e desconhecidos, o arquivo será parecido com o jargão se você abri-lo em um editor.

Você sempre pode abrir um arquivo (binário ou arquivo de texto, não há realmente nenhuma diferença) em um editor hexadecimal, e olhar para os dados binários brutos.

Não há nenhuma maneira de saber qual o programa criou um arquivo específico. Em particular, se o programa tiver criptografado os dados, toda esperança está perdida. Caso contrário, muitas vezes é fácil reconhecer certos "assinaturas".

Sim, Wordpad e bloco de notas e muitos outros editores de texto assumir que qualquer arquivo que você abrir com ele é um arquivo de texto e vai tentar exibir os caracteres ASCII representados pelos bytes no arquivo.

Hex Editores são feitas para arquivos binários Exibir e editar. Eles costumam exibir cada byte como um par de dígitos hexadecimais em vez de "1s e 0s" porque é mais fácil de ler dessa forma.

Um editor de texto torna muito poucas hipóteses sobre os dados que entram em que, além de coisas como codificações de caracteres. Assim, ele vai (como você diz) ler os dados do arquivo como ASCII e exibi-lo dessa forma. Desde dados binários nem sempre estão dentro do intervalo alfanumérico, você começa rabiscos. Como para mostrar os valores binários, você precisa de um editor hexadecimal como XVI32 .

Os arquivos binários muitas vezes não têm fora de contexto do programa que usa-los. Alguns formatos binários contêm uma seqüência mágica de 4 bytes no início (por exemplo, arquivos .class Java começar com "café"), mas reconhecê-los sem o seu programa, você precisa de um mapeamento dessas seqüências de 4 bytes. Eu acredito que algumas distribuições Linux contêm essas informações para uma ampla variedade de formatos binários e examinará o início do arquivo para tentar identificá-lo. Fora isso, não há muito que você pode fazer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top