如何查看DLL函数?
我有一个 DLL 文件。如何查看该 DLL 中的函数?
I have a DLL file. How can I view the functions in that DLL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我有一个 DLL 文件。如何查看该 DLL 中的函数?
I have a DLL file. How can I view the functions in that DLL?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(12)
对于本机代码,最好使用 Dependency Walker。也可以使用 dumpbin< /a> Visual Studio 附带的命令行实用程序。
For native code it's probably best to use Dependency Walker. It's also possible to use the dumpbin command line utility that comes with Visual Studio.
使用免费的DLL导出查看器,它非常容易使用。
Use the free DLL Export Viewer, it is very easy to use.
您可以尝试 Visual Studio 中的对象浏览器。
选择“编辑自定义组件集”。。从那里,您可以从各种 .NET、COM 或项目库中进行选择,或者仅通过浏览导入外部 DLL。
You may try the Object Browser in Visual Studio.
Select Edit Custom Component Set. From there, you can choose from a variety of .NET, COM or project libraries or just import external DLLs via Browse.
使用
dumpbin
命令行< /a>.dumpbin /IMPORTS
应提供导入到该 DLL 中的函数。dumpbin /EXPORTS
应提供其导出的函数。Use
dumpbin
command-line.dumpbin /IMPORTS <path-to-file>
should provide the function imported into that DLL.dumpbin /EXPORTS <path-to-file>
should provide the functions it exports.对于 .NET DLL,您可以使用 ildasm< /strong>
For .NET DLLs you can use ildasm
使用 JetBrains 的 dotPeek。
https://www.jetbrains.com/decompiler/
Use dotPeek by JetBrains.
https://www.jetbrains.com/decompiler/
在不告诉我们这个 DLL/程序集来自哪种语言的情况下,我们只能猜测。
那么 .NET Reflector 怎么样。
Without telling us what language this DLL/assembly is from, we can only guess.
So how about .NET Reflector.
对于非 .NET dll,在 Linux 系统上安装 binutils 会提供可用于显示 dll 信息的 objdump 命令。
在输出中查找
导出地址表
部分。For non .NET dlls, installing
binutils
on a Linux system presents theobjdump
command that can be used to display information of a dll.Look for the
Export Address Table
section in the output.如果 DLL 是用一种 .NET 语言编写的,并且您只想查看哪些函数,则项目中会有对此 DLL 的引用。
然后双击引用文件夹中的 DLL,然后您将在 OBJECT EXPLORER 窗口中看到它有哪些功能。
如果您想查看该 DLL 文件的源代码,可以使用反编译器应用程序,例如 .NET Reflector。
If a DLL is written in one of the .NET languages and if you only want to view what functions, there is a reference to this DLL in the project.
Then doubleclick the DLL in the references folder and then you will see what functions it has in the OBJECT EXPLORER window.
If you would like to view the source code of that DLL file you can use a decompiler application such as .NET reflector.
这是一个免费的、cli、便携式软件解决方案!适用于 Linux、Windows、Mac OS
前提是您有 python。
需要安装pefile,无依赖
pip install pefile
或pacman -S ${MINGW_PACKAGE_PREFIX}-python-pefile
如果您在 msys2 中Here is a free,cli,portable software solution! Works on Linux,Windows,Mac OS
Provided that you have python.
you need to install pefile, no dependencies
pip install pefile
orpacman -S ${MINGW_PACKAGE_PREFIX}-python-pefile
if you are in msys2ildasm 提供了帮助,甚至转储了方法体,但要编辑 .DLL,您还需要任何十六进制编辑器。
修复 Help Viewer v2.x 问题的 ildasm 示例:
错误:“更新内容时发生错误:文件‘???.cab’未由 Microsoft 签名”
这里可能是图像
更多示例文件
ildasm helped and even dumped methods body, but to edit .DLL you also need any hex editor.
ildasm example to fix Help Viewer v2.x issue:
error: "An error occurred while updating content: File '???.cab' was not signed by Microsoft"
here could be image
more example files
您可以使用 gendef 工具(也是 MinGW-w64 工具链的一部分)。
要在 STDOUT 上显示从 DLL 导出的符号:
gendef - mysharedlib.dll
要从 DLL 生成 .def 文件:
gendef mysharedlib.dll
You can use
gendef
tool (also part of the MinGW-w64 toolchain).To display exported symbols from a DLL on STDOUT:
gendef - mysharedlib.dll
To generate a .def file from a DLL:
gendef mysharedlib.dll