Debug loader

Тема в разделе "WASM.BEGINNERS", создана пользователем RanEr, 10 май 2006.

  1. RanEr

    RanEr New Member

    Публикаций:
    0
    Регистрация:
    10 май 2006
    Сообщения:
    2
    Адрес:
    Russia
    Нужен пример кода сабжа на Delphi или Ассме.

    Суть: нужно сделать лоадер для патча в динамически выделяемой протектором памяти.

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

    Использование CreateProcess тут не подходит, т.к. из него получается доступ только к сегменту памяти основного процесса.

    Может где готовый пример есть?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine


    Не понял.





    А если их будет несколько?





    Когда? Ведь сразу после выделения памяти там ничего не будет.
     
  3. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine


    А это как?



    Может проще обойтись без отладочного АПИ? Запускаем процесс, цепляем к нему удалённый тред, который перехватывает VirtualAlloc и т.д. В протекторе вообще может быть защита от отладки.
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576




    наверно с помощью DebugActiveProcessStop
     
  5. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Это что-то новое в 2003 Server?
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    начиная с XP поддерживается такая функция,

    в HideDebugger как раз юзается для Detach'а OllyDbg
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Что-то гугл перестал находить доки в msdn. Только через поиск в самом msdn получилось найти описание.
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Quantum

    Google вроде, вот и сама функция.
     
  9. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    IceStudent



    У меня не пашет. 920 результатов и ни одного мсдн-овского. Читал, что этот гугл настраивается под каждого юзера, в кукисах хранит что-то вроде предпочтений каждого пользователя. С некоторых пор из моих предпочтений почему-то исчез msdn. Зато постоянно находятся ссылки на восточные (китайские или японские) форумы. Не иначе как саботаж, хотя я периодически стираю кукисы в эксплорере :) А саму функцию я нашёл через поисковик, который на msdn.
     
  10. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    /off





    Настраивается, если учётную запись завести. Иначе - просто ближайший сервер (у меня, например, google.com.ua по умолчанию, хотя принудительно можно и на другие заходить). Попробуй google.ru.
     
  11. RanEr

    RanEr New Member

    Публикаций:
    0
    Регистрация:
    10 май 2006
    Сообщения:
    2
    Адрес:
    Russia


    CreateProcess возвращает хэндл процесса, в котором Readprocessmemory не видит этого динамически выделенного протектором (Аcпром) адреса. Не доверяя своим возможностям перепробовал также все возможные генераторы лодырей - результат тот же.





    Для Аспра - это давно известно - на втором срабатывании ;)





    В цикле периодически делать suspendthread, далее поиск сигнатуры, не нашли - resumethread и т.д.



    Хотелось бы не обсуждения, как настроить гугл, а ответов по существу.