Здравствуйте! Столкнулся с проблемой при анализе файла формата PE. Речь идет о директории импорта. Я не могу понять, как найти адрес(RVA) каждой dll. И еще вопрос. В _IMAGE_EXPORT_DIRECTORY есть поле Base, которое играет роль начального значения при индексировании. Его надо отнимать от каждого ординала. Так вот, ординал то WORD, а Base - DWORD. Зачем это сделано?
Мне необходимо найти, по какому адресу будет грузиться dll в память моего процесса. Куда грузятся функциии из каждой dll можно понять посмотрев FirstThunk. Если не понятен мой вопрос, есть программа PE-Explorer, там при входе в импорт у dll есть RVA. Он мне и нужен.
Это не тот RVA, скорее всего. RVA длл при загрузке в память подставляется загрузчиком, потому что заранее знать какие адреса будут свободны и куда загрузчик засунет длл, нельзя. Единственный выход - после запуска программы все найти. А то, что показывает PE-Explorer либо RVA директории импорта, либо RVA имени длл, но никак не самой длл.
/off сорри что не по теме,но вроде здесь про PE файлы, а я как раз утилу разрабатываю утилу по таким филям, просьба по глядеть на текущий исходник и сказать увечья в коде! 2061544480__peview.cpp
каллеги! мож я не туда... в двух словах задачка такова: есть .exe, к нему .dll, который фик знает куда грузица. Вопрос: как перебилдить .exe, чтоб избавица от .dll? <font color="#800000]Модератор: Ну сам же догадался, что не туда, зачем писать? Заводи новую тему и там спрашивай.</font><!--color-->