Сейчас на форуме: UniSoft, zds, ManHunter, rmn (+5 невидимых)

 eXeL@B —› Программирование —› Процесс загрузки процесса в адресное пространство
Посл.ответ Сообщение

Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 марта 2012 21:51
· Личное сообщение · #1

Вечер добрый всем форумчанам!
Может ли кто-то рассказать (или, ткнуть ссылку) как именно происходит процесс расположения сегментов исполняемого файла в виртуальной памяти в процессе загрузки? Может ли один и тот же сегмент в разных стартах загружен по другому виртуальному адресу? По ТОС помню, что для некоторых старых систем производилась "настройка адресов" перед стартом процесса, но мне казалось что это уже не нужно в современных архитектурах.
Другими словами: есть исполняемый файл. Всегда ли он будет одинаково загружен в адресное пространство? Т.е. будет ли располагаться код всегда по тем же адресам?

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

Система QNX, но вопрос заинтересовал и "в общем".
Кто что знает? Был бы очень благодарен.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 28 марта 2012 22:20
· Личное сообщение · #2

В Винде если релоки есть, то может быть загружен куда угодно(7-ка любит так баловаться), если нет то только по ImageBase. как в QNX хз.



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 28 марта 2012 23:27
· Личное сообщение · #3

> но то, что находится по тому адресу в сочетании со значениями регистров - мягко говоря невозможно
Простите коллеги, с устатку вкралась неточность: тут корки нет, несоответствие - строго по бурчанию дампера со ссылкой на вызов конкретного инлайна.


 eXeL@B —› Программирование —› Процесс загрузки процесса в адресное пространство
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати