Estoy buscando una forma (en C++/Windows) de enumerar las funciones exportadas en un archivo DLL (y tal vez incluso métodos que no se exportan) utilizando dbgHelp.
¿Alguien sabe qué método puede hacerlo?
gracias :)Listado de las funciones exportadas de un archivo DLL
Respuesta
Hay here código para hacer esto. Lo he limpiado un poco y funcionó en el escenario que se muestra a continuación, recuperando nombres de funciones de Kernel32.Dll
.
#include "imagehlp.h"
void ListDLLFunctions(string sADllName, vector<string>& slListOfDllFunctions)
{
DWORD *dNameRVAs(0);
_IMAGE_EXPORT_DIRECTORY *ImageExportDirectory;
unsigned long cDirSize;
_LOADED_IMAGE LoadedImage;
string sName;
slListOfDllFunctions.clear();
if (MapAndLoad(sADllName.c_str(), NULL, &LoadedImage, TRUE, TRUE))
{
ImageExportDirectory = (_IMAGE_EXPORT_DIRECTORY*)
ImageDirectoryEntryToData(LoadedImage.MappedAddress,
false, IMAGE_DIRECTORY_ENTRY_EXPORT, &cDirSize);
if (ImageExportDirectory != NULL)
{
dNameRVAs = (DWORD *)ImageRvaToVa(LoadedImage.FileHeader,
LoadedImage.MappedAddress,
ImageExportDirectory->AddressOfNames, NULL);
for(size_t i = 0; i < ImageExportDirectory->NumberOfNames; i++)
{
sName = (char *)ImageRvaToVa(LoadedImage.FileHeader,
LoadedImage.MappedAddress,
dNameRVAs[i], NULL);
slListOfDllFunctions.push_back(sName);
}
}
UnMapAndLoad(&LoadedImage);
}
}
int main(int argc, char* argv[])
{
vector<string> names;
ListDLLFunctions("KERNEL32.DLL", names);
return 0;
}
El OP está pidiendo una solución basada en dbghelp, que incluiría símbolos no exportados ... – wj32
si está satisfecho con otras herramientas, entonces hay un número que enumera las funciones exportadas. uno es el dumpbin
de Microsoft. use la opción /exports
.
aplausos & HTH.,
La consulta se trata de usar dbgHelp Apis. – Chubsdad
- 1. ¿Cómo ver las funciones de DLL?
- 2. Cómo usar las clases de C++ exportadas por un dll en Delphi
- 3. Clases de listado en un archivo jar
- 4. Quiero saber qué funciones están disponibles desde un Win32.DLL
- 5. Unidad probando clases no exportadas en una DLL
- 6. funciones sobrecargadas en C++ DLL archivo DEF
- 7. ¿Listado de funciones php en la parte superior del archivo? (o, ¿cómo saltar rápidamente a las funciones php?)
- 8. las funciones de llamada desde un archivo DLL en C++ Delphi
- 9. Funciones de listado con indicador de depuración establecido en R
- 10. Ejecutando funciones .dll no expulsadas con python
- 11. ¿Existe un archivo .def equivalente en Linux para controlar nombres de funciones exportadas en una biblioteca compartida?
- 12. ¿Hay algún golpe de perfunción usando las funciones de DLL?
- 13. Listado de funciones C/C++ (Análisis de código en Unix)
- 14. Cómo enumerar las funciones exportadas en una biblioteca compartida en Ubuntu
- 15. archivo PHP listado de varias extensiones de archivo
- 16. listado todas las secciones interesantes de un tetraedro
- 17. Uso de funciones envueltas en SWIG desde Windows .dll
- 18. Asegure un archivo DLL con un archivo de licencia
- 19. Cómo ejecuto un archivo * .dll
- 20. Leer recursos de un archivo DLL
- 21. Descarga de un archivo dll en mef
- 22. Cargando dinámicamente un archivo DLL
- 23. ¿Las claves privadas exportadas en GPG aún están encriptadas?
- 24. ¿Cómo descompilo un archivo .dll?
- 25. Hay una manera de encontrar todas las funciones expuestas por un dll
- 26. Al compilar un archivo DLL, ¿el archivo LIB generado contiene el nombre de la DLL?
- 27. listado todas las imágenes en un directorio usando PHP
- 28. Uso de clases y funciones con plantilla en un objeto compartido/DLL
- 29. Cómo hago que NUnit ejecute las pruebas F # no exportadas por un módulo
- 30. ¿Cómo enfatizo partes de un listado?
posible duplicado de [API Win32 para enumerar funciones de exportación DLL?] (Http://stackoverflow.com/questions/1128150/win32-api-to-enumerate-dll-export-functions) – icecrime
Un depurador doesn No importa si una función se exporta o no. El ejemplo de código está aquí: http://msdn.microsoft.com/en-us/library/ms679318%28VS.85%29.aspx –
pero estoy viendo un caso en el que no tengo los PDB. ¿Me ayudará SymLoadModuleEx aquí? – Idov