Em quais idiomas os arquivos / usr / bin são escritos no Mac e como posso ler o código deles?

0

Em / usr / bin / no Mac, existem arquivos como o csrutil. Em quais idiomas estão escritos e como posso ler o código deles? Convertê-lo em script de shell não funcionou para mim, pois eu só tinha rabiscos com partes de texto legível. Alguém sabe como ler esses arquivos, pois eles não têm nenhum sufixo, não sei o que fazer.

    
por Qubit 06.06.2018 / 10:36

2 respostas

3

Eles devem ser lidos pelo seu Mac, não por você. Pode haver scripts entre eles, mas a maioria deles são executáveis, "código de máquina", por exemplo. escrito em C, mas depois compilado e vinculado. O programa "arquivo" permitirá que você verifique o conteúdo, se você receber uma resposta contendo "texto", você pode dar uma olhada, caso contrário, é bastante inútil.

    
por 06.06.2018 / 10:40
3

Como Gerard H. Pille já disse, esses arquivos são executáveis, projetados para serem lidos diretamente pelo SO e pelo processador. Tecnicamente, o nome do formato do arquivo é Mach-O, ou formato de arquivo objeto Mach .

Com o comando strings , você pode exibir qualquer seqüência de texto descompactado em um executável. Se você precisar identificar um arquivo executável desconhecido, isso às vezes é útil. Por exemplo: strings /usr/bin/csrutil | less

Tecnicamente, é possível traduzir o código da máquina de volta para um formato mais legível para humanos. Isso é chamado de desmontar um executável, e o resultado seria em linguagem assembly específica para cada arquitetura de processador: por exemplo, a linguagem de montagem de Macs modernos baseados em Intel de 64 bits Os processadores x86 seriam diferentes da linguagem de montagem dos antigos PowerMacs que usavam processadores PowerPC da Motorola.

Você também pode usar um utilitário debugger , de preferência com o arquivo de símbolos de depuração correspondente ao executável você está depurando, para monitorar o funcionamento interno de um executável em execução. Ou se você tiver um problema que cause a falha de um programa, você poderá ativar core dumps e usar um depurador para analisar o arquivo de dump principal resultante do travamento de um programa.

Ler a linguagem de montagem não é nada como ler um script de shell: ele requer muito mais compreensão dos detalhes técnicos do processador e do sistema operacional. Até mesmo uma operação simples, como a saída de algum texto, requer várias instruções em linguagem assembly para localizar o endereço de memória do texto a ser exibido e, em seguida, chamar a função apropriada do sistema operacional que realmente faz o trabalho.

No entanto, há uma ressalva legal: dependendo da legislação local, você pode ter concordado em não desmontar quaisquer executáveis do sistema operacional (se o usuário legal tiver que clicar ao instalar o sistema operacional for executável) - e a lei de direitos autorais definitivamente restringir o uso de informações obtidas de tal desmontagem.

Como o sistema operacional macOS é proprietário e não é de código aberto, você provavelmente teria que ser empregado pela Apple (ou pelo menos ter um bom motivo e ter assinado um NDA apropriado) para ter a chance de ver o real. código-fonte que produziu qualquer versão publicada do macOS.

    
por 06.06.2018 / 11:27