DLL/EXE查看工具Dumpbin
2010-07-01 13:00
375 查看
一般情况下,我们需要查看一个DLL或EXE中的包含的函数或是依赖的函数之类的信息,可以使用VS自带的工具dumpbin;
可以直接在命令行下输入dumpbin就可以查看他的使用说明,如果未显示,可以先运行VS安装目录下的vcvarsall.bat来设置一下环境变量就可以了
DUMPBIN
选项
/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
]]
此选项显示文件中每节的原始内容。参数控制显示格式,如下所示:
只有 /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中包含的函数,资源信息.
可以直接在命令行下输入dumpbin就可以查看他的使用说明,如果未显示,可以先运行VS安装目录下的vcvarsall.bat来设置一下环境变量就可以了
Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. C:/Documents and Settings/Administrator>"D:/Program Files/Microsoft Visual Studi o 9.0/VC/vcvarsall.bat" Setting environment for using Microsoft Visual Studio 2008 x86 tools. C:/Documents and Settings/Administrator>dumpbin Microsoft (R) COFF/PE Dumper Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. 用法: DUMPBIN [选项] [文件] 选项: /ALL /ARCHIVEMEMBERS /CLRHEADER /DEPENDENTS /DIRECTIVES /DISASM[:{BYTES|NOBYTES}] /ERRORREPORT:{NONE|PROMPT|QUEUE|SEND} /EXPORTS /FPO /HEADERS /IMPORTS[:文件名] /LINENUMBERS /LINKERMEMBER[:{1|2}] /LOADCONFIG /OUT:文件名 /PDATA /PDBPATH[:VERBOSE] /RANGE:vaMin[,vaMax] /RAWDATA[:{NONE|1|2|4|8}[,#]] /RELOCATIONS /SECTION:名称 /SUMMARY /SYMBOLS /TLS /UNWINDINFO C:/Documents and Settings/Administrator>
DUMPBIN
选项
/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 个值的宽度。 |
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
输出含义的附加信息。
示例:
查看导出:
]C:/Documents and Settings/Administrator>dumpbin -exports E:/WorkStation/CPD项目/程序/UpdataModule/UpdataLibSrv/Results/UpdataLibSrv.dll Microsoft (R) COFF/PE Dumper Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file E:/WorkStation/CPD项目/程序/UpdataModule/UpdataLibSrv/Results/UpdataLibSrv.dll File Type: DLL Section contains the following exports for UpdataLibSrv.dll 00000000 characteristics 4C2C0DC3 time date stamp Thu Jul 01 11:38:43 2010 0.00 version 1 ordinal base 1 number of functions 1 number of names ordinal hint RVA name 1 0 00011005 Add = @ILT+0(?Add@@YGHHH@Z) Summary 1000 .data 1000 .idata 2000 .rdata 1000 .reloc 1000 .rsrc 4000 .text 10000 .textbss C:/Documents and Settings/Administrator>
其中,这一部分为我们重点需要的部分:
ordinal hint RVA name 1 0 00011005 Add = @ILT+0(?Add@@YGHHH@Z)
这个Add就是我们的DLL中导出的函数名,而且可以看出,我的DLL是使用标准调用的方式导出的.
查看导入:
]C:/Documents and Settings/Administrator>dumpbin -imports E:/WorkStation/CPD项目/ 程序/UpdataModule/UpdataLibSrv/Results/UpdataLibSr v.dll Microsoft (R) COFF/PE Dumper Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file E:/WorkStation/CPD项目/程序/UpdataModule/UpdataLibSrv/Results/UpdataLibSrv.dll File Type: DLL Section contains the following imports: MSVCR90D.dll 10018218 Import Address Table 100180E8 Import Name Table 0 time date stamp 0 Index of first forwarder reference 17F _crt_debugger_hook 1A8 _except_handler4_common 358 _onexit 2B0 _lock BA __dllonexit 424 _unlock B0 __clean_type_info_names_internal 8E __CppXcptFilter 132 _adjust_fdiv 144 _amsg_exit 240 _initterm_e 23F _initterm 72 _CrtSetCheckCount 194 _decode_pointer 1A0 _encoded_null 1DB _free_dbg 2C2 _malloc_dbg 19F _encode_pointer 5C _CRT_RTC_INITW KERNEL32.dll 1001816C Import Address Table 1001803C Import Name Table 0 time date stamp 0 Index of first forwarder reference 266 GetTickCount 415 SetUnhandledExceptionFilter 43E UnhandledExceptionFilter 1A9 GetCurrentProcess 42D TerminateProcess 14C FreeLibrary 45C VirtualQuery 1F5 GetModuleFileNameW 223 GetProcessHeap 29D HeapAlloc 2A1 HeapFree 2F1 LoadLibraryA 220 GetProcAddress 4B5 lstrlenA 31A MultiByteToWideChar 47A WideCharToMultiByte B4 DebugBreak 35A RaiseException 2D1 IsDebuggerPresent CB DisableThreadLibraryCalls 2BD InterlockedExchange 421 Sleep 2BA InterlockedCompareExchange 354 QueryPerformanceCounter 1AD GetCurrentThreadId 1AA GetCurrentProcessId 24F GetSystemTimeAsFileTime Summary 1000 .data 1000 .idata 2000 .rdata 1000 .reloc 1000 .rsrc 4000 .text 10000 .textbss
可以看到我们的DLL中依赖的其他资源或是DLL中包含的函数,资源信息.
相关文章推荐
- 使用vs自带的dumpbin工具来查看dll、lib、或EXE文件
- VC++中的DUMPBIN 工具用来查看PE(可移植执行体)文件(EXE、dll。。。)
- DLL/EXE查看工具Dumpbin
- 用dumpbin.exe工具查看DLL
- DLL EXE查看工具 Dumpbin.exe
- 几款查看dll和exe信息的小工具
- DLL/EXE查看工具Dumpbin
- VS自带工具:dumpbin的使用查看Lib,dll等
- 使用dumpbin(vs自带工具)命令查看dll、lib,导出函数(copy)
- DLL/EXE查看工具Dumpbin
- 几款查看dll和exe信息的小工具
- DLL/EXE查看工具Dumpbin
- 【PE】查看dll导出的符号的方法以及Depends.exe反汇编工具介绍
- dll依赖查看工具-depends
- exe, dll 中资源提取工具
- 工作问题积累(十九)使用dumpbin命令查看.dll(动态链接库)中导出函数
- EXE、DLL和OCX文件的最佳压缩工具--ASPack
- 使用dumpbin命令查看DLL导出函数列表
- 如何查看dll或者exe是X86还是X64架构
- 使用Depends工具查看DLL接口