2016-02-29 23 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。

相关问题