Смена imagebase налету?

Тема в разделе "WASM.WIN32", создана пользователем nrg, 9 мар 2005.

  1. nrg

    nrg New Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    5
    Допустим у меня есть PE exe, естб ли возможность без помощи линкера сменить imagebase в нём, т.е. чтоб потом все переменные и функции были доступны?



    Понятное дело, всё под NT based OS
     
  2. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    в нативном экзешнике? конечно, нет. как релокейшены хендлить будешь?
     
  3. ProgramMan

    ProgramMan New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2004
    Сообщения:
    263
    nrg, нельзя. Нуден пересчёт большенства адресных ссылок.
     
  4. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    nrg

    а ты попробуй.
     
  5. nrg

    nrg New Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    5
    А как бы все ссылки ещё поменять :х

    Как распознать в коде, что это является адресом.

    Есть идеи ?
     
  6. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia


    есть. Попоросить линкер сделать это, пересобрав EXE без флага FIXED.
     
  7. nrg

    nrg New Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    5
    Так. Уже ближе. Теперь подскажите, как мне поможет relocation table. :) ... Хотя я вроде допёр, но всёравно на всякий случай
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    nrg



    Есть. Поправить PE Header.





    Если есть эта директория (relocation), то загрузчик настроит адреса всех меток относительно нового адреса загрузки.
     
  9. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
  10. nrg

    nrg New Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    5
    Ага. Спасибо. Осталось только найти способ восстанавливать релоки после обработки файла пакером (они выгружают таблицу из памяти после обработки) или найти пакер, который не трогает их
     
  11. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    только найти способ восстанавливать релоки после обработки файла пакером



    Описано в первых упаковщиках.