2012-07-16 128 views
2

是有一個工具,用於分析所述可執行並檢測: - 使用的編程語言(編譯) - 框架中使用(QT,GTK,.NET,wxWidgets的等), - 其他有用的信息(壓縮等)。工具來分析可執行

我知道這是相當有時要告訴編程語言(特別是C或帕斯卡的EXE),但它可以告訴使用的語言或編譯器? (Delphi生成exes的方式不同,例如VB6)。

它可能是可能的,例如。與依賴分析的dll,頭等。

謝謝。

+0

你可以嘗試檢查魔術數字給你一個起點。 http://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files – KingCronus 2012-07-16 08:26:01

+0

@KingCronus幻數對Windows可執行文件幾乎總是['PE'](http://en.wikipedia.org/wiki/Portable_Executable )。 – CodeCaster 2012-07-16 09:12:54

+0

@CodeCaster這很有趣我沒有意識到這一點! – KingCronus 2012-07-16 10:06:14

回答

2

我已經在過去(UNI)PEInfo使用,但它並沒有給你想要的信息。之後,我用反射器,因爲我知道我的DLL/exe文件.net

但是我認爲沒有軟件可以做到這一點

解決方法:您可以做的最好的事情是查看exe的字符串(例如使用Process explorer)並猜測自己。

0

我不認爲有一種可能的方法來正確地做到這一點。也許可以檢測到一些基本的編程語言,但沒有人可以檢測到使用的框架。有成千上萬的框架。

1

二進制文件查看器打開可執行文件,並查找字符串,看起來像的功能名稱。這些字符串並不總是可用的,但在某些情況下它們是存在的。例如,它們可用於解析與DLL的鏈接。之後,谷歌這些字符串。這些變化是他們會告訴你的。

2

在GNU,你可以使用多種工具來嘗試猜測你想要的informartion:

  • LDD到RESOLV鏈接到二進制
  • 納米共享庫列出進口符號/由二進制
  • exporeted
  • 字符串,它可以轉儲嵌入二進制
  • objdump的字符串可能是有用的太
  • 十六進制編輯器可以是有用的。

我想有在窗戶上。平臺類似的工具。 Dumpbin.exe與nm相似,並且依賴於ldd iirc。

順便說一句,Java是經常字節碼編譯,不是本地人。