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

Discussion in 'WASM.BEGINNERS' started by Codegrammer, Apr 13, 2010.

  1. Codegrammer

    Codegrammer New Member

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

    qwe8013 New Member

    Blog Posts:
    0
    Joined:
    May 28, 2009
    Messages:
    198
    А в этом файле есть таблица поправок?
    Если есть, то Win7 может грузить его по другому адресу.
     
  3. GoldFinch

    GoldFinch New Member

    Blog Posts:
    0
    Joined:
    Mar 29, 2008
    Messages:
    1,775
    Codegrammer
    удали из .exe директорию релоков
     
  4. Codegrammer

    Codegrammer New Member

    Blog Posts:
    0
    Joined:
    Mar 16, 2010
    Messages:
    37
    Да. Спасибо большое. Дело было в этом.
     
  5. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    Это называется address space layout randomization. Не основная его часть, но как одна из фич. Системные модули всегда грузятся по разным адресам
     
  6. Bazhan

    Bazhan Андрей

    Blog Posts:
    0
    Joined:
    Jan 8, 2008
    Messages:
    71
    Location:
    Украина
    нет необходимости ничего удалять, достаточно выставить флаг IMAGE_FILE_RELOCS_STRIPPED в IMAGE_FILE_HEADER->characteristics
     
  7. l_inc

    l_inc New Member

    Blog Posts:
    0
    Joined:
    Sep 29, 2005
    Messages:
    2,566
    Bazhan
    Есть. При выставленном флаге образ всё равно может грузиться не по дефолтному базовому адресу.
    Пруфлинк: http://www.wasm.ru/forum/viewtopic.php?id=34349
     
  8. Sol_Ksacap

    Sol_Ksacap Миша

    Blog Posts:
    0
    Joined:
    Mar 6, 2008
    Messages:
    623
    На самом деле желанность наличия\отсутствия директории релоков может зависеть от задачи. Вот здесь были такие варианты:

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

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