День добрый всем. Проблема в следующем - при добавлении своей либы в импорт уже готового экзешника, если есть свободное место для копирования таблицы в этой секции, все работает замечательно. Как только не находим места в этой секции и копируем в другую (дата, ресурсы) вылетает ACCESS_VIOLATION. В чем может быть дело ? Атрибуты секций менял, все адреса правильно прописываются (RVA ведь указываются от общей базы, а не от начала секции ?), боунд импорт затираем... Куда копать ?
По звёздам тут не многие гадать умеют. Либо посмотри, как это PeTools делает, либо выложи какой-нибудь файлик, с добавленной либой, по твоему способу
ACCESS_VIOLATION вылетает по адресу 42000 - там как раз лежит RVA на IAT первой либы... Есть какие мысли ? Помогите, пожалуйста...
кхммм.... так размер вроде не должен меняться... в нули же пишу... ща глянем че-как.... спасибо за подсказку !
n0name поправил... теперь даже таблицу импорта PEiD показывает, но только почему-то не полностью... нет там моей либы, только стандартные... и программа так и падает, как падала. Может еще что-то углядели? Подскажите =)
на 1C9B0 - там где новая таблица кончается... еще поправил размер секции куда дописывал названия функции и либы...
Директорию IAT сделай как была (теже RVA и SIZE), а у секции, куда у тебя смотрит IAT новой либы поставь флаг WRITABLE
Стоит там этот флаг. Не помогает. Флаги стоят 0xC0000040. А на секции со старой таблицей флаги стоят 0x40000040.
Переношу ручками таблицу в том же файле в туже секцию .rsrc. Меняю адрес в заголовке на новый. Все. Работает... Ни размеры, ни флаги ничего больше не меняю... Замучался уже ковырять, подскажите, Гуру, пожалуйста =)