題:
不是有效的win32應用程序。為什麼?
ST3
2014-12-22 19:58:43 UTC
view on stackexchange narkive permalink

現在,我正在開發一個解包程序,並已進入測試階段。有時我會收到一條消息,指出解壓縮後的文件是無效的Win32可執行文件,但是它沒有提供信息。喜歡”文件。這樣我就能輕鬆地檢測到解壓縮腳本中的錯誤。

您想使用這種工具嗎?我想(使用Python),我認為這對社區非常有幫助。
一 回答:
DarthGizka
2014-12-23 21:28:39 UTC
view on stackexchange narkive permalink

那裡有很多PE / Header自卸車,但據我所知沒有一個適合對圖像進行審核;他們的目標通常是信息的提取和顯示,而不是驗證。

最好的方法是用您喜歡的瑞士軍刀語言編寫一個小程序或腳本,以驗證輸出圖像的完整性,在定義規則的部分中重點關注靈活性和清晰度。在許多語言中,您都可以調用庫,例如python中的 pefile

在網上沒有任何地方可以將所有與PE圖像有關的規則收集到綜合時尚。 Windows加載程序的當前版本並未強制執行許多規則,或者至少並非始終一致,即使在MSDN或 PE COFF規範中提到了許多規則。因此,許多包裝者和保護者不受懲罰地違反了某些現有規則。暫時。

使用相同的令牌,如果您的輸出圖像恰好在您當前的Windows版本上運行,則不能保證它將在具有不同版本,補丁程序級別或位數的另一Windows版本上運行。

除了Google之外,優秀的信息資源是 ReactOS項目 OS dev Wiki。 p>

要特別注意的兩件事-除了標頭信息,數據目錄和節表的正確性之外,還有圖像校驗和和文件/節對齊。此外,對於某些任務(例如計算校驗和),您可以調用Microsoft imagehlp.dll中的函數。

為了快速查看您的PE,您可以始終使用Microsoft的dumpbin實用工具,該工具包含在Windows SDK(至少與編譯器一起提供的SDK,即早於當前8.1的那些SDK)和許多版本的Visual Studio中,包括免費的社區版。我還發現Daniel Pistelli的免費 PE Insider非常方便,而 CFF Explorer套件也是免費的。

PS:可能是記錄該文件的最佳資源。 PE結構的現實(相對於理論而言)是 corkami的PE Wiki。當然,這是我見過的最全面的PE文檔... ReversingLabs彙編了名為 Undocumented PECOFF的文檔,該文檔很好地概述了實際需求與理論。儘管pdf著眼於安全隱患,但它也是使PE正常工作的絕佳資源。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...