ImportError: DLL load failed: The specified module could not be found.
根据this site的说法,不可能显示比这更多的信息。在
现在,大问题。我不能使用依赖性查询器或dumpbin,因为我们需要能够以编程方式确定缺少哪个DLL。好消息是我们只需要检查第一级的依赖关系。所以,如果我的.exe依赖于a.dll、b.dll和c.dll,那么这是我们唯一感兴趣的dll集。如果a,b,c都在应该的位置,那么我的工作就完成了。在
我已经找到this MSDN page on enumerating for a running process,但无法找到如何对未运行的.exe或已卸载的.dll执行此操作。最接近我的是一篇关于LoadLibraryEx函数*的MSDN文章。但是,我一辈子都不知道如何从返回的HMODULE获取依赖表。在
所以,64000美元的问题是:如何从HMODULE获取.exe/.dll依赖项?一个更好的问题是:这就是我得到依赖关系的地方吗?如果没有,我在哪里能找到它?在
<>最好的解决方案是C++,但是我们也很高兴有一个Python解决方案。任何帮助或建议将不胜感激。谢谢。在*我会链接文章,但我的代表不够高,不能在一个问题中发布两个链接。:)
您需要读取模块的可移植可执行头(PE头)。这是一个描述导入、导出、重新定位、节、资源、代码、静态数据和二进制文件所依赖的所有其他内容的结构。虽然可以直接解析,但是PE头结构有很多不明显的古怪和细微差别。我建议使用像PeLib这样的库来为您处理所有事情。在
相关问题 更多 >
编程相关推荐