dumpbin lib的使用方法,dumpbin lib怎么用

我们在查看一个.exe文件需要哪些.dll和一个dll会导出那些函数的时候我们都会用到dumpbin
我运行的时候dumpbin的时候总是提示dumbin是无效的命令(在DOS下的cmd命令中),按照孙鑫的视频中的方法:
说找不到是可能是环境变量遭到破坏,运行D:/Program Files/Microsoft Visual Studio 8/VC/bin/vcvars32.bat,这个批处理程序就是为VC设置环境变量的工具。但是好像我运行之后还是没有用。我直接进到D:/Program Files/Microsoft Visual Studio 8/VC/bin看到了dumpbin.exe,但是就是在这个目录下运行dumpbin也会提示找不到mspdb80.dll,当我把mspdb80.dll加到D:/Program Files/Microsoft Visual Studio 8/VC/bin下的时候是可以解决问题,但是这样做的话下次启动VS2005运行一个工程的话会出问题,会提示你fatal error C1902: 程序数据库管理器不匹配;请检查安装,上网查了一下就是因为我从common7 下把mspdb80.dll拷贝到bin下,但是没有及时删除造成的。可以参考
看来dumpbin.exe的运行是依赖于mspdb80.dll,但是我们把mspdb80.dll从common7下移动到vc/bin下面又会造成VS的运行错误。我们知道一个.exe找.dll的顺序是1)进程的当前目录 2)windows目录下的系统目录是c:/windows/system32/目录这个吧 3)Windows目录 4)PATH环境变量中列出的目录。看来是不能有两个mspdb80.dll那我就让dumpbin.exe运行的时候自己去找common7下的mspdb80.dll不就OK了。
在环境变量中的PATH变量中添加D:/Program Files/Microsoft Visual Studio 8/VC/D:/Program Files/Microsoft Visual Studio 8/Common7/IDE路径
这下子在D:/Program Files/Microsoft Visual Studio 8/VC/bin下运行dumpbin.exe没有问题了,而且解决了VS2005启动时的错误问题,但是我们想在当前的工程的目录下来看.dll的属性。而不像把.dll拷到VC/bin下面去看,如何解决?还是用环境变量PATH中添加路径运行vcvars32.bat或是手动加上D:/Program Files/Microsoft Visual Studio 8/VC/bin应该都可以,后来我又没有自己手动加上这一路径
运行vcvars32.bat或手动加上D:/Program Files/Microsoft Visual Studio 8/VC/bin
这样运行再运行dumpbin命令就OK了
阅读(...) 评论() &有时候我们想查看一个exe引用了哪些动态库,或者我们想看某个动态库包含哪些接口函数,这个时候可以使用dumpbin.exe工具:
1.输入Dumpbin -imports calldll.exe查看它的输入信息,可以看到它加载了***.dll 2.输入dumpbin &exports dlltest.dll,列出导出函数
开始-&所有程序-&Microsoft Visual Studio 2010-&Visual Studio Tools -&&Visual Studio 命令提示(2010)&后,
就像普通的cmd一样的命令行环境,就可以正常使用VS的一些工具,其中就包括dumpbin。
输入如下命令,查看dll信息:
D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC&
dumpbin -exports D:\WorkSpace\DLLTutorial\Debug\DLLTutorial.dll
输出如下:
其中可以看到,我们在DLL中写的两个函数:
&1 & &0 000110FA Add = @ILT+245(_Add) &2 & &1
Function = @ILT+515(_Function)
阅读(...) 评论()关于DLL调试的两个工具(dependency walker和dumpbin.exe)
时间: 11:46:44
&&&& 阅读:91
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&Dependency Walker工具:
该工具用来查看dll依赖库和依赖库内的函数。
左上角:模块依赖树,表示该dll所依赖的其它dll文件
右上角:导入函数,即与当前根模块有关系的函数(即根模块或根模块的子模块使用到的模块)
右中间:导出函数,即当前模块所有可以导出的函数(即可以被外界调用的函数)。
下面:模块列表视图,用于显示所依赖的dll模块的信息,如果加载错误会红色标出
最下面:日志视图,显示出错模块的信息
具体查看:
另一篇文章生动的讲解了dll原理和作用,主要观点:
1.dll可以包含图片,音频等各种资源(这是超过我的想象的);
2.哪些dll需要注册,哪些不需要;(打开dependcy查看,有HRESULT DllRegisterServer(void)和DllUnRegisterServer(void)函数的dll必须注册才能使用)
3.如何注册dll.(方法一:regsvr32.exe:注册命令:regsvr32 xx.dll;注销命令:regsvr32 /u xx.dll;方法二:程序内调用函数注册:LoadLibrary("xx.dll"),FARPROC pFun=GetProcAddress(hModule,"DllRegisterServer"))
4.一些windows自带dll的具体作用。
具体查看:
dumpbin.exe工具:
该工具与上述工具类似,只不过没有窗口只有命令。
dumpbin.exe是vs2010自带工具,用的时候将它添加到环境变量中可以方便使用。
它的优点是可以查看多种类型文件:.obj文件、.lib库、.dll库、.exe执行文件。而Dependcy只能查看dll和exe文件。
如果查看a.dll库中包含哪些函数,可以使用:dumpbin /exports a.dll &1.txt
如果查看b.exe中加载了哪些动态库,可以使用:dumpbin /imports b.exe &2.txt
如果查看c.lib中包含哪些函数,可以使用:dumpbin /all /rawdata:none c.lib &3.txt
如果查看d.obj中包含哪些函数,可以使用:dumpbin /all /rawdata:none d.obj &4.txt标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文地址:https://www.cnblogs.com/zhuluqing/p/8900202.html
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!Dumpbin工具参数详解
Dumpbin简介
DUMPBIN是在Windows平台下用于显示COFF格式文件信息的一个命令行工具。你可以使用DUMPBIN去显示COFF格式的文件信息,比如像vc编译器生成的目标文件(obj),可执行文件(exe)和动态链接库(DLLs)等。
注:此工具只能在命令行下使用。
DUMPBIN [options] files...或
DUMPBIN files...
你可以指定一个或多个二进制文件(COFF格式)以及同时使用多个参数去控制信息的输出。DUMPBIN可以将这些信息输出到标准设备和一个文件中。命令如下:
DUMPBIN/ALL /OUT:b.txt Test1.obj Test2.obj
/ALL Test1.obj Test2.obj &b.txt
如果你没有给DUMPBIN指定任何选项,它将等同于使用了/SUMMARY参数。
如果你没有指定任何输入文件,它将列出所有的选项。
参数的使用可以用”-“或者”/”(-ALL等于/ALL)后面跟选项名。有些选项可以在选项名后接”:”正如前面实例一样在输出文件的选项时使用了/OUT:b.txt。使用空格或则制表符(Tab)分割命令选项。选项名,关键字和文件名是不区分大小写的。大多数的参数可以应用于所有的二进制文件。有少部分参数只能用于特定的文件。默认的DUMPBIN输出信息到标注输出设备(屏幕),只有使用了/OUT或者”&”时可以将文件输入到外部文件中。
显示除”code disassembly”以外的所有信息。可以使用/DISASM选项来显示”codedisassembly”。使用/RAWDATA:NONE和/ALL去删除每个段中的二进制数据。
/ARCHIVEMEMBERS
显示库中成员的基本信息。
/CLRHEADER file
运行时。可参考的相关信息。
/DEPENDENTS
显示出所依赖的DLLs的名字,但不现实导入函数的名字。
/DIRECTIVES
显示编译器产生的.drective(链接时的参数)段中的信息。
显示代码段反汇编的结果。/DISASM should only be used on native (not managed) images.(大概意思:不能使用在微软的C++“标准“中)。
/ERRORREPORT[NONE | PROMPT | QUEUE | SEND ]
如果dumpbin.exe在运行时失败,你能使用”/ERRORREPORT”这个参数去发送错误信息到微软。
显示可执行文件或DLL中导出的所有信息。
显示( frame pointer optimization)记录。
显示文件和每个段的头部信息。当使用一个库文件时,它显示的是每个成员对象的头部信息。
/IMPORTS[:file]
显示可执行文件或DLL文件中导入的DLL文件和它的函数列表。
/LINENUMBERS
如果编译时使用了/Zi,/C7/Zd选项,行编号才存在于目标文件中,或者在连接时产生了调试信息是才能够显示行编号。
/LINKERMEMBER[:{1|2}]
这个选项显示定义在库中的全局符号。如果”1”被指定将以对象的顺序显示对象以及他们相应的偏移量,如果”2”被指定将显示偏移和对象成员的索引,然后以字母顺序排序。
/LOADCONFIG
这个选项会显示””结构体中的相关信息,这个结构体是在文件加载时加载选项。
/OUT:filename
这个选项将信息输出到指定的文件中。
这个参数只对处理器才有用。显示.pdata中的相关信息。
/RAWDATA[:{1|2|4|8|NONE[,number]]
显示原始数据(比如.text段中的指令数据)。你可以使用下列参数来格式化输出。
默认值,数据以十六进制显示,如果有打印字符就显示他的assii码。
数据以十六进制2字节形式显示。
数据以十六进制4字节形式显示。
数据以十六进制8字节形式显示。
数据被限制,这个参数可以配合/ALL一起使用来控制输出。
以设定值来显示。
/RELOCATIONS
显示对象中的重定位信息。
/SECTION:section
显示由”section”指定段中的信息。你可以使用”/HEADERS”选项去显示每个段的头部信息。
显示每个段的基本信息(段名和大小),如果其他选项没有指定这个选项是默认的。
这个参数会显示COFF文件的符号表(用于连接时从定位的)。在所有的对象中都存在符号表。一个COFF文件中的符号表只有在连接时使用了”/DEBUG”时才显示。前两句话感觉有点矛盾原文是这样的: “Symbol tables exist in all object files. A COFF symbol tableappears in an image file only if it is linked with /DEBUG”。
一个符号表的实例:
Dump of file main.obj
File Type: COFF OBJECT
| @comp.id
| .drectve
Section length
26,#relocs
0, #linenums
0, checksum 722C964F
Section length
23,#relocs
1, #linenums
0, checksum 459FF65F, selection
1 (pick no duplicates)
| ?MyDump@@YAXXZ (void __cdecl MyDump(void))
String Table Size = 0x10 bytes
26 .drectve
这些结构信息你可以参考这两个结构体”IMAGE_SYMBOL” and “IMAGE_AUX_SYMBOL”也可以参考文档
显示一个来自可执行文件中的“IMAGE_TLS_DIRECTORY”结构体的信息,此结构定义在Winnt.h中,也显示回调函数的地址。如果你的程序中没有使用线程私有储存空间(”thread local storage”,)这个镜像文件中是不会包含“IMAGE_TLS_DIRECTORY”的。
/UNWINDINFO
这个选项只能使用于 。
注:上面的每个选项在使用时都有这么一个选项——只用在编译时使用”/GL”选项生成的文件才能够使用”/HEADERS”这个选项。
工作问题积累(十九)使用dumpbin命令查看.dll(动态链接库)中导出函数
VS中dumpbin.exe工具的使用
DUMPBIN命令使用详解
程序底层查看工具之dumpbin
dumpbin使用说明
dumpbin命令不能使用解决方法
DLL EXE查看工具 Dumpbin.exe
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: "5865577",
container: s,
size: "300,250",
display: "inlay-fix"dumpbin用法
转自:http://www.cnblogs.com/lidabo/p/3482
dumpbin用法:dumpbin /exports /out:d:\mfc90.txt d:\mfc90.lib
在使用VC时,可以用 DUMPBIN.EXE 来得到某个DLL中所输出的符号的清单。如下面的命令:dumpbin -exports Cmpnt1.dll如:C:\WINDOWS\system32&dumpbin -exports msgsvc.dllMicrosoft (R) COFF Binary File Dumper Version 6.00.8447Copyright (C) Microsoft Corp . All rights reserved.Dump of file msgsvc.dllFile Type: DLLSection contains the following exports for msgsvc.dll   0   characteristics  41107F60   time date stamp Wed Aug 04 14:17:04 2004   0.00   version   1   ordinal base   2   number of functions   2   number of namesordinal hint RVA name   1   0 00004ABF ServiceMain   2   1
SvchostPushServiceGlobalsSummary   1000 .data   1000 .reloc   1000 .rsrc   8000 .textC:\&dumpbinMicrosoft (R) COFF Binary File Dumper Version 6.00.844Copyright (C) Microsoft Corp . All rights resusage: DUMPBIN [options] [files]options:   /ALL   /ARCH   /ARCHIVEMEMBERS   /DEPENDENTS   /DIRECTIVES   /DISASM   /EXPORTS   /FPO   /HEADERS   /IMPORTS   /LINENUMBERS   /LINKERMEMBER[:{1|2}]   /LOADCONFIG   /OUT:filename   /PDATA   /RAWDATA[:{NONE|BYTES|SHORTS|LONGS}[,#]]   /RELOCATIONS   /SECTION:name   /SUMMARY   /SYMBOLS若要运行 DUMPBIN,请使用下列语法:DUMPBIN [options] files...指定一个或多个二进制文件,以及控制信息所需的任何选项。DUMPBIN 将该信息显示到标准输出。可以将输出重定向到文件,或者使用 /OUT 选项为输出指定文件名。当在文件上运行 DUMPBIN 但未指定选项时,DUMPBIN 显示 /SUMMARY 输出。当键入命令 dumpbin 但没有任何其他命令行输入时,DUMPBIN 显示汇总其选项的用法语句。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 个值的宽度。 只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。/RELOCATIONS此选项显示对象或图像中的任何重定位。只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。/SECTION:section此选项限制与指定的 section 有关的信息的输出。只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。/SUMMARY此选项显示有关节的最少信息(包括总大小)。如果未指定其他选项,则此选项为默认值。只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。/SYMBOLS此选项显示 COFF 符号表。符号表存在于所有对象文件中。而对于图像文件,只有当它是与 /DEBUG 链接的时,它才包含 COFF 符号表。下面是关于 /SYMBOLS 输出的说明。通过查阅 winnt.h(IMAGE_SYMBOL 和 IMAGE_AUX_SYMBOL)或 COFF 文档,可找到有关 /SYMBOLS 输出含义的附加信息。假设有下列示例转储:Dump of file main.objFile Type: COFF OBJECTCOFF SYMBOL TABLE000
DEBUG notype Filename | .filemain.cpp002 000B1FDB ABS notype Static | @comp.id003
SECT1 notype Static | .drectveSection length 26, #relocs 0, #linenums 0, checksum 722C964F005
SECT2 notype Static | .textSection length 23, #relocs 1, #linenums 0, checksum 459FF65F, selection 1 (pick no duplicates)007
SECT2 notype () External | _main008
UNDEF notype () External | ?MyDump@@YAXXZ (void __cdecl MyDump(void))String Table Size = 0x10 bytesSummary26 .drectve23 .text对于以符号号码开头的行,下列说明描述了含有与用户相关的信息的列: 开头的 3 位数字是符号索引/号码。 如果第三列包含 SECTx,则符号在对象文件的那一节中定义。但如果出现 UNDEF,则它不在那个对象中定义并且必须在其他地方被解析。 第五列 (Static, External) 说明符号是否只在那个对象的内部可见,或者是否是公共的(外部可见)。静态符号 _sym 不会链接到公共符号 _sym;这些符号是名为 _sym 的函数的两种不同实例。 编号行中的最后一列是符号名(修饰名和未修饰名)。只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。/UNWINDINFO 在程序图像(例如 exe 和 dll)中转储结构化异常处理 (SEH) 表的展开描述符。/UNWINDINFO 仅适用于 IA64 图像。只有 /HEADERS DUMPBIN 选项可用于由 /GL 编译器选项产生的文件。
dumpbin使用说明
VS2010中dumpbin工具的使用
Visual Studio中dumpbin的使用方法
Dumpbin简介
VS中dumpbin.exe工具的使用
DUMPBIN命令使用详解
Dumpbin工具参数详解
程序底层查看工具之dumpbin
DLL/EXE查看工具Dumpbin
VS2010自带工具dumpbin的使用
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: "5865577",
container: s,
size: "300,250",
display: "inlay-fix"}

我要回帖

更多关于 眼霜的正确使用方法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信