Вывести трассу вызовов DLL?

Тема в разделе "WASM.RESEARCH", создана пользователем Rel, 19 янв 2019.

  1. Indy_

    Indy_ Well-Known Member

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

    > в самом тихом режиме неминуемо даст перекосы. + можно соорудить тесты на валидность адресов вызова.

    Что значит валидность адресов, если что то не валидно, то улетает в крэш.

    Это понятно что есть разница по профайлу, но как это узнать, те снять профайл, счётчики то в симуляции. Я даже не могу предположить как такое провернуть. Кэши вы упомянули и перекосы как не давние атаки, но там счётчиками и снимался профайл.

    TermoSINteZ,

    > Вы просто включаете режим процессора.

    Зайдите на ресурс где народ занимается реальными вещами, тот же кл. Такое посоветуйте и вас обольют дерьмом вообще все. Технология заложенная в железо никакого отношения не имеет к задаче, которую она решеает вне среды вендоров. Хорошо в железке есть некий механизм IPT, для этого нужно пилить драйвера, изучать, отлаживать, привлекать людей кто в теме; при этом не ясно вообще как это будет работать.. И это совет для решения тривиальных задач, которые отлично решаются в юм. Это практически слоники в сферическом вакууме". Ты есчо посоветуй загрузочный eprom перешить с smb, что бы цвет окна поменять :D
    Я думал что ты адекватен в таких вопросах. Впрочем давай посмотрим реально и практически, сколько тебе нужно времени что бы допустим найти вводимую строку в блокнот, через эти ipt etc ?
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    1
    Регистрация:
    11 июн 2004
    Сообщения:
    3.102
    Адрес:
    Russia
    Indy_, так посмотрите на заголовок темы. посмотрите в каком она разделе (не Vx) . Погуглите и узнаете, что пилить ничего не надо . И не надо находить строчку в блокноте. А нужно сделать трейс.
    Если мне нужно сделать трейс - у меня уже есть и драйвер написанный и много чего еще. Но для задачи - найти строчку в блокноте я не стану делать трассу вызовов ДЛЛ - просто перехвачу в отладчике обработчик ввода текста.
    Я думал вы внимательно темы читает, а вы оказывается все там же )
     
  3. Indy_

    Indy_ Well-Known Member

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

    > посмотрите в каком она разделе (не Vx) . Погуглите и узнаете, что пилить ничего не надо . И не надо находить строчку в блокноте. А нужно сделать трейс.

    Я не помню что бы упомянал виксы в данной теме. Вот вы говорите сделать трейс", но покажите как это сделать.

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

    Во первых получается что у вас есть какие то драйвера, но к ним есчо и интерфейс нужен. Не мне вам объяснять какие кривые такие интерфейсы. Но дело не в этом. Вы не решите ничего вашими драйверами(которых нет) быстрее и лучше чем я на данный момент(те у вас нет отработанных техник и инструментов). Могу с вами поспорить, конечно же вы это делать не будите, по очевидным причинам - кроме терминов у вас нет конкретной реализации. Покажите что я не прав.

    Я могу найти строку в апп не используя драйвера, но всё равно интересно как вы сделаете это использую км.
    --- Сообщение объединено, 6 фев 2019 ---
    TermoSINteZ,

    > просто перехвачу в отладчике обработчик ввода текста.

    Я вопрос с подвохом задал, ты же не думал что будет просто :)
    .
    Это распространённый вопрос по работе гуя.

    Вывод текста на контекст. На стороне юм собираются запросы в гуй. Затем при вызове любого теневого сервиса пакет обрабатывает ядро. При этом явного механизма нет - перехватывать нечего, нет апи или сервисов. Это пакетная обработка тенью. Параметры загружаются в локальное хранилище(TEB), при сервисной обрабтке ядром(до вызова соотвествующего сервиса) пакет обрабатывается. Поэтому ты выводимую строку не найдёшь патчем, тебе нужно отследить загрузку строки в хранилище(TEB), те выборку данных(DF).
     
  4. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    4.261
    TermoSINteZ, superakira,
    Друзья, ядро любой оси по сути своей и есмь визор, тч технология и того старше :grin:
    --- Сообщение объединено, 6 фев 2019 ---
    есть след. техники самозащиты кода..

    1. записываем все относительные смещения адресов вызова функций == просто так вставить свой call ужо не выйдет, пч он будет указывать на невалидное смещение.
    2. делаем хэши для различных участков кода, то бишь легко будет сверить целостность искомого кода.
    3. счётчики (самый лёгкий способ отлова дебаг моуда, хорош и против железного дебагера).
    4. хот-патч == прога может восстанавливать себя к искомому виду на лету.
    ======
    Indy_ и етЬ тока юм, а с дравером совсем туго :)
     
  5. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    585
    по сабжу а пин не пойдет на каждый колл/жмп вне модуля? или гипервизор

    UbIvItS пилят китайцы это для ллвм-обфа, но закрыли в коммерс
     
  6. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    585
    дельно вообще это(пин). к семплу 3 строчки добавил, запуск цмд, например. с аргументами не разбирался, но там довольно гибко всё. потому как помню юзали пин для валидации регистров на EP криптора и перед переходом на анпакнутый пейлоад.
    пс таких апей даж не видел
    --- Сообщение объединено, 27 фев 2019 ---
    ** наврал. вкуриваю, это статы сбор. кстати смотрю и smc детекты есть с колбаками
    --- Сообщение объединено, 27 фев 2019 ---
    иии вот шо нужно: C:\pin-3-7-msvc\source\tools\SimpleExamples\calltrace.cpp прям збс трейсит,
    только все треды в кучу. но и с тредами там тоже норм
     
    Последнее редактирование: 27 фев 2019
  7. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    585
    вроде это у Инде такой ник был на заре 00х
     
  8. sty

    sty Member

    Публикаций:
    0
    Регистрация:
    2 фев 2019
    Сообщения:
    87
    А если серьезно, то хорошо, что подняли эту тему. Много, по-моему, чего можно в ней обсудить и многим она будет интересна. Нужно переодически ее поднимать, если у кого-то будут появляться новости по теме.

    sn0w, а вы PIN использовали в своем проекте (в смысле, что имеются исходники)? Если да, то интересны подробности.

    Вроде бы PIN можно к Visual Studio подключать в качестве отладчика (если я ничего не путаю). В ИДЕ еще его используют. Интересно где больше всего оправдано его применение? Или все зависит от задач и результата который хотят получить? PIN, по-моему, может быть одинаково полезен как при реверсинге чужих бинарников(exe), так и про использовании в своих проектах, в той же Visual Studio. Кто-нибудь кто в теме - может поделиться своими мыслями на это счет?
     
    Последнее редактирование модератором: 15 мар 2019 в 12:40
  9. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    585
    sty
    да, использовали, только разработкой той части занимался другой человек и всё у него, поэтому сейчас придётся запиливать самому.
     
  10. sty

    sty Member

    Публикаций:
    0
    Регистрация:
    2 фев 2019
    Сообщения:
    87
    Ну как допилите, с нами то, надеюсь, поделитесь своим мнением по поводу PIN? :) А то вдруг, в итоге, не понравится. Ведь сколько людей, столько и мнений.
     
  11. ormoulu

    ormoulu Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    252
    Windbg
    x dllname!*
    Дальше скриптом или макрообработчиком превращаем каждую строчку вывода в
    bu dllname!procname ".echo procname; dd esp; k <-- это по желанию;g"
    и вбиваем обратно в виндбг

    и не нужно париться ни с пинами, ни с апимониторами
     
  12. sn0w

    sn0w Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    585
    это всё хорошо, кроме того, что ничего не мешает выполнять syscall/sysenter напрямую.
     
    UbIvItS нравится это.