Debug loader

Discussion in 'WASM.BEGINNERS' started by RanEr, May 10, 2006.

  1. RanEr

    RanEr New Member

    Blog Posts:
    0
    Joined:
    May 10, 2006
    Messages:
    2
    Location:
    Russia
    Нужен пример кода сабжа на Delphi или Ассме.

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

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

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

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

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine


    Не понял.





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





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

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

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine


    А это как?



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

    Asterix New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2003
    Messages:
    3,576




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

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

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    Это что-то новое в 2003 Server?
     
  6. Asterix

    Asterix New Member

    Blog Posts:
    0
    Joined:
    Feb 25, 2003
    Messages:
    3,576
    начиная с XP поддерживается такая функция,

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

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

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    Что-то гугл перестал находить доки в msdn. Только через поиск в самом msdn получилось найти описание.
     
  8. IceStudent

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    Quantum

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

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

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    IceStudent



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

    IceStudent Active Member

    Blog Posts:
    0
    Joined:
    Oct 2, 2003
    Messages:
    4,300
    Location:
    Ukraine
    /off





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

    RanEr New Member

    Blog Posts:
    0
    Joined:
    May 10, 2006
    Messages:
    2
    Location:
    Russia


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





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





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



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