Автоматизация в x64dbg (повторный бряк на секцию)

Тема в разделе "WASM.BEGINNERS", создана пользователем galenkane, 22 янв 2021.

  1. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    Нужно закодить простой плагин для автоматизации

    Цель: находить места выхода из виртуальной машины x86_x64 (пример code virtualizer от oreans.com)

    Алгоритм такой

    - найти все инструкции pushfq в .exe (в dll не нужны по большей части)
    - поставить на них точки останова
    - Run to user code
    - прыгнуть на точку останова (pushfq) (мы внутри ВМ)
    - снять все точки останова
    - поставить бряк на .text секцию (где лежит весь незащищенный код)
    - прыгнуть к незащищенному коду, ИССЛЕДОВАТЬ (мы снаружи ВМ) (после прыжка, бряк снимается)
    - врубить заново все точки останова
    - повторить действия.

    Кодил плагин, но проблема на повторной установке бряка на секцию, просто падает.

    Чем поможете комрады?
    --- Сообщение объединено, 22 янв 2021 ---
    Кодом плага в лс могу поделиться
     
  2. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    galenkane,

    Эти задачи по списку не отладчиков решаются, а dbi. В фичах этого отладчика не указано что используется бинарная трансляция, как это умеет к примеру ида(pin etc), раз речь про отладку. Это значит что юзер отладчик будет трассировать весь процесс, твой плаг будет эти события обрабатывать. Это слишком тормозно криво и ничего так не прокрутишь, любой протектор палит системную отладку.

    Тебе проще самому написать трассировку, довольно примитивно - трассируешь, тогда первые 5 пунктов не нужны(через отладчик ты делаешь тоже самое), тк есть поток всех инструкций. Так же отменяет 6-й пункт, так как известен адрес каждой инструкции, можно соотнести к какому то диапазону секции например.

    > - прыгнуть к незащищенному коду

    Не знаю что значит, трассировка полная, это не имеет смысла.

    > - прыгнуть на точку останова (pushfq)

    Её найти нужно, для этого лишь один метод есть - из трассы получить выборку по данным и определить первую абсолютную, а это единственный общий метод https://archivevx.net/exelab/f/pages/action=vthread&forum=6&topic=25429&page=0.html
     
    Последнее редактирование: 22 янв 2021
  3. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    Изобретать коллайдер не нужно мне, достаточно всех средств, что предоставляет отладчик. Код еще исследовать придётся, это достаточно удобно в x64dbg.
    --- Сообщение объединено, 22 янв 2021 ---
    Собственно вот пример чего хочется достичь по итогу..

     
    Indy_ нравится это.
  4. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    galenkane,

    Такое с нуля за час пишется. Ну если с коденгом трудности, тогда да, вариантов нет кроме как использовать отладчик, заколхозить(как твой описанный не верный метод решения), на что времени уйдёт куда больше чем пару часов, удачи конечно интересно что получится давно таких извратов не видел :)
     
  5. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    Но пример на видео сделан посредством AHK

    - Run to user code
    - F9
    - Ctlr+Z
    - text_section_bp plugin (Ctrl+Q)
    - F9
    - Ctlr+X
    - F1 (run macro)
    --- Сообщение объединено, 22 янв 2021 ---
    Ой не нужно мне тут обесценивать)
     
  6. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    Последнее редактирование: 30 янв 2021
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    galenkane,

    > Автоматизация в x64dbg
    > Решено через плагин к иде

    wtf ?

    Зачем вирта для ручной отладки, если всё равно запалят по таймингу если есть антидебаг. Какие то не вполне адекватные действия. Причём у иды уже давно есть трансляторы(dbi) и не один.
     
  8. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    можно использовать для защиты своего ПО
     
  9. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Плагин к иде, для защиты по ?

    Что вы там курите ?
     
    M0rg0t нравится это.
  10. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    269
    не могу понять что вы имеете в виду, посмотрите скрин в теме там все наглядно видно как происходит утечка важной инфы