Macの/usr/binファイルはどの言語で書かれていますか?コードを読む方法は?

Macの/usr/binファイルはどの言語で書かれていますか?コードを読む方法は?

Macでは、/usr/bin/の下にcsrutil.txtのようなファイルがあります。これらはどの言語で書かれていますか?コードをどのように読みますか?部分的に読めるテキストだけが横説説になったので、これをシェルスクリプトに変換することは成功しませんでした。サフィックスがなく、何をすべきかわからないので、このファイルを読む方法を知っている人はいますか?

ベストアンサー1

Gerard H. Pilleが述べたように、これらのファイルはオペレーティングシステムとプロセッサから直接読み取れるように設計された実行可能ファイルです。技術的には、ファイル形式の名前は次のとおりです。Mach-O または Mach オブジェクトのファイル形式

このstringsコマンドを使用すると、実行可能ファイル内で圧縮されていないテキスト文字列を表示できます。これは、不明な実行可能ファイルを識別する必要がある場合に便利です。たとえば、strings /usr/bin/csrutil | less

技術的には、機械語コードを人間が読みやすい形式に変換することが可能です。これは…解体する実行ファイルの場合、結果は次のようになります。アセンブリ語各プロセッサアーキテクチャごと:たとえば、64ビットIntel x86プロセッサに基づく最新のMacのアセンブリ言語は、Motorola PowerPCプロセッサを使用する以前のPowerMacのアセンブリ言語とは異なります。

また、使用することができますデバッガーユーティリティ、最もよく使われるデバッグシンボルファイル実行中の実行可能ファイルの内部動作を監視するには、デバッグ中の実行可能ファイルを一致させます。または、プログラムの競合を引き起こす問題が発生した場合は、以下を有効にすることができます。コアダンプ次に、デバッガを使用して、プログラムの競合によって生成されたコアダンプファイルを分析します。

アセンブリ言語を読むことは、シェルスクリプトを読むのとまったく異なります。これを行うには、プロセッサとオペレーティングシステムの技術的詳細についてはるかに深い理解が必要です。一部のテキスト出力などの単純な操作でも表示するテキストのメモリアドレスを見つけて、実際に操作を実行する適切なオペレーティングシステム関数を呼び出すには、多くのアセンブリ言語コマンドが必要です。

しかし、法的警告があります。現地の法律によっては、オペレーティングシステムの実行可能ファイルを分解しないことに同意することもできます(オペレーティングシステムをインストールするときにクリックする必要がある法的用語の場合)。著作権法は間違いなく以下の使用を制限します。そのような分解によって得られた情報。

macOSオペレーティングシステムは排他的でオープンソースではないため、リリースされたバージョンを作成した実際のソースコードを見る機会を得るには、Appleに雇用する必要があります(または少なくとも妥当な理由があり、適切なNDAに署名する必要があります)。 Mac OS。

おすすめ記事