Я работаю над собственными привязками вызовов для виртуальной машины, и одной из функций является возможность поиска стандартных функций libc по имени во время выполнения.В Windows это становится немного хлопотно, потому что мне нужно получить дескриптор модуля msvcrt, который в данный момент загружен в процессе.Обычно это msvcrt.dll, но это могут быть и другие варианты (msvcr100.dll и т. Д.), И вызов GetModuleHandle ("msvcrt") может завершиться ошибкой, если используется вариант с другим именем.
То, что я хотел бы сделать, это обратный поиск, взять указатель на функцию из libc (который у меня есть в изобилии) и получить дескриптор модуля, который ее предоставляет.По сути, что-то вроде этого:
HANDLE hlibc = ReverseGetModuleHandle(fprintf); // Any func from libc should do the trick
void *vfunc = GetProcAddress(hlibc);
Есть ли такая вещь в win32 API, не погружаясь в ручную прогулку по дескрипторам процесса и таблицам символов?И наоборот, если я слишком обдумываю проблему, есть ли более простой способ поиска функции libc по имени в win32?