в таблице экспорта функции можно хранить по номерам, а можно по именам, а можно и так, и так
Экспортирование символов из .dll или .exe (из Windows-исолняемого модуля) идёт по точкам входа. каждая точка входа (referal она называется кажется) может иметь номер, и имя (возможно и одновременно и то, и то). Если точка входа имеет имя, её имя почти навреняка совпадает с С--шным именем функции или с С++-именем функции (замангленым уже). Тогда достаточно легко понять, где какая функция и можно попытаться её вызвать (отдельно надо знать набор параметров и соглашения о вызовах, ABI то есть, обычно он в заголовочном файле). Но если экспорт идёт по номерам, ты должен знать, за каким номером лежит какая функция. эта информация обычно находится в .def файле или в .lib файле. Если этой информации нет, то вызвать функцию практически невозможно.
Обсуждают сегодня