Получение таблицы экспорта библиотеки наборов API Windows или самого файла

#c #winapi #dll #detours

#c #winapi #dll #объезды

Вопрос:

Я хочу знать все функции, которые содержит данная библиотека наборов API.

На самом деле, было бы еще лучше, если бы я мог просто получить отдельный файл для данной библиотеки DLL набора API, например api-ms-win-core-file-l1-2-0.dll например. Возможно ли это?

Что касается первого, я попытался перечислить функции в C , используя библиотеку обходных путей Microsoft.

Я использовал DetourEnumerateExports для загрузки набора api и ExportCallback для печати каждого имени функции.

 static BOOL CALLBACK ExportCallback(_In_opt_ PVOID pContext,  _In_ ULONG nOrdinal,  _In_opt_ LPCSTR pszSymbol,  _In_opt_ PVOID pbTarget) {  (void)pContext;  (void)pbTarget;  (void)pszSymbol;   ExportContext* pec = (ExportContext*)pContext;   if (nOrdinal == 1) {  pec-gt;fHasOrdinal1 = TRUE;  }  pec-gt;nExports  ;   std::cout lt;lt; pszSymbol lt;lt; "n";   return TRUE; }  HMODULE lib = LoadLibraryExW(L"api-ms-win-core-file-l1-2-0.dll", NULL, DONT_RESOLVE_DLL_REFERENCES); BOOL validFlag = FALSE;  DetourEnumerateExports(lib, amp;validFlag, ExportCallback);  

Функции, которые печатаются, кажутся неправильными. Существует множество функций, которые кажутся неуместными или не должны входить в набор API. Я думаю, что мой код неверен.

Есть ли другой способ сделать это?

Комментарии:

1. ты бросаешь kernelbase.dll экспорт. и что с того ? отдельный файл для данной библиотеки DLL набора API, например api-ms-win-core-file-l1-2-0.dll например. Возможно ли это? — это невозможно. файл не существует

2. Библиотеки DLL набора API не содержат кода, на данный момент они бессмысленны.