Выполнение определённого кода в памяти. Access Violation

Тема в разделе "WASM.BEGINNERS", создана пользователем Arisu, 5 апр 2011.

  1. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    хочу написать небольшой загрузчик библиотек в удалённый процесс. пока-что тестирую на своём процессе, с заглушкой в место LoadLibrary )
    беда вот какая: создание треда по указателю на функцию - пашет.
    Если же брать код функции, копировать его в виртуальную память и пытаться запустить тред по указателю на эту память - то выскакивает акцес виолейшен и я не пойму по какой причине (нубас).

    К посту прикрепил файлик с исходником на Си. он минимальный и вроде там всё просто.

    Помогите пожалуйста разобратся: что я упустил ?

    (в исходнике нет вызова VirtualProtect с EXECUTE, но я это пробовал делать - не помогло )
     
  2. pr0mix

    pr0mix New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    107
    лови исправленный:

    link http://www.sendspace.com/file/nhlzlr
    psw Arisu__crt_s1

    добавленные/изменённые строки кода выделил, изучай. Рекомендую юзать отладчик =)
     
  3. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    спасибо. эти ошибки вроде понял, однако код всё равно крашится. теперь правда акцес виолейшен по адресу 0.

    то есть как и раньше: создание треда на функцию работает, а создание треда на память с кодом этой функции - нет. =\\

    на счёт отладчика - я не понял как поставить брейкпоинт на некий адрес в памяти, куда я копирую код функции.
     
  4. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Cкорее всего из-за position-dependent code.
     
  5. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    всё заработало, спасибо ))

    я просто тупил и запускал в дебаг режиме (там естественно не тот код был). в релизе всё ок.
     
  6. ASMatic

    ASMatic New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2010
    Сообщения:
    233
    запускаем ольку - аттачимся к таргет процессу, инжект = креш и она все расскажет.)
    *можно есчо int3 вбивать код -)