[Home] [Kuri] [Sysad] [Internet?] [Blog] [Java] [Windows] [Download] [Profile] [Flash] [+]

オブジェクトの情報を得る

DLL がどのような関数を export しているか、EXE の情報を見たい、など の要求が、しばしばあるように思います。
Borland C++ Compiler や Microsoft Visual C++ のツールを使えば、各種情報を見ることが可能です。

Borland C++ Compiler の場合

tdump コマンドを使います。
例えば、usukey.exe が import している DLL と関数を知りたい場合、以下のように tdump を実行します。

> tdump -em usukey.exe
Turbo Dump  Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation
               Display of File USUKEY.EXE

IMPORT:     ADVAPI32.DLL='AdjustTokenPrivileges'
IMPORT:     ADVAPI32.DLL='LookupPrivilegeValueA'
IMPORT:     ADVAPI32.DLL='OpenProcessToken'
IMPORT:     ADVAPI32.DLL='RegCloseKey'
IMPORT:     ADVAPI32.DLL='RegCreateKeyExA'
IMPORT:     ADVAPI32.DLL='RegOpenKeyExA'
IMPORT:     ADVAPI32.DLL='RegQueryValueExA'
IMPORT:     ADVAPI32.DLL='RegSetValueExA'
...中略
IMPORT:        GDI32.DLL='CreateSolidBrush'
IMPORT:      SHELL32.DLL='Shell_NotifyIconA'
IMPORT:       USER32.DLL='AppendMenuA'
IMPORT:       USER32.DLL='CheckDlgButton'
IMPORT:       USER32.DLL='CreateDialogParamA'
IMPORT:       USER32.DLL='CreatePopupMenu'
IMPORT:       USER32.DLL='CreateWindowExA'
IMPORT:       USER32.DLL='DefWindowProcA'
IMPORT:       USER32.DLL='DestroyMenu'
IMPORT:       USER32.DLL='DestroyWindow'
...後略

また、wininet.dll が export している関数名を知りたい場合は、以下の ように tdump を実行します。

> tdump -ee c:\winnt\system32\wininet.dll
Turbo Dump  Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation
           Display of File C:\WINNT\SYSTEM32\WININET.DLL

EXPORT ord:0115='CommitUrlCacheEntryA'
EXPORT ord:0116='CommitUrlCacheEntryW'
EXPORT ord:0117='CreateUrlCacheContainerA'
EXPORT ord:0118='CreateUrlCacheContainerW'
EXPORT ord:0119='CreateUrlCacheEntryA'
EXPORT ord:0120='CreateUrlCacheEntryW'
EXPORT ord:0121='CreateUrlCacheGroup'
...後略

tdump/? を実行すれば、ヘルプ一覧が表示されます。

MS Visual C++ の場合

dumpbin コマンドを使います。
前述と同様、usukey.exe が import している DLL と関数を知りたい場合、以下のように dumpbin を実行します。

> dumpbin/imports usukey.exe
Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


Dump of file usukey.exe

File Type: EXECUTABLE IMAGE

  Section contains the following imports:

    ADVAPI32.DLL
                410088 Import Address Table
                410064 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                   0  AdjustTokenPrivileges
                   0  LookupPrivilegeValueA
                   0  OpenProcessToken
                   0  RegCloseKey
                   0  RegCreateKeyExA
                   0  RegOpenKeyExA
                   0  RegQueryValueExA
                   0  RegSetValueExA

    KERNEL32.DLL
                410154 Import Address Table
                4100AC Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                   0  CloseHandle
                   0  CreateFileA
                   0  ExitProcess
...中略

    SHELL32.DLL
                410204 Import Address Table
                4101FC Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                   0  Shell_NotifyIconA

    USER32.DLL
                410288 Import Address Table
                41020C Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                   0  AppendMenuA
                   0  CheckDlgButton
                   0  CreateDialogParamA
...中略

  Summary

        3000 .data
        1000 .edata
        1000 .idata
        1000 .rdata
        1000 .reloc
        1000 .rsrc
        A000 .text
        1000 .tls

また、前述と同様に wininet.dll が export している関数名を知りたい 場合は、以下のように dumpbin を実行します。

> dumpbin/exports c:\winnt\system32\wininet.dll
Microsoft (R) COFF Binary File Dumper Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.


Dump of file c:\WINNT\system32\wininet.dll

File Type: DLL

  Section contains the following exports for WININET.dll

           0 characteristics
    393D5D75 time date stamp Wed Jun 07 05:22:13 2000
        0.00 version
         101 ordinal base
         218 number of functions
         208 number of names

    ordinal hint RVA      name

        115    0 0000BEF5 CommitUrlCacheEntryA
        116    1 000527EC CommitUrlCacheEntryW
        117    2 00027F23 CreateUrlCacheContainerA
        118    3 0005371C CreateUrlCacheContainerW
...中略

  Summary

        3000 .data
        4000 .reloc
        B000 .rsrc
       64000 .text

こちらも dumpbin/? を実行すれば、ヘルプ一覧が表示されます。

余談

ちなみに、x86 版 WindowsCE の EXE や DLL などの情報も見られます。
同じフォーマット(COFF)だからだと思われます。

Powered by Apache PostgreSQL Usupi Logo Kuri Logo
[Home] [Kuri] [Sysad] [Internet?] [Blog] [Java] [Windows] [Download] [Profile] [Flash] [-]
usu@usupi.org Last modified : Wed Jul 25 03:51:17 2001