плагин-трейсер для OllyDbg

Тема в разделе "WASM.BEGINNERS", создана пользователем WantButCant, 20 ноя 2008.

  1. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    в нормальном клиенте пакет собирается из параметров этой функции
     
  2. WantButCant

    WantButCant New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2008
    Сообщения:
    16
    вечером попробую

    кстати, взгляни пожалуйста на sample.jpg - я правильно понимаю, что все данные пакета собираются между "началом ..." и "командой на отправку"?
     
  3. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Asterix
    У меня не пишет.
     
  4. Asterix

    Asterix New Member

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

    К. Касперски пишет:
    -----------------------------------------------------------------------------------------
    вот один забавный прием взлома.
    1) прогоняем программу через трейсер, вводим правильный параль (не окончена дата триала)
    2) прогоняем программу через трейсер, вводим _не_правильный параль (окончена дата триала)
    3) получаем два лога трейсера, которые в чем-то схожи, а в чем-то различны

    методика взлома сводится к поиску различий:

    * решение для "богатых"
    ===================
    берем любой coverage-инструмент
    (например, плагин для ида, http://www.hexblog.com/2006/03/coverage_analyzer.html)
    или numega coverage или другие инструменты для измерения покрытия.
    сравниваем покрытие до и после оконочания триала,
    делаем выводы, мотаем на ус.

    * решение для "бедных"
    ==================
    берем ollybdg, грузим программу (допустим demo-simple.exe),
    говорим debug -> open or clear trace,
    view -> run trace;
    F10 -> log to file;
    CTRL-11,
    и дождавшись "enter password" вводим _не_ правильный прароль типа fuck off

    теперь нажимаем Ctrl-F2 для рестарта дебагера,
    говорим view -> run trace;
    F10 -> clore file
    F10 -> log to file;
    CTRL-11,
    и дождавшись "enter password" вводим правильный прароль типа nezumi
    говорим view -> run trace;
    F10 -> clore file

    ок. мы получили два файла,
    пусть это будет 1.log и 2.log.

    * как сравнивать файлы
    ==================
    берем утилиту windiff (входит в ms vc и еще хрен знает куда),
    выбираем файлы, говорим [expand]
    и жем F8 для поиска изменнений. вот, смотрите, что мы нашли:
    (см. аттач). это и есть тот условный переход, который рулит ;)))


    в отсуствии windiff (ну что за срань?! юниховый diff намного лучше)
    с некоторой черезжопицей файлы можно сравнивтаь и FC.EXE.

    а вообеще, но "науке" надо написать несложную программу,
    которая берет EIP адреса, пройдеденные файлови ложит их в базу
    (для ускорения поиска можно использовать двоичное дерево),
    а затем показывает какие адреса _НЕ_ совпадают в обоих файлах.

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

    критика, замечания, дополнения - только приветствуются

    --------------------------------------------------------------------------------
     
  5. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    WantButCant
    хм... оказывается я наврал
    UNetworkHandler::RequestAuthLogin и коннектится к логин-серверу, и отправляет пакет

    по адресу 464361 у тя вызывается функция которая коннектится к логинсерверу
    а то что ты выделил - просто записывает в лог
     
  6. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    ах да, на счет трассировки... у меня клиент от абисса, там коннект к серверу тоже перехвачен, а код перехвата накрыт фемидой, это около 3миллионов инструкций в логе трассы.
     
  7. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Asterix
    Спасибо.
    Я просто трассировал по F7, поэтому не записывалось ничего.
     
  8. WantButCant

    WantButCant New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2008
    Сообщения:
    16
    Asterix, спасиб, попробую

    GoldFinch, не думаю, что в моём случае есть что-то такое мощное - админы решили спрятать защиту и поступили по поговорке: "Хочешь спрятать? Положи на самое видное место" :)
     
  9. WantButCant

    WantButCant New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2008
    Сообщения:
    16
    GoldFinch, я записывал в лог всё от функции, что ты дал (и вложенные колы тоже), но найти число, фигурирующее в снифере так и не удалось...


    может я чего не понимаю, но где та функция, что собирает данные пакета RequestAuthLogin?

    потому-что в UNetworkHandler::RequestAuthLogin этого числа нет...


    кстати, эта функция UNetworkHandler::RequestAuthLogin - срабатывает при входе на ЛОГИН СЕРВЕР, может ты знаеш ту, которая для ГЕЙМ СЕРВЕРА? Или она "универсальная"?
     
  10. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    у ГС другая, ищи..
     
  11. WantButCant

    WantButCant New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2008
    Сообщения:
    16
    запись лога - отличная весчь, но у меня вопрос: а можно ли писать лог только стэка?