dumpbin 用法

dumpbin 用法今天工作中需要查看dll中的内部结构所以重点学习了一下dumpbin的用法dumpbin.exe在/VC/BIN目录下,如果在其他目录下无法使用dumpbin,可以运行该目录下VCVARS32.BAT,这个批处理文件就是用来修复VC环境的。 下面列出了DUMPBIN命令行选项。此外列出每个选项提供的输出的一些了。/ALL显示除代码反汇编外的所有可用信息。使用

大家好,又见面了,我是你们的朋友全栈君。

今天工作中需要查看dll中的内部结构 所以重点学习了一下dumpbin的用法

dumpbin.exe在/VC/BIN目录下,如果在其他目录下无法使用dumpbin,可以运行该目录下VCVARS32.BAT,这个批处理文件就是用来修复VC环境的。

 

下面列出了 DUMPBIN 命令行选项。 此外列出每个选项提供的输出的一些了。

/ ALL 显示除代码反汇编外的所有可用信息。 使用 /DISASM 选项显示反汇编。 您可以使用 /RAWDATA: NONE 与该 /ALL 选项省略原始二进制文件的详细信息。

因为该/ALL 选项是只是所有其他选项的组合,则不需要一个示例。

/ ARCHIVEMEMBERS 显示在库中的成员对象的最少信息。

输出文件的大小取决于库中的对象模块的数量。 以下是从 Scrnsave.lib 文件输出的一部分:

Archive member name at 582: /0        ../../common/retail/scrnsave.obj
2FF359CC time/date Thu Jun 29 18:56:28 1995
         uid
         gid
  100666 mode
    214A size
correct header end
					

/ DISASM 显示使用的符号,如果文件中存在的代码段的反汇编。

以下是从 Lib.exe 文件反汇编代码的一部分:

00401000: 8B 44 24 08        mov         eax,dword ptr [esp+8]
00401004: 68 00 20 40 00     push        402000h
00401009: 8B 4C 24 08        mov         ecx,dword ptr [esp+8]
0040100D: 50                 push        eax
0040100E: 51                 push        ecx
0040100F: E8 0C 00 00 00     call        00401020
00401014: 33 C0              xor         eax,eax
00401016: C3                 ret
00401017: CC                 int         3
					

/ 导出 显示所有从可执行文件或 DLL 导出的定义。

MFC40.DLL 产生以下导出信息:

部分包含以下的导出为 MFC40.DLL

          0 characteristics
   30733286 time date stamp Wed Oct 04 18:19:02 1995
       0.00 version
          1 ordinal base
       5782 number of functions
          4 number of names

ordinal hint   name

      2    0   DllCanUnloadNow  (00096182)
      1    1   DllGetClassObject  (0009611E)
      3    2   DllRegisterServer  (000961DB)
      4    3   DllUnregisterServer  (00096242)
					

/ FPO 显示框架指针优化 (FPO) 记录。

一个 MFC 库,Nafxis.lib,使用帧指针优化记录的一些示例提供了我们:

FPO Data (1)
                                       Use Has  Frame
 Address  Proc Size   Locals   Prolog  BP  SEH  Type   Params
00000000          9        0        0   N   N    fpo        0

FPO Data (1)
                                       Use Has  Frame
 Address  Proc Size   Locals   Prolog  BP  SEH  Type   Params
00000000         11        0        0   N   N    fpo        C

FPO Data (1)
                                       Use Has  Frame
 Address  Proc Size   Locals   Prolog  BP  SEH  Type   Params
00000000          3        0        0   N   N    fpo        0
					

/ 头 显示文件头和每个节标头。 使用与库时, 它将显示为每个成员对象标头。

此信息已显示从资源编译器,Rc.exe:

FILE HEADER VALUES
     14C machine (i386)
       6 number of sections
306F7A22 time date stamp Sun Oct 01 22:35:30 1995
       0 file pointer to symbol table
     1D1 number of symbols
      E0 size of optional header
     302 characteristics
            Executable
            32 bit word machine
            Debug information stripped

OPTIONAL HEADER VALUES
     10B magic #
    2.60 linker version
    1E00 size of code
    1E00 size of initialized data
       0 size of uninitialized data
    1144 address of entry point
    1000 base of code
    3000 base of data
         ----- new -----
 2BB0000 image base
    1000 section alignment
     200 file alignment
       3 subsystem (Windows CUI)
    4.00 operating system version
    4.00 image version
    3.50 subsystem version
    8000 size of image
     400 size of headers
    62C8 checksum
  100000 size of stack reserve
    1000 size of stack commit
  100000 size of heap reserve
    1000 size of heap commit
       0 [       0] address [size] of Export Directory
    5000 [      3C] address [size] of Import Directory
    6000 [     394] address [size] of Resource Directory
       0 [       0] address [size] of Exception Directory
       0 [       0] address [size] of Security Directory
    7000 [     21C] address [size] of Base Relocation Directory
    3030 [      38] address [size] of Debug Directory
       0 [       0] address [size] of Description Directory
       0 [       0] address [size] of Special Directory
       0 [       0] address [size] of Thread Storage Directory
       0 [       0] address [size] of Load Configuration Directory
     268 [      44] address [size] of Bound Import Directory
    50A0 [      64] address [size] of Import Address Table Directory
       0 [       0] address [size] of Reserved Directory
       0 [       0] address [size] of Reserved Directory
       0 [       0] address [size] of Reserved Directory

SECTION HEADER #1
   .text name
    1D24 virtual size
    1000 virtual address
    1E00 size of raw data
     400 file pointer to raw data
       0 file pointer to relocation table
    3C20 file pointer to line numbers
       0 number of relocations
     37E number of line numbers
60000020 flags
         Code
         (no align specified)
         Execute Read
					

/ IMPORTS 显示导入到可执行文件或 DLL 的所有定义。

此处显示输出结果是类似于 /EXPORTS 输出。

/ LINENUMBERS 显示 COFF 行号。 如果它用在程序数据库 (/ zi) C7 兼容编译对象文件中存在行号 (/ Z7),或行号仅 (/ zd) 切换。 可执行文件或 DLL 包含 COFF 行号,如果它已链接与生成调试信息 (/ DEBUG) 和 COFF 格式 (/ DEBUGTYPE:COFF) 选项。

使用应用程序向导生成的应用程序显示行信息数据,如下列:

LINENUMBERS #1
   1E90   13     1ECD   13     1EF7   13     1F16   13     1F31   15
   1F46   15     1F61   24     1F9A   27     1FD0   2A     2001   2B
					

/ LINKERMEMBER [: {1|2}] 显示在库中定义的公共符号。 指定 1 参数来连同其偏移量的对象顺序显示符号。 指定 2 参数来显示偏移量和索引号的对象,然后列表按字母顺序沿对象索引,为每个符号。 若要将这两个输出数字的参数没有指定 /LINKERMEMBER。

要获取的 DUMPBIN 输出下面的示例使用了 Winmmm.lib,Windows 多媒体库。

Archive member name at 8: / 
2FB537E1 time/date Sat May 13 15:51:13 1995
         uid
         gid
       0 mode
    2864 size
correct header end

    391 public symbols

     556C _CloseDriver@12
     58A0 _DefDriverProc@20
     5BDC _DriverCallback@28
     5F1C _DrvGetModuleHandle@4
     626A _GetDriverModuleHandle@4
     65C4 _NotifyCallbackData@20
     6914 _OpenDriver@12
     6C44 _PlaySound@12
     6F70 _PlaySoundA@12
     72A0 _PlaySoundW@12
					

/ OUT: 文件名 指定输出文件名。 榛樿鎯呭喌涓嬶,DUMPBIN 到标准输出中显示的信息。

/ RAWDATA [: {BYTES|SHORTS|LONGS|NONE} [,号]] 显示文件中的每一节中的原始内容。 参数控制所显示的格式,如下所示:

Argument    Result

BYTES      The default. Contents are displayed in hexadecimal bytes,
           and also as ASCII characters if they have a printed
           representation.
SHORTS     Contents are displayed as hexadecimal words.
LONGS      Contents are displayed as hexadecimal longwords.
NONE       Raw data is suppressed. This argument is useful to control
           the output of /ALL.
number     Displayed lines are set to a width that holds <number> values
           per line.
					

使用此选项生成信息相当大,这是从应用程序中使用该 LONGS 设置格式的应用程序向导的输出的一个小示例:

RAW DATA #1
00000000  53EC8B55 00A15756 | E9004058 00000000      U[ASCII 239]_SVW[ASCII
237].|X@._...._
00000010  C95B5E5F EC8B55C3 | 5304EC83 4D895756      _^[++U[ASCII
239]_|[ASCII 226]_.SVW[ASCII 235]M_
00000020  3058B8FC 00E90040 | 5F000000 C3C95B5E      n+X0@._.|..._^[++_
					

/ 重定位 显示对象或图像中的任何重定位。

下面从应用程序向导应用程序获得的重定位输出一小部分:

BASE RELOCATIONS #6

    1000 virtual address,       B0 SizeOfBlock
       7 HIGHLOW
      22 HIGHLOW
      36 HIGHLOW
      67 HIGHLOW
      89 HIGHLOW
					

/ 部分: 部分 将输出限制到指定的节上的信息。

/ 姒傝 显示有关各节包括总大小的最少信息。 如果不指定任何其他选项,则此选项为默认值。

Microsoft (R) COFF Binary File Dumper Version 3.00.5270
Copyright (C) Microsoft Corp 1992-1995. All rights reserved.

Dump of file tracer.exe

File Type: EXECUTABLE IMAGE

     Summary

        1000 .data
        1000 .idata
        1000 .rdata
        1000 .reloc
        1000 .rsrc
        1000 .text
					

/ 符号 显示 COFF 符号表。 符号表存在于所有对象文件中。 只有当它处于链接与生成调试信息和 COFF 格式选项在调试信息下的调试类别上为链接器 (或命令行上的 /DEBUG 和 /DEBUGTYPE:COFF 选项),COFF 符号表出现在图像文件。

应用程序向导应用程序用于获取下面的示例:

COFF SYMBOL TABLE
000 000065D0 SECT5  notype       Static       | .rsrc$02
001 00000011 DEBUG  notype       Filename     | .file
 C:/code/test/testView.cpp
004 000041A0 SECT3  notype       Static       | $SG23289
005 00004018 SECT3  notype       Static       | _$S189$S23301
006 00004168 SECT3  notype       Static       | _THIS_FILE$S23282
007 00001E90 SECT1  notype       Static       | .text
 Section length  2DE, #relocs   27, #linenums   22
009 00001EE2 SECT1  notype ()    Static       | _$E188
00A 00001EF7 SECT1  notype ()    Static       | _$E187
 tag index 0000002E size 0000001F lines 000012DF next function 00000033
00C 000042AC SECT3  notype       Static       | __init_CTestView$S23291
00D 00003998 SECT2  notype       Static       | $T23440
00E 00003978 SECT2  notype       Static       | $T23438
00F 000039C0 SECT2  notype       Static       | $T23447
010 000039A0 SECT2  notype       Static       | $T23446
011 00000021 DEBUG  notype       Filename     | .file

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/150870.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MT4下载怎么下?「建议收藏」

    MT4下载怎么下?「建议收藏」在哪里可以下载到mt4了?个人装了一些像应用宝这类的搜索软件,里面找不到地方下载MT4这个应用软件,怎么样,实际上到百度一搜索就能找到。当输入MT4的时候,会看到下拉框有这么多选择,只需选MT4安卓手机版输入便可`mt4download.cn`搜索出来肯定有很多下载链接,怎样选,正常选第一个搜索主页,【正版】MT4软件【免费下载】来自官网或正规下载网站,切记不要到那类广告网站,会给你电脑安装很多垃圾软件,使系统变得非常慢。点进这个链接后,你就能看到MetaTrader4广受欢迎的软件,根据你手机的操作系

    2022年8月15日
    11
  • mac php开发集成环境,MAC OS X下php集成开发环境mamp

    mac php开发集成环境,MAC OS X下php集成开发环境mamp之前苦于mac上搭建本地服务器之艰辛,找寻好久都没找到一款类似windows上集成的本地服务器环境,诸如phpstudy,xampp,appserv,虽说xampp也有mac版,但不知为何不是Apache启动不了,这里小编为大家分享了MACOSX下php集成开发环境mamp教程,下面大家跟着学习啦小编一起来了解一下吧。MACOSX下php集成开发环境mamp教程打开【系统偏好设置】,选…

    2022年6月28日
    33
  • 如何理解极限的定义

    如何理解极限的定义极限是研究变量变化的过程,并通过变化的过程来把握变化的结果。一般来说一个函数某个点的结果是由函数确定了的,所以一个函数某个点的值一般就等于其极限。除非是提前,把那个点给挖走了,否则在那个变化过程中是没有什么办法能阻止变化的趋势的。但是也不能说极限就一定等于其函数值。 要理解好极限的定义,可以先从简单的,描述性的定义入手,然后再转到严格的数学定义上去。 描述性定义是这样的:当自变量x无

    2022年5月6日
    55
  • PotPlayer 高逼格无边框的本地播放器

    PotPlayer 高逼格无边框的本地播放器PotPlayer安装以及设置可以在官网下载安装包:http://potplayer.daum.net然后安装……运行……嗯,是的,PotPlayer的官方皮肤界面就是这么样貌平平,一点都不逼格。其实,如果你之前还用更早的版本,大概现在的默认界面已经可以说是貌美如花了(笑),下面我来教大家如何把播放器设置成无边框的。1右键→选项…→进入设置界面。(或者直接按F5)…

    2022年5月21日
    140
  • (亲测解决)每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档

    (亲测解决)每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档目录一、问题描述二、问题原因三、解决步骤3.1Office解决步骤3.2WPS解决步骤一、问题描述每次打开Excel(WPS、Office都会出现,当前版本是Office2016)文件都会出现两个窗口,一个是空白的sheet1,,另一个是自己的文档,让小编是在很烦,因为每次打开一个文件就相当于打开两个,还会让Excel打开速度变慢,在网上找了很多解决办法,卸载重装过…

    2022年10月10日
    4
  • C# FindWindowEx用法

    C# FindWindowEx用法2010-11-2809:51:18|  分类: 程序编程|字号 订阅 函数功能:该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。   函数原型:HWNDFindWindowEx(HWNDhwndParent,HWNDhwndChildAfter

    2022年5月31日
    261

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号