Como converter um arquivo binário para um formato de texto legível
Isso depende dos dados que o arquivo contém. Arquivos binários podem ser combinações de instruções de máquina e dados binários, a maioria dos quais são simplesmente código não imprimível, e cadeias de texto, em ascii ou unicode, e comprimido ou descomprimido. Alguns formatos de arquivo comprimido podem ser simplesmente descomprimidos, se o arquivo original estava em formato texto.
O conjunto de utilitários GNU coreutils tem dois programas de propósito geral que apresentam dados binários em formato legível: od, (Octal Dump) e strings. od' lê bytes ou palavras binárias mais longas e as torna como caracteres imprimíveis ou valores octal, decimal ou hexidecimal, de acordo com as opções do programa selecionado. O 'strings' lê o byte do ficheiro e imprime sequências de bytes que estão no intervalo numérico ascii imprimível, a maioria dos quais são simplesmente caracteres aleatórios.
Existem também utilitários específicos para diferentes formatos binários, tais como pdftotxt, um programa da colecção de utilitários Poppler que extrai texto simples de ficheiros PDF, e colecções de utilitários que operam em ficheiros em formato TeX DVI. Existem desmontadores de propósito especial para tentar extrair código de máquina legível por humanos de um arquivo executável, usado para engenharia reversa, mas não são úteis para outros fins.
E, alguns formatos de arquivo, como o Microsoft OpenXML, são arquivos compactados que contêm múltiplos arquivos, incluindo imagens e texto marcados em XML. Arquivos de imagens, claro, não têm significado textual, e são eles mesmos estruturas de dados comprimidos que representam uma grade de pontos coloridos ou uma estrutura de dados que pode ser renderizada como uma grade de pontos coloridos.
Por exemplo, aqui estão as primeiras 10 linhas de saída de od e strings, lendo o pacote binário do navegador Google Chrome para instalação em um sistema Linux baseado em Debian, do qual a única porção legível é o cabeçalho do arquivo, o que indica que o pacote consiste de arquivos comprimidos embutidos, e contém dados usados pelo gerenciador de pacotes para encontrá-los e extraí-los do pacote, ou seja a binary file that contains other binary files:
- $ od -c google*deb | head -10
- 0000000 ! < a r c h > \n d e b i a n - b
- 0000020 i n a r y 1 5 6 5 0 4 9 7
- 0000040 0 3 0 0
- 0000060 1 0 0 6 4 4 4
- 0000100 ` \n 2 . 0 \n c o n t r o l .
- 0000120 t a r . g z 1 5 6 5 0 4 9 7
- 0000140 0 3 0 0
- 0000160 1 0 0 6 4 4 1 0 3 9 4
- 0000200 ` \n 037 213 \b \0 \0 \0 \0 \0 002 003 355 }
- 0000220 373 233 242 H 266 ` 377 272 374 025 L V } 323 ] c
- $ strings google*deb | head -10
- !
- debian-binary 1565049703 0 0 100644 4 `
- control.tar.gz 1565049703 0 0 100644 10394 `
- " Ou
- 'N>"
- N\?N
- 1rm'
- XW}X3
- +H}
- v}Pl
Artigos semelhantes
- Qual é a melhor maneira de converter um pdf para um formato amigável para acender ou outro formato amigável para leitor de ebooks?
- Como ler o texto Bangla de um arquivo de texto usando Python
- Como resolver o problema com o meu Samsung Galaxy Grand Prime G531F que diz "binário personalizado bloqueado pelo FRP lock" e não liga
- Porque é que o binário é definido da forma como está?