Загрузка не по ImageBase

Тема в разделе "WASM.BEGINNERS", создана пользователем Codegrammer, 13 апр 2010.

  1. Codegrammer

    Codegrammer New Member

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    37
    Помогите разобраться. Не могу понять, что происходит. Беру обычный калькулятор (calc.exe из Windows7). В бинарнике указан ImageBase = 01000000h (тоже и LordPE). Когда гружу его через ollydbg он, грузится не по этому адресу. (Но ведь это exe-шник. Весь простор ВАП открыт) Кроме того, сам олли говорит, что ImageBase = 00c70000h. Кто-нибудь с этим сталкивался? Мне нужно знать, как это обойти. А именно, нужно ТОЧНО знать, какой ImageBase будет использоваться при загрузке.
     
  2. qwe8013

    qwe8013 New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    198
    А в этом файле есть таблица поправок?
    Если есть, то Win7 может грузить его по другому адресу.
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Codegrammer
    удали из .exe директорию релоков
     
  4. Codegrammer

    Codegrammer New Member

    Публикаций:
    0
    Регистрация:
    16 мар 2010
    Сообщения:
    37
    Да. Спасибо большое. Дело было в этом.
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Это называется address space layout randomization. Не основная его часть, но как одна из фич. Системные модули всегда грузятся по разным адресам
     
  6. Bazhan

    Bazhan Андрей

    Публикаций:
    0
    Регистрация:
    8 янв 2008
    Сообщения:
    71
    Адрес:
    Украина
    нет необходимости ничего удалять, достаточно выставить флаг IMAGE_FILE_RELOCS_STRIPPED в IMAGE_FILE_HEADER->characteristics
     
  7. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    Bazhan
    Есть. При выставленном флаге образ всё равно может грузиться не по дефолтному базовому адресу.
    Пруфлинк: http://www.wasm.ru/forum/viewtopic.php?id=34349
     
  8. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    На самом деле желанность наличия\отсутствия директории релоков может зависеть от задачи. Вот здесь были такие варианты:

    – IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
    ASLR для модуля мягко отключена (флаг может быть передавлен общесистемным параметром 'MoveImages').

    – IMAGE_FILE_RELOCS_STRIPPED
    ASLR для модуля жёстко отключена (флаг не может быть передавлен, но при кофликте адресов в момент проецирования и наличии директории релоков модуль может быть релоцирован).