如何查看DLL函数?

Posted

技术标签:

【中文标题】如何查看DLL函数?【英文标题】:How to view DLL functions? 【发布时间】:2011-05-25 05:53:18 【问题描述】:

我有一个 DLL 文件。如何查看该 DLL 中的函数?

【问题讨论】:

这个链接服务器很好 [view-contents-of-a-dll][1] [1]: ***.com/questions/6210305/view-contents-of-a-dll 【参考方案1】:

你可以试试 Visual Studio 中的对象浏览器

选择编辑自定义组件集。从那里,您可以从各种 .NET、COM 或项目库中进行选择,或者只需通过 Browse 导入外部 DLL。

【讨论】:

Visual Studio 在使用浏览和选择 DLL 时提示“无法浏览所选组件”:( - msdn.microsoft.com/query/… 对象浏览器已移至View。是的,它不起作用(为什么会它,它是微软) 更多的是供应商而不是 MS 问题。 Probablay dll 中没有类型库。见:***.com/a/13903040/1614903 @HolgerBöhnke 在 userdll32 中也没有类型库 @Kimmax 是的,但 user32.dll 是本机 Windows DLL,而不是 COM 服务器。只有 COM 服务器(例如 COM dll、ActiveX 控件、*.ocx ...)可能具有类型库,如果它们首先被编译的话。对于本机(=非 COM 对象)DLL,此处提到的其他一些工具(dumpbin 等)可能会起作用。也就是说,如果 DLL 按名称而不是仅按序号导出它的函数。【参考方案2】:

如果一个 DLL 是用一种 .NET 语言编写的,并且如果您只想查看哪些函数,那么项目中有对这个 DLL 的引用。

然后双击引用文件夹中的DLL,然后你会在OBJECT EXPLORER窗口中看到它有什么功能。

如果您想查看该 DLL 文件的源代码,您可以使用反编译器应用程序,例如 .NET reflector。

【讨论】:

【参考方案3】:

没有告诉我们这个 DLL/程序集来自什么语言,我们只能猜测。

那么.NET Reflector 怎么样。

【讨论】:

那么这应该是你的人。 .net 反射器以前是免费的,但现在是商业产品。对于 .net dll,“JustDecompile”是一个免费的替代方案。 反编译器只告诉你有哪些功能。我们可以看看他们的实现吗?【参考方案4】:

.NET ildasm

ildasm 帮助甚至转储方法体,但要编辑 .DLL,您还需要任何十六进制编辑器。

修复 Help Viewer v2.x 问题的 ildasm 示例: 错误:“更新内容时出错:文件 '???.cab' 未由 Microsoft 签名”

here could be imagemore example files

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案5】:

使用dumpbin command-line。

dumpbin /IMPORTS <path-to-file> 应该提供导入该 DLL 的函数。 dumpbin /EXPORTS <path-to-file> 应该提供它导出的函数。

【讨论】:

【参考方案6】:

使用 JetBrains 的 dotPeek。

https://www.jetbrains.com/decompiler/

dotPeek 是基于 ReSharper 的免费工具。它可以可靠地反编译 将任何 .NET 程序集转换为 C# 或 IL 代码。

【讨论】:

所以这是特定于使用 .NET 框架的 DLL 的?【参考方案7】:

对于 .NET DLL,您可以使用 ildasm

【讨论】:

因为 ildasm 是 Microsoft 产品,如果您安装了 Visual Studio,则默认安装在 PC 上。我相信这是最好的选择。它还有一个 UI,因此您不需要使用命令行。谢谢 可以找到:C:\Program Files (x86)\Microsoft SDKs\Windows\\bin【参考方案8】:

使用免费的DLL Export Viewer,非常好用。

【讨论】:

@sumit 你能说得更具体点吗?这个工具多年来一直对我有用。 其实这个工具很好用,简单明了,正是我需要的。 它是生成方法/函数列表的好工具,但它不显示方法的参数(也不显示它们的类型)。 非常棒的一款小巧紧凑的产品,而不是像官方 MS 产品通常那样臃肿的产品。【参考方案9】:

对于本机代码,最好使用Dependency Walker。也可以使用 Visual Studio 附带的dumpbin 命令行实用程序。

【讨论】:

使用较新版本的 VS,尝试将 DumpBin 作为 External Tool。 ***上有一篇关于 Dependency Walker 的文章。显然该程序已经过时并且不能与 Windows 的一些新功能一起使用,但有一个可用的替代品:github.com/lucasg/Dependencies 这个替换对我来说不起作用。我不会像依赖晚期依赖步行者那样依赖它很长时间。不幸的消息。

以上是关于如何查看DLL函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何查看DLL中的函数

如何查看 DLL 中的函数?

如何查看DLL文件里的函数

怎么查看dll里面的函数,怎么用dumpbin查看dll

如何使用查看DLL神器DependencyWalker

怎么查看dll里面的函数,怎么用dumpbin查看dll