Microsoft Visual Studio VS dumpbin使用檢視.obj、.lib、.dll、.exe檔案頭、段函式

悟透發表於2024-11-17

前言全域性說明

dumpbin 是VS自帶的 Microsoft COFF二進位制檔案轉換器,它顯示有關通用物件檔案格式(COFF)二進位制檔案的資訊。可以使用dumpbin檢查COFF物件檔案、標準COFF物件庫、可執行檔案和動態連結庫等。
被檢視的檔名字尾可以為:.obj、.lib、.dll、.exe


一、說明

正確情況下,安裝好VS後路徑被加入到系統 PATH 中了,可以任意路徑呼叫 dumpbin

dumpbin 檔案路徑:
VS 2010: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
VS 2019: C:\Program Files (x86)\Microsoft Visual Studio 10.0\2019\Community
VS 2022:X:\vs2022\VC\Tools\MSVC\14.40.33807\bin\Hostx64\x86


二、dumpbin 命令

2.1 檢視幫助

dumpbin

dumpbin /SUMMARY

dumpbin /?

dumpbin -?

如果沒有給dumpbin指定任何選項,它將等同於使用了/SUMMARY引數。如果沒有指定任何輸入檔案,它將列出所有的選項。

2.2 引數

引數 說明 備註
/ALL 顯示除程式碼反彙編外的所有可用資訊
/ARCHIVEMEMBERS 顯示有關庫成員物件的最少資訊
/CLRHEADER 顯示有關在任何託管程式中使用的 .NET 頭的資訊
/DEPENDENTS 轉儲映像從中匯入函式的 DLL 的名稱
/DIRECTIVES 轉儲映像中由編譯器生成的 .directive 節
/DISASM[:{BYTES|NOBYTES}] 顯示程式碼段的反彙編,如果出現在檔案中則使用符號
/ERRORREPORT:{NONE PROMPTt|QUEUE|SEND}
/EXPORTS 顯示從可執行檔案或 DLL 匯出的所有定義
/FPO 顯示框架指標最佳化 (FPO) 記錄
/HEADERS 顯示檔案頭和每節的頭。當用於庫時,顯示每個成員物件的頭
/IMPORTS[:檔名] 顯示匯入到可執行檔案或 DLL 的 DLL 列表(靜態連結的和延遲載入 )和上述每個 DLL 的各個匯入
/LINENUMBERS 顯示 COFF 行號
/LINKERMEMBER[:{1|2}] 顯示庫中定義的公共符號。指定引數 1 將按物件順序顯示符號及其偏移量。指定引數 2 將顯示物件的偏移量和索引號,然後按字母順序列出這些符號及每個符號的物件索引
/LOADCONFIG 轉儲 IMAGE_LOAD_CONFIG_DIRECTORY 結構,此結構是由 Windows NT 載入程式使用並在 WINNT.H 中定義的可選結構。
/NOLOGO
/OUT:filename
/PDATA 僅用於 RISC 處理器。此選項從映像或物件轉儲異常表 (.pdata)
/PDBPATH[:VERBOSE] 將沿偵錯程式搜尋 .pdb 檔案的同一路徑搜尋計算機,並將報告哪些 .pdb 檔案(若有)和 filename 中指定的檔案相對應
/RANGE:vaMin[,vaMax]
/RAWDATA[:{NONE|1|2|4|8}[,#]] 此選項顯示檔案中每節的原始內容
/RELOCATIONS 此選項顯示物件或映像中的任何重定位
/SECTION:名稱
/SUMMARY 如果沒有給dumpbin指定任何選項,它將等同於使用了/SUMMARY引數
/SYMBOLS
/TLS
/UNWINDINFO

2.3 選項說明:

引數的使用可以用”-”或者”/”(如-ALL等於/ALL)後面跟選項名。

有些選項可以在選項名後接”:”。使用空格或製表符(Tab)分割命令選項。

選項名,關鍵字和檔名是不區分大小寫的。大多數的引數可以應用於所有的二進位制檔案,有少部分引數只能用於特定的檔案。


三、示例

3.1 檢視 exe 資訊

檢視一個exe引用了哪些動態庫

dumpbin /HEADERS E:\main.exe

dumpbin -HEADERS E:\main.exe

3.2 檢視 dll 資訊

檢視動態庫包含哪些介面函式

dumpbin /exports E:\main.exe

dumpbin –exports dlltest.dll

Your_Functions_Here 就是介面函式名。

image


四、擴充套件用法

4.1 過濾函式名

函式名太多時,可以用管道和findstr來過濾

dumpbin /EXPORTS "gdal.lib" | findstr GDALDropCache

4.2 多個引數

多個選項間用空格分開,多個檔名間也用空格分開

dumpbin /ALL/RAWDATA:NONE /OUT:1.txt text.obj

dmpbin /ALL /RAWDATA:NONE test.obj >1.txt

4.3 輸出到檔案中

dumpbin.exe /ALL D:\xxx.dll > D:\VS_dumpbin_file_info.txt


免責宣告:本號所涉及內容僅供安全研究與教學使用,如出現其他風險,後果自負。




參考、來源:
https://www.cnblogs.com/cyx-b/p/13488380.html (#### 2.2)
https://blog.51cto.com/u_14523369/6123768 (#### 3.2)
https://blog.csdn.net/jiangnanan/article/details/134893353 (#### 3.2)
https://www.bilibili.com/opus/963232349848338436 (#### 4.1)
https://zhuanlan.zhihu.com/p/646528551 (#### 4.2)



相關文章