Casa > Q > Quais São Os Caracteres Estranhos Na Tela Quando Se Abre Um Arquivo Exe Usando Um Editor De Texto?

Quais são os caracteres estranhos na tela quando se abre um arquivo exe usando um editor de texto?

O seu editor de texto tenta interpretar o conteúdo do arquivo executável como uma string de texto.

O editor de texto na captura de tela parece estar operando sob a suposição de que arquivos abertos devem ser interpretados usando o código IBM página 437 codificação de caracteres, a julgar pelo desenho de linha e blocos gráficos e outros caracteres especiais que você obtém.

O arquivo parece conter muitos bytes que, se realmente usado em um arquivo de texto, seriam caracteres de controle não imprimíveis. O editor de texto que você está usando parece exibir caracteres de controle não imprimíveis em azul, marcando-os como seqüências de dois caracteres - primeiro o sinal do carpete ^, depois um caractere que identifica o código real. Por exemplo, ^@ provavelmente marca um byte cujo valor é 0 enquanto ^A marca um byte cujo valor é 1. ^D é 4, e assim por diante.

Esta denotação do carpete vem dos dias dos terminais de computador baseados em texto, o que normalmente permitia produzir caracteres de controle pressionando a tecla Control e algum outro caractere no teclado. Caret é outro símbolo para a tecla Control.

Much da mesma forma que agora denotamos atalhos de teclado com algo como "Press Ctrl-K", antigamente teria sido comum usar a abreviatura "Press ^K". O seu editor de texto segue esta convenção para lhe mostrar a presença de pontos de código nos dados que de outra forma permaneceriam invisíveis, uma vez que não existe uma forma de caracteres correspondente associada a eles, e como eles se destinam a funções de controle, não devem ser exibidos como tal. Mas o editor de texto exibe-os desta forma, pois não sabe o que mais fazer com eles. Não são textos enquanto tal, e não representam caracteres imprimíveis, mas ainda existem no arquivo, nos locais exibidos. O problema é que você está exibindo dados binários não textuais em um editor de texto, então não há muito mais que um editor de texto possa fazer. Ele destina-se à edição de texto, não a arquivos binários não-textuais aleatórios.

Existem alguns bits e pedaços de texto dentro desse arquivo (programas executáveis normalmente contêm mensagens textuais e identificadores como texto legível) mas, na maioria das vezes, são outros tipos de dados, tais como cabeçalhos em formato binário, ou código de linguagem de máquina, ou alguns dados numéricos usados pelo programa.

Se você quiser visualizar esses dados binários brutos em um formato mais agradável, você poderia usar um editor hexadecimal, como o HxD no Windows:

main-qimg-6bfd55deaf88281ff7df26e7e1fb0a2c.webp

No Linux, você poderia visualizar o arquivo usando a ferramenta de linha de comando hexdump, como so:

  1. hexdump -C fileename.exe | less 

…producing similar output.

This being a Windows executable, more information about the actual structure and format of the binary file can be found here:

what's in a .exe file?

Deciphering the structure of a Windows PE executable just by looking it as a hex dump is pretty involved though.

Se você quiser analisar o arquivo mais a fundo, você logo descobrirá que vai querer escrever uma ferramenta de software personalizada para isso, ou usar alguma já existente, ao invés de tentar descobrir na sua cabeça.

Todos os arquivos em PCs modernos são essencialmente apenas fluxos de 8-bit bytes, interpretados de diferentes maneiras. Como você notou, você pode fazer um editor de texto interpretar um arquivo executável como um arquivo de texto, mas não fará muito sentido quando interpretado dessa forma.

O mesmo vale para a interpretação de qualquer outro formato de arquivo. Não faz muito sentido reproduzir imagens como áudio, mas você pode fazer isso se quiser, por exemplo, carregar à força um arquivo JPEG em um editor de áudio como dados de áudio brutos. Da mesma forma, é possível interpretar um ficheiro de áudio como uma imagem.

Em ambos os casos, no entanto, só obterá ruído - os dados não fazem sentido quando interpretados de uma forma que nunca foi feita para ser interpretada. Com formatos de arquivo, você sempre precisa saber em que formato os dados estão, a fim de fazer sentido. Caso contrário é tão bom como uma confusão aleatória de bytes.

(Às vezes é possível fazer engenharia reversa num formato de dados desconhecido se for relativamente simples e se souber o que deve representar, e pode brincar com uma ferramenta que produz ficheiros nesse formato ou fazer algumas suposições educadas e outras, experimentando um pouco pelo caminho, mas alguns formatos são suficientemente complexos para tornar esta abordagem quase impossível.)

De Ellison

A minha impressora HP 2130 não imprime quando eu reencho os cartuchos. Existe alguma solução para isto? :: Quando é que a nokia vai lançar os telefones?