我有几百个属于庞大的spagetti-code-project的DLL,需要查看它们导出或导入的调用。如果我能够在DLL之间获得依赖图,那也很棒。 有人可以推荐我免费和可靠的实用程序吗? 谢谢。
编辑:Dependancy walker似乎还不够:我需要获取一个列表,不仅可以获取所需的DLL,还可以知道这些DLL的用途。
答案 0 :(得分:14)
Dependency Walker(depends.exe)可以做到并且是免费的。它还具有配置文件功能,因此您可以看到哪些DLL是动态加载的。
如果你的DLL是.Net程序集,你可以使用Reflector,如果它是带有类型库的COM DLL,你可以使用OleView来获取更多信息。为了从常规dll中获取更多信息,您将不得不求助于反汇编程序和阅读程序集。
答案 1 :(得分:4)
http://www.ntcore.com/exsuite.php“CFF Explorer”这个工具拥有你想要的一切。阅读主页上包含的功能。祝你好运!
答案 2 :(得分:0)
Dependency Walker 在 Windows 10 上有一些问题(例如 Dependency walker hangs),它有一个升级版本,叫做 Dependencies:https://github.com/lucasg/Dependencies 它可以在 Windows 10 上正常工作。
答案 3 :(得分:-1)
无法获取有关DLL的用途的信息。你必须阅读项目的软件文档 - 希望你有一些。还要仔细研究makefile。
您可以使用函数名来查看源代码是否映射到哪些DLL和 为此,您应该使用MSVC附带的“dumpbin”工具。 “Dependancy walker”只是这个工具的前端。
然后编写一些脚本和/或使用grep过滤输出以分析DLL内容。
您可以在SO中搜索其他逆向工程技术。我相信你会发现很多信息,因为这是程序员的常用技能。