Dumpbin.exe 是vs官方自動(dòng)的查看dll克锣、lib導(dǎo)出函數(shù)的利器甘有。
找到dumpbin.exe
下面是我電腦中的位置:
不同平臺(tái)下的dumpbin
需要同目錄下 link.exe文件才能運(yùn)行。
Dumpbin用法
語法:
DUMPBIN [options] files...
cmd控制臺(tái) cd到dumpbin.exe目錄管怠∠裕可以將輸出重定向到文件,或者使用 /OUT 選項(xiàng)為輸出指定文件名排惨。
dumpbin.exe /[option] filePath /[option] 或
dumpbin.exe -[option] filePath -[option]
//輸出內(nèi)容到文本文件
dumpbin.exe -[option] filePath>filePath
dumpbin.exe -[option] filePath /out:>filePath
options
/ALL
/ARCH
/ARCHIVEMEMBERS
/DEPENDENTS
/DIRECTIVES
/DISASM
/EXPORTS
/FPO
/HEADERS
/IMPORTS
/LINENUMBERS
/LINKERMEMBER
/LOADCONFIG
/OUT:filename
/PDATA
/RAWDATA
/RELOCATIONS
/SECTION:name
/SUMMARY
/SYMBOLS
選項(xiàng)很多,可以查看反編譯等信息碰凶,這里我只用它的查看導(dǎo)出函數(shù)功能暮芭,就是/exports。
舉個(gè)栗子:
dumpbin.exe -exports a.dll
控制臺(tái)將輸出a.dll的導(dǎo)出函數(shù)列表
dumpbin.exe -exports a.dll>1.txt
控制臺(tái)命名立即返回欲低,生成1.txt文本文件
如何在自己的程序中使用dumpbin
有時(shí)我們需要獲取某個(gè)lib和dll的導(dǎo)出函數(shù)辕宏,可用采用dumbin.exe輸出到文件的方法。
啟動(dòng)外部程序的方法有很多種砾莱,有
system(const char * _Command)
WinExec(LPCSTR lpCmdLine,UINT uCmdShow)
CreateProcess(...)
調(diào)用上面的函數(shù)執(zhí)行即可瑞筐。
PS:命令行只有用/out才能輸出文本文件,> 并不能輸出文件腊瑟。
附件選項(xiàng)詳細(xì)說明:
(1)聚假、/ALL :此選項(xiàng)顯示除代碼反匯編外的所有可用信息。使用/DISASM顯示反匯編闰非”旄瘢可以與/ALL一起使用/RAWDATA:NONE來省略文件的原始二進(jìn)制詳細(xì)資料。
(2)财松、/ARCHIVEMEMBERS:此選項(xiàng)顯示有關(guān)庫成員對(duì)象的最少信息瘪贱。
(3)、/CLRHEADER file:其中file為用/clr生成的圖像文件辆毡。CLRHEADER顯示有關(guān)在任何托管程序中使用的.net頭的信息菜秦。輸出顯示.net頭及其中各節(jié)的位置和大小(以字節(jié)計(jì)算)。
(3)舶掖、/DIRECTIVES:此選項(xiàng)轉(zhuǎn)儲(chǔ)圖像中由編譯器生成的.directive節(jié)球昨。
(4)、/DEPENDENTS:轉(zhuǎn)儲(chǔ)圖像從中導(dǎo)入函數(shù)的DLL的名稱眨攘。不要轉(zhuǎn)儲(chǔ)導(dǎo)入函數(shù)名褪尝。
(5)闹获、/DISASM:此選項(xiàng)顯示代碼段的反匯編,如果出現(xiàn)在文件中則使用符號(hào)河哑。
(6)、/EXPORTS:此選項(xiàng)顯示從可執(zhí)行文件或DLL導(dǎo)出的所有定義璃谨。
(7)沙庐、/FPO:此選項(xiàng)顯示框架指針優(yōu)化(FPO)記錄。
(8)拱雏、/HEADERS:此選項(xiàng)顯示文件頭和每節(jié)的頭铸抑。當(dāng)用于庫時(shí),顯示每個(gè)成員對(duì)象的頭刁憋。
(9)至耻、/IMPORTS[:file]:此選項(xiàng)顯示導(dǎo)入到可執(zhí)行文件或DLL的DLL列表(靜態(tài)鏈接的和延遲加載)和上述每個(gè)DLL的各個(gè)導(dǎo)入∧魅可選file規(guī)范允許指定僅顯示某個(gè)DLL的導(dǎo)入尘颓。
(10)、/LINENUMBERS:此選項(xiàng)顯示COFF行號(hào)晦譬。如果對(duì)象文件是用程序數(shù)據(jù)庫(/Zi)泥耀、C7兼容(/Z7)或僅限行號(hào)(/Zd)編譯的,則它包含行號(hào)蛔添。如果可執(zhí)行文件或DLL是與生成調(diào)試信息(/DEBUG)鏈接的痰催,則它包含COFF行號(hào)。
(11)迎瞧、/LINKERMEMBER[:{1|2}]:此選項(xiàng)顯示庫中定義的公共符號(hào)夸溶。指定參數(shù)1將按對(duì)象順序顯示符號(hào)及其偏移量。指定參數(shù)2將顯示對(duì)象的偏移量和索引號(hào)凶硅,然后按字母順序列車這些符號(hào)及每個(gè)符號(hào)的對(duì)象索引缝裁。若要兩個(gè)輸出都獲得,指定不帶數(shù)字參數(shù)的/LINKERMEMBER。
(12)捷绑、/LOADCOMFIG:此選項(xiàng)轉(zhuǎn)儲(chǔ)IMAGE_LOAD_CONFIG_DIRECTORY結(jié)構(gòu)韩脑,此結(jié)構(gòu)是由WindowsNT加載程序使用并在WIINNT.H中定義的可選結(jié)構(gòu)。
(13)粹污、/OUT:filename:此選項(xiàng)指定輸出的filename段多。默認(rèn)情況下,DUMPBIN將信息顯示到標(biāo)準(zhǔn)輸出壮吩。
(14)进苍、/PDBPATH[:VERBOSE]filename:filename為要為其查找匹配.pdb文件的.dll或.exe文件名。VERBOSE(可選)為報(bào)告曾嘗試在其中定位.pdb文件的所有目錄鸭叙。/PDBPATH將沿調(diào)試器搜索.pdb文件的同一路徑搜索計(jì)算機(jī)觉啊,并將報(bào)告那些.pdb文件(若有)和filename中指定的文件相對(duì)應(yīng)。
(15)沈贝、/RAWDATA[:{1|2|4|8|NONE}[,number]]:此選項(xiàng)顯示文件中每節(jié)的原始內(nèi)容杠人。參數(shù)說明:1,默認(rèn)值宋下,內(nèi)容以十六進(jìn)制字節(jié)顯示嗡善,如果內(nèi)容具有打印的表示形式,則還顯示為ASCII字符杨凑;2滤奈,內(nèi)容顯示為十六進(jìn)制的2字節(jié)值摆昧;4撩满,內(nèi)容顯示為十六進(jìn)制的惡4字節(jié)值;8绅你,內(nèi)容顯示為十六進(jìn)制的8字節(jié)值伺帘;NONE,取消顯示原始數(shù)據(jù)忌锯,此參數(shù)對(duì)控制/ALL輸出很有用伪嫁;number航缀,顯示的行被設(shè)置為每行具有number個(gè)值的寬度爱只。
(16)、/RELOCATIONS:此選項(xiàng)顯示對(duì)象或圖像中的任何重定位款青。
(17)似舵、/SECTION:section:此選項(xiàng)限制與指定的section有關(guān)的信息的輸出脚猾。
(18)、/SUMMARY:此選項(xiàng)顯示有關(guān)節(jié)的最少信息(包括總大小)砚哗。如果未指定其它選項(xiàng)龙助,則此選項(xiàng)為默認(rèn)值。
(19)蛛芥、/SYMBOLS:此選項(xiàng)顯示COFF符號(hào)表提鸟。符號(hào)表存在于所有對(duì)象文件中军援。而對(duì)于圖像文件,只有當(dāng)它是與/DEBUG鏈接時(shí)称勋,它才包含COFF符號(hào)表胸哥。
(20)、/UNWINDINFO:在程序圖像(例如exe和dll)中轉(zhuǎn)儲(chǔ)結(jié)構(gòu)化異常處理(SHE)表的展開描述符铣缠。/UNWINDINFO僅適用于IA64圖像烘嘱。