2010-08-11 161 views
4

的是這可以查看一個DLL文件的內容和功能...
幾次前,我與OlyDBG玩,然後我發現有查看DLL的內容選項...
所以建議我任何好工具或軟...查看內容的DLL文件

並假設我有一個名爲「Python27.dll」的DLL ...
現在我需要查看此DLL的內容,所以我該怎麼做。 ..
thanx ...

回答

5

雖然使用起來並不簡單(您需要了解便攜式可執行文件,也就是PE文件的格式),但對於查看DLL或任何其他PE文件而言,pefile似乎是一個很好,功能強大且功能多樣的工具(I不會冒險使用它來更改這樣的文件,雖然我看到它是它的一個特點)。

例如,摘錄模塊的usage examples(和編輯來顯示,而不是他們所使用的同樣假想文件名,這是一個exe ;-)一個DLL:

import pefile 
pe = pefile.PE(‘/path/to/pefile.dll’) 
for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols: 
    print hex(pe.OPTIONAL_HEADER.ImageBase + exp.address), exp.name, exp.ordinal 

應,根據WIKIPAGE我指出對,顯示是這樣的:

0x7ca0ab4f SHUpdateRecycleBinIcon 336 
0x7cab44c0 SHValidateUNC 173 
0x7ca7b0aa SheChangeDirA 337 
0x7ca7b665 SheChangeDirExA 338 
0x7ca7b3e1 SheChangeDirExW 339 
0x7ca7aec6 SheChangeDirW 340 
0x7ca8baae SheConvertPathW 341 
0

我已經做了一些與ctypes的工作,並在w中加載dll indows,但我不認爲DLL有任何反省。這真的不是什麼大問題,因爲DLL中的所有函數調用都是靜態的。如果您試圖使用未公開的DLL,則不僅需要知道函數的名稱,還需要知道函數的參數。你將不得不逆向設計DLL,這不是一件小事。

所以,在我看來,我會說不。

3

Dependency Walker可以提供你想要/需要的東西 - 這當然顯示了DLL的所有入口點。

1

在Windows上,DUMPBIN提供了一些DLL檢查功能。例如:

DUMPBIN /EXPORTS C:\path\to\my.dll 

將顯示所有導出的定義。