Перенос таблицы импорта в другую секцию.

Тема в разделе "WASM.RESEARCH", создана пользователем vobbs, 16 дек 2007.

  1. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    День добрый всем.

    Проблема в следующем - при добавлении своей либы в импорт уже готового экзешника, если есть свободное место для копирования таблицы в этой секции, все работает замечательно. Как только не находим места в этой секции и копируем в другую (дата, ресурсы) вылетает ACCESS_VIOLATION.

    В чем может быть дело ?

    Атрибуты секций менял, все адреса правильно прописываются (RVA ведь указываются от общей базы, а не от начала секции ?), боунд импорт затираем...

    Куда копать ?
     
  2. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    По звёздам тут не многие гадать умеют.
    Либо посмотри, как это PeTools делает, либо выложи какой-нибудь файлик, с добавленной либой, по твоему способу
     
  3. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    а директория IAT у тебя куда смотрит?
     
  4. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    Извините, был напуган =)

    В приложении три файла - рабочий, кривой и сама либа.
     
  5. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    IAT в TimeDataStamp забито. Для моей либы. Для стандартных - в старую секцию соответственно.
     
  6. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    ACCESS_VIOLATION вылетает по адресу 42000 - там как раз лежит RVA на IAT первой либы...

    Есть какие мысли ? Помогите, пожалуйста...
     
  7. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ты не подправил размер секции куда пишешь.
    макс адрес 1C960, а в import'e прописан iat - 1C964
     
  8. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    кхммм.... так размер вроде не должен меняться... в нули же пишу...
    ща глянем че-как.... спасибо за подсказку !
     
  9. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    n0name
    поправил... теперь даже таблицу импорта PEiD показывает, но только почему-то не полностью... нет там моей либы, только стандартные... и программа так и падает, как падала.

    Может еще что-то углядели? Подскажите =)
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ты VirtSize на сколько поправил?
     
  11. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    на 1C9B0 - там где новая таблица кончается...

    еще поправил размер секции куда дописывал названия функции и либы...
     
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    сделай 1CA00 на всякий. чтобы VirtSize совпадал с RawSize.
     
  13. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    поправил, результат прежний...
    Будем думать дальше.
     
  14. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    неправильно прописаны начало и размер таблицы импорта в directories ?
     
  15. dermatolog

    dermatolog Member

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    406
    Адрес:
    Екатеринбург
    Директорию IAT сделай как была (теже RVA и SIZE), а у секции, куда у тебя смотрит IAT новой либы поставь флаг WRITABLE
     
  16. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    Правильно. И начало, и размер.
     
  17. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    Стоит там этот флаг. Не помогает. Флаги стоят 0xC0000040.

    А на секции со старой таблицей флаги стоят 0x40000040.
     
  18. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    Переношу ручками таблицу в том же файле в туже секцию .rsrc. Меняю адрес в заголовке на новый. Все. Работает... Ни размеры, ни флаги ничего больше не меняю...

    Замучался уже ковырять, подскажите, Гуру, пожалуйста =)
     
  19. vobbs

    vobbs New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    20
    Проблема решена. Всем спасибо за сочувствие =)