如何知道dll文件是32位还是64位

来源:互联网 发布:ne80e端口物理层down 编辑:程序博客网 时间:2024/05/22 14:15

如何知道dll文件是32位还是64位

dll文件使用的PE(Portable Excutable)格式,PE文件格式封装了Windows操作系统加载可执行程序代码时所必需的一些信

息,PE格式详细信息可查看MSDN article on the PE File Format。其中

包括IMAGE_FILE_HEADER结构,该结构包含了

具有以下值的机器信息:

  • IMAGE_FILE_MACHINE_I386 (0x014c)
  • IMAGE_FILE_MACHINE_IA64 (0x0200)
  • IMAGE_FILE_MACHINE_AMD64 (0x8664)

该值在dll文件的固定偏移位置,通过查询该值可获得dll文件是32位还是 24位。

我们也可以通过一些工具来进行查看:

  1. dumpbin

    dumpbin是visual studio的一个工具,打开visual studio命令提示,输入dumpbin /headers xxx.dll,使 用/headers选项。

      dumpbin /headers my64bit.dll  PE signature found File Type: DLL FILE HEADER VALUES        8664 machine (x64)           7 number of sections    57CFDACF time date stamp Wed Sep 07 17:15:59 2016           0 file pointer to symbol table           0 number of symbols          F0 size of optional header        2022 characteristics               Executable               Application can handle large (>2GB) addresses               DLL

    从输出中可以看出,包含0x8664,是x64的。

  2. file 命令

    如果系统中安装了mingw或者cygwin,就可以使用file命令

     file my64bit.dll my64bit.dll: PE32+ executable (DLL) (GUI) x86-64, for MS   Windows

    从输出中也可以看出是x64的。

0 0
原创粉丝点击