Вопрос по статье memfile

Тема в разделе "WASM.BEGINNERS", создана пользователем Gonzzik, 26 июл 2007.

  1. Gonzzik

    Gonzzik New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    61
    Просматривая пример FreeMan'a
    http://www.wasm.ru/article.php?article=memfile
    не могу понять, зачем он использует стаб(базонезависимый), веть можно и без него разложить в памяти весь РЕ-файл и прыгнуть на его ЕР. Я ошибаюсь?
     
  2. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    Gonzzik
    Релоки есть дааалеко не везде.
     
  3. Gonzzik

    Gonzzik New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    61
    Пречем тут релоки?
    Я мыслю так: Выделить память, разложить в ней все секции, востановить ипорт, и передать управление на точку входа.
    а Фримен делает все эти операции в стабе, который скаопировал в выделеную память вместе с файлом
     
  4. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    Gonzzik
    У нас загружен свой собственный файл, и мы его выгружаем. Если мы выгрузим свой файл, то вса равно надо выполнять код загрузки второго файла. Код загрузчика переносим в отдельное место. Чтобы его выполнить нужен базонезависимый стиль кода.
     
  5. Gonzzik

    Gonzzik New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    61
    так а зачем его выгружать, зпутить то что нам надо а потом уж выгрузить.. или вообще продолжать работать, а?
     
  6. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    Gonzzik
    Ну дык дело в том, что большинство EXE грузяться по одному и тому же базовому адресу. И новый надо загрузить скорее всего по тому адресу по которому находиться текущий EXE. Если по другой базе, то нужны релоки, которых почти нигде нет. Т.о. мы выгружаем старый и загружаем на его место новый.
     
  7. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    Gonzzik попробуй это реализовать этот вопрос отпадёт сам по себе
     
  8. Gonzzik

    Gonzzik New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    61
    ну мне надо длл запустить, так что релоки всеравно парсить придется