![]() |
eXeL@B —› Вопросы новичков —› Проблемы с GetLastError при поиске адреса ф-и в экспорте kernel |
Посл.ответ | Сообщение |
|
Создано: 16 марта 2007 14:26 · Личное сообщение · #1 У меня такая ситуация. Есть базово-независимый код, который загружается и не использует импорт. Адреса нужных фун-й получаю с помощью обработки таблицы экспорта кернел. После обработки экспорта при поиске адреса для фун-и GetLastError получаю адрес, который не является корректным. И вообще ведь код фун-и находится в ntdll. Использовать апи GetProcAddress не очень-то хочется. Какие могут быть варианты? ![]() |
|
Создано: 16 марта 2007 15:57 · Личное сообщение · #2 Проверять, экспортируется ли данная функция из этой длл, или это переходник. Если переходник - искать базу той длл, откуда экспортируется эта ф-ия и сканить экспорт там. Провереть переходник это или нет можно следующим образом (Вроде так, но могу и ошибаться, т.к. сам никогда не пробовал) если найденный адрес находится в пределах ExportTableRVA < FuncAddr <ExportTableRVA+ExportTableSize - то это переходник. Или ещё способ - у переходника в имени есть точка(2eh). www.wasm.ru/forum/viewtopic.php?id=12329 - почитай,посмотри исходники. ![]() |
|
Создано: 16 марта 2007 16:52 · Поправил: Ke Kwan · Личное сообщение · #3 |
|
Создано: 16 марта 2007 17:49 · Личное сообщение · #4 |
|
Создано: 16 марта 2007 17:55 · Личное сообщение · #5 |
|
Создано: 16 марта 2007 18:19 · Поправил: NetSpider · Личное сообщение · #6 |
![]() |
eXeL@B —› Вопросы новичков —› Проблемы с GetLastError при поиске адреса ф-и в экспорте kernel |