大家好,又见面了,我是你们的朋友全栈君。
一般情况下,我们需要查看一个DLL或EXE中的包含的函数或是依赖的函数之类的信息,可以使用VS自带的工具dumpbin;
可以直接在命令行下输入dumpbin就可以查看他的使用说明,如果未显示,可以先运行VS安装目录下的vcvarsall.bat来设置一下环境变量就可以了
/ALL
显示除代码反汇编外的所有可用信息。使用 /DISASM 显示反汇编。可以与 /ALL 一起使用 /RAWDATA :NONE 来省略文件的原始二进制详细资料。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/ARCHIVEMEMBERS
显示有关库成员对象的最少信息。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/CLRHEADER file
此处: file 用 /clr 生成的图像文件。
备注
CLRHEADER 显示有关在任何托管程序中使用的 .NET 头的信息。输出显示 .NET 头及其中各节的位置和大小(以字节计)。
File Format Spec.doc 描述 .NET 头中的信息。NET SDK 将 File Format Spec.doc 安装在 Tools Developers Guide 目录中。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/DIRECTIVES
转储图像中由编译器生成的 .directive 节。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/DEPENDENTS
转储图像从中导入函数的 DLL 的名称。不要转储导入函数名。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/DISASM
显示代码段的反汇编,如果出现在文件中则使用符号。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/EXPORTS
显示从可执行文件或 DLL 导出的所有定义。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/FPO
显示框架指针优化 (FPO) 记录。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/HEADERS
显示文件头和每节的头。当用于库时,显示每个成员对象的头。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/IMPORTS[:file ]
显示导入到可执行文件或 DLL 的 DLL 列表(静态链接的和延迟加载 )和上述每个 DLL 的各个导入。
可选 file 规范允许指定仅显示某个 DLL 的导入。例如:
dumpbin /IMPORTS:msvcrt.dll
显示的输出与 /EXPORTS 输出相似。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/LINENUMBERS
显示 COFF 行号。如果对象文件是用程序数据库 (/Zi)、C7 兼容 (/Z7) 或仅限行号 (/Zd) 编译的,则它包含行号。如果可执行文件或 DLL 是与生成调试信息 (/DEBUG) 链接的,则它包含 COFF 行号。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/LINKERMEMBER[:{1|2}]
显示库中定义的公共符号。指定参数 1 将按对象顺序显示符号及其偏移量。指定参数 2 将显示对象的偏移量和索引号,然后按字母顺序列出这些符号及每个符号的对象索引。若要两个输出都获得,指定不带数字参数的 /LINKERMEMBER。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/LOADCONFIG
转储 IMAGE_LOAD_CONFIG_DIRECTORY 结构,此结构是由 Windows NT 加载程序使用并在 WINNT.H 中定义的可选结构。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/OUT:filename
指定输出的 filename 。默认情 况下,DUMPBIN 将信息显示到标准输出。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/PDBPATH[:VERBOSE] filename
此处: filename 要为其查找匹配 .pdb 文件的 .dll 或 .exe 文件名。
VERBOSE(可选)
报告曾尝试在其中定位 .pdb 文件的所有目录。
补充:
/PDBPATH 将沿调试器搜索 .pdb 文件的同一路径搜索计算机,并将报告哪些 .pdb 文件(若有)和 filename 中指定的文件相对应。
使用 Visual Studio 调试器时可能会遇到问题,这是因为调试器对调试文件的不同版本使用 .pdb 文件。
/PDBPATH 将沿下列路径搜索 .pdb 文件:
- 检查可执行文件驻留的位置。
- 检查写入可执行文件的 PDB 的位置。这通常是图像被链接时的位置。
- 沿 Visual Studio IDE 中配置的搜索路径检查。
- 沿 _NT_SYMBOL_PATH 和 _NT_ALT_SYMBOL_PATH 环境变量中的路径检查。
- 在 Windows 目录中检查。
/PDATA
仅用于 RISC 处理器。
此选项从图像或对象转储异常表 (.pdata)。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/RAWDATA[:{1|2|4|8|NONE[, number ]]
此选项显示文件中每节的原始内容。参数控制显示格式,如下所示:
参数 |
结果 |
1 |
默认值。内容以十六进制字节显 示,如果内容具有打印的表示形式,则还显示为 ASCII 字符。 |
2 |
内容显示为十六进制的 2 字节值。 |
4 |
内容显示为十六进制的 4 字节值。 |
8 |
内容显示为十六进制的 8 字节值。 |
NONE |
取消显示原始数据。此参数对控制 /ALL 输出很有用。 |
Number |
显示的行被设置为每行具有 number 个值的宽度。 |
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/RELOCATIONS
此选项显示对象或图像中的任何重定位。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/SECTION:section
此选项限制与指定的 section 有关的信息的输出。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/SUMMARY
此选项显示有关节的最少信息(包括总大小)。如果未指定其他选项,则此选项为默认值。
只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
/SYMBOLS
此选项显示 COFF 符号表。符号表存在于所有对象文件中。而对于图像文件,只有当它是与 /DEBUG 链接的时,它才包含 COFF 符号表。
可以通过查阅 winnt.h(IMAGE_SYMBOL 和 IMAGE_AUX_SYMBOL)或 COFF 文档,可找到有关 /SYMBOLS 输出含义的附加信息。
示例:
查看导出:
其中,这一部分为我们重点需要的部分:
这个Add就是我们的DLL中导出的函数名,而且可以看出,我的DLL是使用标准调用的方式导出的.
查看导入:
可以看到我们的DLL中依赖的其他资源或是DLL中包含的函数,资源信息.
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150875.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...