前段時間推出過一款PETools命令行版本的PE文件解析器,由於命令行參數較多且每次輸出文件都要重新讀取一遍效率較低,故今天我終於抽出時間來繼續完善這個小工具,由於PETools工具與其他工具重名,故本次更名為PEView,且使用了交互式結構解析,讓解析結果更加清晰,在使用上更加的易用,同時默認支持上下箭頭查詢歷史命令,非常方便。
市面上幾乎所有的PE文件查看工具都是圖形化界面的,本工具不會采用圖形界面模式,一是因為本人對圖形開發不太熟悉,二是可以彰顯與眾不同,目前只有32位,64位正在開發中。
- 工具下載地址 (32位版) :https://share.weiyun.com/0siXhCsI
本次更新主要大變動並不算多,主要是對命令行的完善,移除幾個不太實用的功能,同時也增加了幾個實用功能,如下是具體的命令參數。
PEView相對於PETools來說不在使用傳入文件路徑的方式打開文件,而是使用Open一次性打開文件,只有打開后才可以對其進行其他操作,打開文件需要使用Open命令跟隨路徑。
當文件被打開時,其實就是創建了一個內存映射,此時我們就可以執行一些查詢命令了,例如查詢Dos,NT頭數據,可以這樣。
查詢數據目錄表【DataDirectory】,執行如下命令。
查詢,【Section】本程序的節表。
導入表查詢有多個命令,【ImportAll】用於查詢所有導入過的模塊以及該模塊的導入函數。
【ImportDll】命令用於查詢該程序導入了那些DLL文件,可用來確定范圍。
【ImportByName】命令用於查詢,查詢指定導入表中導入過的函數
【ImportByFunction】該命令可用於驗證,指定的程序中是否引入了指定函數
【Export】用於查詢程序中的導出表,由於只有DLL存在導出表,所有我們需要先切換到DLL文件上,然后在查詢。
【FixRelocPage】用於顯示重定位分頁情況。
【FixRelocRVA】有了分頁情況,就可以使用FixRelocRVA --rva 00002000查詢該頁內具有的頁。
【Resource】則用於顯示當前程序的資源表。
【Fingerprint】用戶檢查特定程序使用了那種編譯器編譯,由於這里特征不多所以暫時並不是那麽好。
【GetProcAddr】用於驗證,所在程序中,特定模塊中的內存地址。
【CheckSelf】用於檢查被打開程序開啟的保護模式。
【GetHexAscii】這是一個獨立模塊,可以獨立使用,通常傳入的是文件路勁,文件偏移,以及讀取大小,即可實現文件的十六進制讀取展示。
剩下的就是一些小功能了。
【add/sub】簡單的十六進制計算器。
【VaToFoa / RvaToFoa / FoaToVa 】將虛擬地址轉為實際地址,等基本轉換。