最佳 DLL 符号转储实用程序

问题描述 投票:0回答:5

我有数百个 DLL,属于一个巨大的意大利面条代码项目,需要查看它们导出或导入哪些调用。如果我能够获得 DLL 之间的依赖关系图,那就太好了。有人可以推荐我免费且可靠的实用程序吗?

编辑:依赖遍历器似乎还不够:我不仅需要获取所需 DLL 的列表,还需要知道这些 DLL 的用途。

dll
5个回答
22
投票

Dependency Walker(depends.exe)可以做到这一点,并且是免费的。它还具有配置文件功能,因此您可以查看动态加载哪些 DLL。

如果您的 DLL 是 .Net 程序集,您可以使用 Reflector,如果它是带有类型库的 COM DLL,您可以使用 OleView 来获取更多信息。要从常规 dll 中获取更多信息,您必须求助于反汇编程序和读取程序集。


6
投票

依赖关系

Dependency Walker 在 Windows 10 上有一些问题(例如 Dependency walker 挂起),它有一个升级版本,称为 Dependencies:https://github.com/lucasg/Dependencies 它在 Windows 10 上正常工作.


4
投票

http://www.ntcore.com/exsuite.php“CFF Explorer”这个工具有你想要的一切。阅读主页上包含的功能。祝你好运!


0
投票

这个问题实际上是通过依赖遍历器来回答的。但我经常遇到的另一种选择是微软的 systools。其中之一是https://learn.microsoft.com/en-us/sysinternals/downloads/listdlls

我不确定它本身是否是一个可行的替代方案,但它可能会有所帮助。


-5
投票

无法获取使用了哪些 DLL 的信息。您必须阅读项目的软件文档 - 希望您有一些。还要仔细研究 makefile。

您只能在链接时看到包含哪些 DLL(静态地 - 与通常使用的含义不同),但这是 DLL 的子集。它不会返回任何插件或真正的动态加载库。

要在链接时库中使用它,您应该使用 MSVC 附带的“dumpbin”工具。 “Dependency walker”只是这个工具的前端。

然后编写一些脚本和/或使用 grep 过滤输出以分析 DLL 内容。

您可以搜索 SO 了解其他逆向工程技术。我相信你会找到很多资料,因为这是程序员的常用技能。

© www.soinside.com 2019 - 2024. All rights reserved.