2016-02-29 26 views
1

有沒有什麼辦法可以確定在MS Visual Studio 2005(C++)中內置的DLL是在調試中編譯還是在版本中使用python確定是否在調試或釋放與python內建dll

我知道VS能夠加載DLL並顯示一些元數據存儲此信息的清單。任何python模塊都可以做到這一點嗎?

另一種選擇是識別此dll對其他dll的依賴關係,並查找僅用於調試的dll:msvcr80 D .dll,如果可能的話。

回答

2

Pefile可以幫助您解析PE可執行文件。您可以在項目頁面上找到一些用法examples

關於你問題的第二部分,你可以做這樣的事情來獲取DLL的依賴項列表(從例子中獲取):

import pefile 

path_to_dll = r"path_to_your_dll" 
pe = pefile.PE(path_to_dll, fast_load=True) 

# If the PE file was loaded using the fast_load=True argument, we will need to parse the data directories: 
pe.parse_data_directories() 
for entry in pe.DIRECTORY_ENTRY_IMPORT: 
    print entry.dll 

在我來說,我得到了以下的輸出: KERNEL32 .dll, MSVCP80D.dll, MSVCR80D.dll, ADVAPI32.dll。

相關問題