前言全域性說明
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 就是介面函式名。
四、擴充套件用法
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)