2009-07-16 32 views
4

我需要從Windows EXE和MSI文件解析文件版本和產品版本。如何閱讀windows.exe文件版本?

你能指點我的文件規範或庫(最好在Java中)嗎?

UPDATE:

原來我不能使用WINAPI,因爲代碼需要在Linux以及運行...

回答

1

你可以使用GetFileVersionInfoSizeGetFileVersionInfo函數來獲取文件的版本和產品版。我不是Java的大師,但據我所知,有可能使用WinAPI函數。

+0

我想過這個問題,但想避免... – ya23 2009-07-16 10:46:20

0

我有一個Delphi程序,可以分析Windows EXE文件中的PE/NE頭 - 但不是在這裏。我認爲它可以輕鬆移植到Java,因爲它可以對文件進行二進制分析。

當然,使用JNA調用Windows API可以在Windows上做到這一點。

編輯:I found it,但也有一些小故障:

  • 程序的原始目的是提取資源從EXE(PE/NE)文件,在可用的時間資源編輯器只能使用PE格式(NE使用Win3.1)
  • 用戶界面不顯示版本信息,但記錄結構在那裏
  • UI完全是匈牙利語,我可以提供翻譯如果ne eded
  • 一些代碼註釋使用匈牙利語,除了一些記錄結構描述,這是英文
  • 我不知道它是否編譯今天自己。
  • 的ZIP包括編譯的Win32 RESXPLOR.EXE
  • 代碼必須在這裏或那裏的一些緩衝區溢出漏洞 - 應該很容易解決它在Java中
+0

你寫了嗎?如果是這樣,你使用了哪個規範?是的,從Delphi移植不會是一個問題。 – ya23 2009-07-16 10:48:27