2017-06-05 28 views
5

我需要讀取FileVersion的可執行文件。問題是我沒有磁盤上的實際文件,只有一個字節數組。 FileVersion API只有一個GetVersionInfo(string fileName)方法,它沒有任何方法從文件中獲取版本。如何獲取存儲在內存中的可執行文件的FileVersion信息作爲字節數組?

我試圖尋找到一個反編譯器源,但它看起來複雜得多,簡單的複製/粘貼能做到。

有什麼辦法讀取文件的FileVersion,因爲我有文件內容的字節數,不寫文件到硬盤?

+0

也許這是一個愚蠢的問題,但你有沒有嘗試將你的字節數組寫入光盤上的文件,然後調用'GetVersionInfo'? (假設字節數組甚至會包含這些信息) –

+0

嗯,你可以從PE映像中讀取'.rsrc'節,但這可能不是微不足道的,除非你有一個很好的不推薦,我建議將文件寫入磁盤。 // github上: –

+1

與http://secana.github.io/PeNet/html/5886c81e-a545-ed37-eb3d-af21b3e00b52.htm –

回答

0

不幸的是,很多挖,並尋找到.NET的核心來源,提供JavaScript庫,等以後我決定,這是不容易的(或全部)可能不值得的痛苦弄清楚。

相反,我用的更簡單的方法去:

  • 將文件寫入到磁盤中的某種臨時位置
  • 的從文件中讀取磁盤上
  • 版本刪除文件

的代碼很簡單和直接的.NET代碼,沒有花哨的技巧或需要複雜的JS庫。

相關問題