這個(gè)小工具可以幫你查看 DLL鏈接庫(kù)文件中的輸出函數(shù)及相應(yīng)的偏移地址,這在調(diào)試程序時(shí)很方便。
本工具可以列出所有指定DLL文件中的所有導(dǎo)出函數(shù)和他們的虛擬內(nèi)存地址。你可以很方便地復(fù)制所需函數(shù)的內(nèi)存地址,粘貼到你的調(diào)試器中,并在這個(gè)內(nèi)存地址中設(shè)置斷點(diǎn)。當(dāng)這個(gè)函數(shù)被調(diào)用時(shí),調(diào)試器將會(huì)在函數(shù)開(kāi)始時(shí)中斷。例如:如果你想在每次顯示信息對(duì)話框時(shí)進(jìn)行中斷,只需把斷點(diǎn)設(shè)置在信息對(duì)話框函數(shù)的內(nèi)存上:MessageBoxA, MessageBoxExA, 和MessageBoxIndirectA (對(duì)于Unicode程序則是 MessageBoxW, MessageBoxExW, 和MessageBoxIndirectW)。當(dāng)其中一個(gè)信息對(duì)話框函數(shù)被調(diào)用時(shí),你的調(diào)試器會(huì)在函數(shù)入口處中斷,這樣你就可以查看調(diào)用堆棧和倒退到初始化這個(gè)API函數(shù)的代碼中。
DLL Export Viewer不需要任何安裝過(guò)程或額外的DLL,為了開(kāi)始使用它,只需運(yùn)行可執(zhí)行文件 - dllexp.exe
DLL Export Viewer加載時(shí),你要選擇下列一個(gè)選項(xiàng):
*載入標(biāo)準(zhǔn)系統(tǒng)DLL(user32,kernel32等)中的所有函數(shù):這是默認(rèn)選項(xiàng)。如果你選擇它,會(huì)導(dǎo)出Windows標(biāo)準(zhǔn)DLL(kernel32.dll,user32.dll,等等...)中的API函數(shù)。
*從指定的DLL文件中加載函數(shù):如果您選擇此選項(xiàng)時(shí),您必須在下面的文本框中指定DLL。您也可以使用通配符指定多個(gè)DLL文件。如果你要查看你系統(tǒng)所有的API函數(shù),您可以指定類似'c:\windows\system32\*.dll'的表達(dá)式 -但我必須提醒你...你會(huì)得到一個(gè)非常長(zhǎng)的列表函數(shù),可能超過(guò)五萬(wàn)個(gè)函數(shù)!
*載入以下文本文檔(回車分隔)中指定DLL中的函數(shù):如果您選擇此選項(xiàng),指定文本文件應(yīng)包含一個(gè)DLL文件列表中,回車字符(CR-LF)分隔。全部指定的DLL中的導(dǎo)出函數(shù)將被加載。
*載入與所選進(jìn)程關(guān)聯(lián)的全部 DLL 中的函數(shù):這是本程序最有用的工具調(diào)試選項(xiàng)。選擇你正在調(diào)試的進(jìn)程,之后所以與選定的進(jìn)程相關(guān)的DLL導(dǎo)出的函數(shù)都會(huì)被顯示。