2010-03-04 32 views
6

可能重複:
Find Programming Language Used如何識別用於開發軟件的編程語言?

所以,我有一個由可執行文件(exe)的文件和DLL的應用。有沒有一種方法可以找出用於開發此軟件的特定語言。我試圖在反彙編中打開它,但內容似乎是亂碼。有任何想法嗎?

+2

Duplicate:http://stackoverflow.com/questions/371460/find-programming-language-used – 2010-03-04 19:26:51

回答

1

不太可能,除非它有一個重要的運行時庫將其提供。例如VB應用程序過去需要在名稱中使用VB的巨大DLL,Visual C++應用程序通常需要安裝C++運行時。但現代語言的目標是獨立於語言的運行時間。即使Java .class文件也可能來自各種源語言。

2
  1. 在十六進制編輯器中打開.dll或.exe,並搜索單詞「copyright」。大多數編譯器都以明文形式將運行時庫的版權信息放入可執行文件中。

  2. 獲取IDA專業版。 http://www.hex-rays.com/idapro/工具可以與二進制文件一起工作或進行反向工程。它將能夠找出運行時庫,也可能是語言。

    計算結果爲和工具的免費版本可以在這裏找到:https://www.hex-rays.com/products/ida/support/download.shtml

1

原則,答案是否定的。然而在實踐中,只有幾個選擇:

  1. 如果.dll文件名看起來像something.dll,它可能是一個本機DLL的圖像,這意味着它可能是用C或C++。
  2. 如果DLL名字看起來像Namespace.Something.dll,它可能是一個託管的DLL,這意味着它是寫在一些
  3. 您可以查看DLL進口更多信息.NET語言(C#,VB.NET等)。如果DLL使用mscoree.dll那麼它是一個.NET DLL(即使它不遵循標準的.NET命名約定)。它也可能使用其他語言特定的dll提供其他線索。