オブジェクトコードを見て、それを生成するためにどの言語が使われているかを知ることは可能ですか?またはその言語がオブジェクトコードにトレースまたはスタンプを残していますか?さまざまな言語のコンパイラは、オブジェクトコードを開発するために与えられたISAに対して固定フォーマットを使用しますか?オブジェクトコード上の言語のトレース
1
A
答えて
2
一般的なアルゴリズムはありませんが、実際には多くの場合可能です。通常、アプリケーションが依存するライブラリを見ることができます。たとえば、Windowsアプリケーションがmsvcrt.dllに依存する場合、Visual C++でコンパイルされたCまたはC++プログラムである可能性が高くなります。時にコンパイラが.data
セクションに証拠の痕跡を残すことがあります。ここで「こんにちは、世界!」開いたときに、私が見たものである - バイナリエディタで(GHCでコンパイルされた)のようなHaskellのバイナリを:
ここでGCCの「著作権表示」は次のようになります。
訓練された目は、逆アセンブリを見ることによってコンパイラのバージョンを認識することさえできます(すべてのコンパイラは、コードをわずかに異なる方法で最適化し、独自の実装方法を持っています)。これを自動化する必要がある場合は、機械学習技術を検討することをお勧めします。
1
いいえ。 x86はx86形式です。いったんその形式になると、元の言語の痕跡はありません。
関連する問題
- 1. 異なるプログラミング言語のオブジェクトコードは互換性がありますか?
- 2. Sitecore 8.1-言語上の問題点
- 3. 自然言語とプログラミング言語の文法上の違いは何ですか?
- 4. 言語アナライザと同義語同じフィールド上のelasticsearch
- 5. 多言語APIのコンテンツ言語
- 6. Postgresの言語が異なる言語
- 7. Jプログラミング言語での配列言語
- 8. アセンブリ言語の逆アセンブリ言語x86
- 9. x86アセンブリ言語上位と下位ビット
- 10. Linux上のプロセスのコンテキストスイッチのトレース
- 11. VBA DropDownList ContentControlsのオブジェクトコードにアクセス
- 12. Wagtail多言語ウェブサイトフォールバック言語
- 13. 自然言語コマンド言語
- 14. 宣言的言語のXSLT
- 15. ハンガリー語アプリの言語は?
- 16. コルドーバ語の多言語コンテンツ
- 17. プログラムチェンジリソースファイルの言語
- 18. トレースから述語を隠す
- 19. C言語の言語(llvm用)のための良いASTデザイン
- 20. Androidの言語オプション
- 21. C言語のメモリデバッガ
- 22. コーディング言語のカスタマイズ
- 23. 日付の言語
- 24. htaccessの言語rediretion
- 25. ペリカンのサイト言語
- 26. laravelの言語5
- 27. MVCの言語ドロップダウンメニュー
- 28. Pythonのミニ言語
- 29. アンドロイド - Drawableの言語
- 30. Drupal言語のナビゲーション
+1実際には、どのコンパイラがDOS時代に使われたのかを知るヒューリスティックツールがありました。まだいくつか残っていると確信しています。 –