亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Python 枚舉二進制文件的所有模塊(pefile / win32api)

使用 Python 枚舉二進制文件的所有模塊(pefile / win32api)

慕哥9229398 2021-09-23 09:20:21
我想使用 PEfile 或其他 Python 庫來枚舉所有模塊。我以為我有它,但后來我進入了 WinDbg,因為一些明顯的缺失,我看到有很多缺失的。對于 filezilla.exe:00400000 00fe7000   image00400000 image0040000001c70000 01ecc000   combase  C:\WINDOWS\SysWOW64\combase.dll6f590000 6f5ac000   SRVCLI   C:\WINDOWS\SysWOW64\SRVCLI.DLL6f640000 6f844000   COMCTL32 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.17134.472_none_42ecd1cc44e43e73\COMCTL32.DLL70610000 7061b000   NETUTILS C:\WINDOWS\SysWOW64\NETUTILS.DLL70720000 70733000   NETAPI32 C:\WINDOWS\SysWOW64\NETAPI32.dll72910000 72933000   winmmbase C:\WINDOWS\SysWOW64\winmmbase.dll729d0000 729d8000   WSOCK32  C:\WINDOWS\SysWOW64\WSOCK32.DLL72b40000 72b64000   WINMM    C:\WINDOWS\SysWOW64\WINMM.DLL72b70000 72b88000   MPR      C:\WINDOWS\SysWOW64\MPR.DLL73c60000 73c6a000   CRYPTBASE C:\WINDOWS\SysWOW64\CRYPTBASE.dll73c70000 73c90000   SspiCli  C:\WINDOWS\SysWOW64\SspiCli.dll74120000 741b6000   OLEAUT32 C:\WINDOWS\SysWOW64\OLEAUT32.dll741c0000 7477a000   windows_storage C:\WINDOWS\SysWOW64\windows.storage.dll74780000 7487c000   ole32    C:\WINDOWS\SysWOW64\ole32.dll74880000 74908000   shcore   C:\WINDOWS\SysWOW64\shcore.dll74910000 7498d000   msvcp_win C:\WINDOWS\SysWOW64\msvcp_win.dll74990000 74a4f000   msvcrt   C:\WINDOWS\SysWOW64\msvcrt.dll74a50000 74a72000   GDI32    C:\WINDOWS\SysWOW64\GDI32.dll74bd0000 74bde000   MSASN1   C:\WINDOWS\SysWOW64\MSASN1.dll74be0000 74c47000   WS2_32   C:\WINDOWS\SysWOW64\WS2_32.dll74c70000 74d30000   RPCRT4   C:\WINDOWS\SysWOW64\RPCRT4.dll74d30000 74d37000   Normaliz C:\WINDOWS\SysWOW64\Normaliz.dll74d40000 74d79000   cfgmgr32 C:\WINDOWS\SysWOW64\cfgmgr32.dll74fe0000 75025000   powrprof C:\WINDOWS\SysWOW64\powrprof.dllPefile 中是否還有其他內容我應該查看以獲得將要加載的模塊的更完整列表?win32api 或 win32con 中有什么東西可以讓我得到這個信息嗎?如果可能的話,我更喜歡 pefile,但兩者都可以。我需要能夠輸出將加載的所有模塊的列表。我在 Python 中工作,對改變不靈活。
查看完整描述

2 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

模塊可以通過多種方式加載到進程中。導入的 DLL 只是一種方式。

  1. 導入的 DLL 也可以為自己導入 DLL。foobar.exe可能取決于user32.dll,但user32.dll反過來也取決于kernel32.dll將加載到您的流程中。如果您需要完整列表,您可能需要檢查導入的 DLL 是否為可執行文件的依賴項。

  2. 模塊可以在代碼中動態加載LoadLibrary()。您不會在導入目錄中看到那些。您必須為此反匯編代碼,即使這樣,庫名稱也可以即時生成,因此很難說。

  3. 還有一些不受支持的加載模塊的方法可供惡意軟件使用。

正如評論中提到的,通過調試 API 獲取已加載模塊的列表可能更簡單。但這一切都取決于您實際嘗試使用這些數據做什么。


查看完整回答
反對 回復 2021-09-23
  • 2 回答
  • 0 關注
  • 272 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號