web-dev-qa-db-ja.com

バイナリのコンパイルコンピュータ名を見つける

私たちは最近、職場で、未知の古いコンピューターに由来する本当に古いバイナリファイルに出くわしました。ただし、このバイナリを実行するには、いくつかのローカルリソースを取得し、できればそのバイナリに関するローカルの追加ドキュメントを取得する必要があります。オフィスの大衆について話します...今、私たちはすでに「dumpelf」バイナリを使用して、それに関するあらゆる種類の情報を抽出しました。その情報から、プログラミングの実践とともに、バイナリがvxworks 5.3.1OSとSolaris 2.6からのクロスコンパイルとしてgcc version 2.95 OS用にコンパイルされたと仮定します(ここでは真のレガシーについて説明しています!)

私はそれが不可能であると強く信じているとすでに述べましたが、うまくいけば私は間違っています。名前を取得できない場合は、IPアドレス、NICのMACアドレス、ユーザー名、コンピューターモデルなどの他のプロパティを使用して、検索を絞り込むことができます。

今後の取り組みに感謝します

編集:stringsコマンドはすでに提案され実行されましたが、指示的な出力はありませんでした。

4
Aviv

プログラムでstringsを実行する必要があります。

strings /path/to/binary

これにより、(デフォルトで)4つ以上の印刷可能な文字のすべての文字列が端末に連続して印刷されます。これの多くはジャンクになりますが、ifホスト名は実際にはバイナリのどこかにあります。

コンパイルするホストのMACアドレスやホスト名などが含まれる可能性は非常に低いことに同意します。ただし、バイナリが削除されていない場合(つまり、デバッグシンボルが含まれている場合)、コンパイル元のソースへのパス名が含まれている可能性があります。これは、そもそもどの環境で構築されたかについての手がかりを与えるかもしれません。

3
Wouter Verhelst