views:

32

answers:

2

I have a DLL that's compiled, and I don't have the source code for it anymore. The only thing I want from the DLL is the functions it provides, and how they are accessed, i.e. their signature.

How can I do this?

+1  A: 

You can extract the following:

  1. Metadata (all classes, methods, parameters, etc.) in case of a .NET Assembly. Use Reflector and ILDasm for this purpose.
  2. Exportable functions in case of a native DLL. Use the dumpbin utility. There is also a professional tool called IDA. It's very powerful and is meant for iterative reverse-engineering.
Kerido
It's not a .NET assembly.
Malfist
I've been using IDA to disassemble it, but I don't understand how to get anything but method names from it. I see the assembly, but the assembly doesn't list the parameters it expects for the function.
Malfist
If the DLL is not built with some hacker techniques, IDA will calculate the stack size of each function and separate local variables from parameters. Further, depending on parameter usage, IDA can determine the type of a parameter, and sometimes even give it comprehensive names. This happens, for example, if your function passes the parameter to a known Win32 API function. However, in a general case, you'll need time and patience to completely reverse-engineer the code.
Kerido
Oh, I forgot. If you have the PDB file, things are a lot better. IDA understands PDB and automatically substitutes generic function and parameter names with the debug symbols.
Kerido
A: 

google "get functions export from dll" pick any. any disassembler can do it if you have one

Andrey