在前面的筆記中,我總結了Pe結構的一些結構含義,並手動編寫了幾段PE結構遍歷代碼,這里我直接把之前的C語言代碼進行了封裝,形成了一個命令行版的PE文件查看工具,該工具只有20kb,但卻可以遍歷出大部分PE結構數據,非常實用,分享出來是因為后續教程需要用到解析,請熟練使用其所支持的命令行參數,命令行輸入PETools.exe 即可使用。
PE工具下載地址: https://share.weiyun.com/QU3iF4ql
基本參數介紹: 輸入GetPE直接彈出幫助菜單。
檢查模塊開啟的保護: main.exe c://qc.exe --CheckModule
驗證模塊完整性: 傳入一個正在運行進程PID即可,檢驗模塊是否存在可利用的環節。
驗證特定模塊地址: 例如驗證User32.dll中MessageBoxA的地址,可執行:
十六進制加減法計算: 可快速實現十六進制加減法,不用在使用計算器了,方便快捷。
遍歷DOS頭: GetPE c://lyshark.exe --ShowDosHead
遍歷NT頭數據: C:\pe>pe.exe ./x86.exe --ShowNtHead
遍歷Section節表: C:\pe>pe.exe ./x86.exe --ShowSection
遍歷程序中的導入函數: C:\pe>pe.exe ./x86.exe --ShowImportByDll
查詢指定DLL中的導入函數: C:\pe>pe.exe ./x86.exe --ShowImportByName USER32.dll
查詢全部導入表,導入函數: C:\pe>pe.exe ./ddd.dll --ShowImportAll
查詢Export導出表: C:\pe>pe.exe ./ddd.dll --ShowExport
查詢重定位表: C:\pe>pe.exe ./ddd.dll --ShowFixReloc
顯示所有導入DLL GetPE c://lyshark.exe --ShowImportByDll
顯示指定DLL中的導入函數: GetPE c://lyshark.exe --ShowImportByName USER32.dll
顯示所有導入函數: GetPE c://lyshark.exe --ShowImportAll
檢索指定API是否被引用: GetPE c://lyshark.exe --ShowImportByFunc GetModuleFileNameW
檢索數據目錄表: GetPE c://lyshark.exe --ShowDataDirectory
完整檢索數據目錄表:
檢索文件導出表: GetPE c://lyshark.dll --ShowExport
檢索重定位塊: GetPE c://lyshark.dll --ShowFixRelocPage
檢索指定重定位塊中重定位信息: GetPE c://lyshark.dll --ShowFixRelocRva 00001000
檢索全部重定位表: GetPE c://lyshark.dll --ShowFixReloc
嘗試修正重定位表: GetPE c://lyshark.dll --RepairFixReloc dump.dll
嘗試識別目標指紋: 通過內置特征,嘗試識別目標指紋。
寫這個東西就是要查手冊,根據微軟的定義,對其進行解析,不難,就是挺麻煩的,為了后續課程需要,我不得不把這個工具完善起來,稍安勿躁,精彩內容下次安排。