Сейчас на форуме: vsv1, _MBK_, ut2004 (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Проблемы с GetLastError при поиске адреса ф-и в экспорте kernel
Посл.ответ Сообщение

Ранг: 39.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 марта 2007 14:26
· Личное сообщение · #1

У меня такая ситуация. Есть базово-независимый код, который загружается и не использует импорт. Адреса нужных фун-й получаю с помощью обработки таблицы экспорта кернел. После обработки экспорта при поиске адреса для фун-и GetLastError получаю адрес, который не является корректным.
И вообще ведь код фун-и находится в ntdll. Использовать апи GetProcAddress не очень-то хочется.
Какие могут быть варианты?



Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 16 марта 2007 15:57
· Личное сообщение · #2

Проверять, экспортируется ли данная функция из этой длл, или это переходник. Если переходник - искать базу той длл, откуда экспортируется эта ф-ия и сканить экспорт там. Провереть переходник это или нет можно следующим образом (Вроде так, но могу и ошибаться, т.к. сам никогда не пробовал) если найденный адрес находится в пределах ExportTableRVA < FuncAddr <ExportTableRVA+ExportTableSize - то это переходник. Или ещё способ - у переходника в имени есть точка(2eh).
www.wasm.ru/forum/viewtopic.php?id=12329 - почитай,посмотри исходники.



Ранг: 7.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 марта 2007 16:52 · Поправил: Ke Kwan
· Личное сообщение · #3

NetSpider
хм. если нужно только и всего, что получать значение Last Error, то лучше вытаскивать его из PEB процесса ;)

mov eax,[fs:$18]
mov eax,[eax+$34]



Ранг: 39.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 марта 2007 17:49
· Личное сообщение · #4

Ke Kwan

Да в принципе это и нужно. А будет ли это

mov eax,[fs:$18]
mov eax,[eax+$34]

работать под Win9X?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 16 марта 2007 17:55
· Личное сообщение · #5

NetSpider пишет:
работать под Win9X?


там другой пеб... если найдёшь похожее поле, то да

-----
[nice coder and reverser]




Ранг: 39.6 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 16 марта 2007 18:19 · Поправил: NetSpider
· Личное сообщение · #6

Большое спасибо всем. Нашел решение проблемы по ссылке от ASD. Буду делать через PEB.


 eXeL@B —› Вопросы новичков —› Проблемы с GetLastError при поиске адреса ф-и в экспорте kernel
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати