загрузчик РЕ файлов

Тема в разделе "WASM.WIN32", создана пользователем XshStasX, 1 июл 2011.

  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Такой вопрос:
    Изменяет ли сам код загрузчик в РЕ файле при его загрузке?
    Или только таблицы импорта/експорта ?

    Сталкивался просто с броблемой что когда например взять Kernel32 и код который у нее в EntryPoint стоит перезаписать на свой то часть инструкций после загрузкии ее в память изменяеться.

    А хочу сделать вот в своей программе проверку(через сравнение с оригинальными длл на диске) на то не перехвачены ли ее функции, и если что востанавливать их.
    А так как загрузчик немного модифицирует это данные то мне это немного будет мешать..
     
  2. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Вероятно, речь идет о релокациях? Например, в инструкциях типа 'mov reg, [disp]' меняется disp, если образ был перемещен.
     
  3. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Да именно, я понимаю что надо смотреть РЕ формат, но может ты сможешь подсказать где храниться список адресов для замены ?
     
  4. Jupiter

    Jupiter Jupiter

    Публикаций:
    0
    Регистрация:
    12 авг 2004
    Сообщения:
    532
    Адрес:
    Russia
    Начни с изучения спецификации PE COFF, которую можно свободно скачать в первоисточнике (Microsoft).
    Иначе ты так и будешь переспрашивать, несмотря на то, что тебе УЖЕ ответили!
    Релоки, релокации, relocs, relocations.
     
  5. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    XshStasX
    В двух словах -- в директории данных (DataDirectory), это такая маленькая база данных исполняемого файла. Она описывает RVA и размеры жизненноважных данных исполняемого. В том числе -- таблицу релокаций. Сам формат релокаций довольно простой -- они описывают все смещения, которые должны быть исправлены с грануляцией в страницу. Т.е. сначала идет информация о релокациях на первой странице исполняемого, затем на второй и т.д. За подробностями можно сходить в документ, предложенный Jupiter'ом или почитать это: http://msdn.microsoft.com/en-us/magazine/cc301805.aspx В конце статьи есть ссылка на более базовый (и менее точный) документ, в котором все разжевано до мелочей.
     
  6. qqqqqq

    qqqqqq New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2011
    Сообщения:
    14
    Фиксапы :)))))))