myWallJSON
myWallJSON

Reputation: 9502

How to get list of functions inside a DLL (managed and unmanaged)?

So I play around a DLL (UnityEditor.dll) I wanna to get a list of all functions inside of this managed DLL which are unmanaged (dll is probably composed from a native C++ (with statically compiled libaries if such were used) core and managed C++ wrapper all wrapped into one dll.) I want to get a list of all unmanaged functions inside of that Dll to for example create my own managed\unmanaged wrapper?

Upvotes: 12

Views: 22052

Answers (3)

Ben Voigt
Ben Voigt

Reputation: 283634

DLLs don't contain "functions". They contain code and entrypoints. It's not possible to tell from optimized code where transitions between functions occur unless you have a debug database.

Upvotes: 1

Viktor Latypov
Viktor Latypov

Reputation: 14467

Open the .dll file and look for the EXPORT section of this PE file using the binary PE/COFF specs available from Microsoft.

But that's an overkill, I think. Your question should be a concrete want. What exactly do you want to wrap and what do you have ? Only the binaries and no source/headers ?

Upvotes: 2

hmjd
hmjd

Reputation: 121971

The dumpbin.exe utility shipped with Visual Studio can be used to display a list of exports. For example:

dumpbin.exe /EXPORTS C:\WINDOWS\System32\Kernel32.dll

Example output:

Microsoft (R) COFF/PE Dumper Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file C:\Windows\System32\kernel32.dll

File Type: DLL

  Section contains the following exports for KERNEL32.dll

    00000000 characteristics
    4E20FBA0 time date stamp Sat Jul 16 03:46:56 2011
        0.00 version
           1 ordinal base
        1390 number of functions
        1390 number of names

    ordinal hint RVA      name

          1    0          AcquireSRWLockExclusive (forwarded to NTDLL.RtlAcquireSRWLockExclusive)
          2    1          AcquireSRWLockShared (forwarded to NTDLL.RtlAcquireSRWLockShared)
          3    2 00004440 ActivateActCtx
          4    3 00066B80 AddAtomA
          5    4 00066B20 AddAtomW
          6    5 0006ADF0 AddConsoleAliasA
          7    6 0006AE60 AddConsoleAliasW

Upvotes: 18

Related Questions