![]() |
eXeL@B —› Вопросы новичков —› Добавить функцию в IAT |
Посл.ответ | Сообщение |
|
Создано: 11 апреля 2017 17:03 · Поправил: r_one_ · Личное сообщение · #1 Здравствуйте. Есть dll в которую нужно добавить импорт функции, при добавлении фукция появляется в таблице импорта, но при указании её адреса call dword ptr [MyFunc], адреса нет, пробовал добавить CFF Explorer, IIDKing результат тот же самый, функция есть в таблице импорта, а адреса нет, но при просмотре в отладчике есть записанный адрес нужной мне функции dd xxxxxxx в секции с новым импортом. В чем может быть проблемма, или я что-то делаю не так ? ![]() |
|
Создано: 11 апреля 2017 18:18 · Поправил: daFix · Личное сообщение · #2 |
|
Создано: 11 апреля 2017 18:49 · Поправил: r_one_ · Личное сообщение · #3 |
|
Создано: 11 апреля 2017 19:02 · Личное сообщение · #4 r_one_ В PE формате предусмотрен механизм который позволяет подгружать исполняемые файлы по разным адресам(ImageBase), для этого используется таблица релокаций(RelocationTable). Грубо говоря, это просто таблица адресов которые надо пересчитывать под новую базу. Вам надо добавить в таблицу релокаций свой адрес "MyFunc" в команде call dword ptr [MyFunc]. Иначе, при подгрузке библиотеки по другому адресу, указатель будет смотреть в левый адрес ----- Research For Food ![]() |
|
Создано: 11 апреля 2017 19:05 · Поправил: r_one_ · Личное сообщение · #5 |
|
Создано: 11 апреля 2017 20:30 · Личное сообщение · #6 |
![]() |
eXeL@B —› Вопросы новичков —› Добавить функцию в IAT |