Визоры больше не нужны

Тема в разделе "WASM.RESEARCH", создана пользователем Rel, 7 окт 2020.

  1. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    проблема в том, что надо дампить данные и тогда начинается суровая тормозуха, а защита приложения легко может обнаруживать такие лаги.

    Rel, приводить скрины постов в разряде пруфов -- это несколько странно для ой-ти спеца...
    1. современный фотошоп напичкан нейронками и легко заменяет фон на ФОТОГРАФИЯХ.
    2. подделать стилистику предложений достаточно легко.
    3. так акие же у тебя проблемы выложить свои сорцы, о коих Инди просит? :)
     
    Indy_ нравится это.
  2. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    У меня по Фриде вопрос - может кто подскажет (eshmereum, Rel или еще кто-нибудь). Как можно запустить Фриду в режиме трассировки? А то в Pin и DynamoRIO - это сразу понятно как, а вот во Фриде как-то не очень.


    Ну с Фридой-то, я надеюсь, разобрались? А то обращайтесь в личку - общий принцип работы я уловил, остались только кое-какие детали. Могу объяснить, если что-то непонятно.

    Как вы не вовремя со своими детскими обидами, M0rg0t - прям как ребенок, честное слово. Инди, eshmereum, это DMA/STY - вы с ним не дружите =)) Как будто они без вас не знают с кем им дружить, а с кем нет. Я это к тому, что хотел еще кое-что по Фриде уточнить, а тут вы со своим детским садом. Прям вот срочно, на зло мне, понадобилось закрывать тред про Фриду. Ну цирк - да и только =))
     
  3. MaKaKa

    MaKaKa Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2020
    Сообщения:
    53
    Оно?

    # Trace a Windows process's calls to "mem*" functions in msvcrt.dll
    $ frida-trace -p 1372 -i "msvcrt.dll!*mem*"

    # Trace all functions matching "*open*" in the process except
    # in msvcrt.dll
    $ frida-trace -p 1372 -i "*open*" -x "msvcrt.dll!*open*"

    https://frida.re/docs/frida-trace/
     
  4. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    MaKaKa,

    Спасибо за отзывчивость, но к сожалению не то. Этот режим есть и по ссылке которую давал Rel. Это тоже как бы трассировка, но только настроенная на какую-то конкретную функцию, а мне нужно чтобы было на каждую инструкцию. Ну как примерно в обычном отладчике трассировка. Это скорей всего нужно знать как правильно на JS написать скрипт или как-то специально задавать такой режим работы. eshmereum что-то писал про модуль frida-gum и про stalker-метод - вот это уже наверное ближе к истине, но вот как конкретно такое запустить - пока не соображу. Попробую в сети еще поискать, может какая статья подвернется.
     
  5. Indy_

    Indy_ Well-Known Member

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

    Вы(и тот мутный тоже) не забывайте что термин trace" он общий и это совершенно разные механихмы, системы и визора. В пин/сде это бинарная трансляция, это никакого отношения к машинной трассировке хардом не имеет. Блоки кода кэшируются в память, там всё это собирается и повторно эффективно исполняется(хотя и реализовано на костылях, слишком много повторений).

    > Как вы не вовремя со своими детскими обидами, M0rg0t

    Чувак, а ты что не понимаешь что ты в конец обнаглел. Это ты ребёнок тут и у тебя обиды детские. Вот от этого твоего сообщения https://wasm.in/threads/problemy-s-patchami.25912/page-3#post-422648 я чуть не позеленел :bad:

    Тему твою прикрыли и пришёл срать в мою", точнее адресованную мне ?

    Ты же не рел далеко, как никак он понимает в общих чертах суть предмета, технологию.

    Какое отношение имеет этот скриптовый треш к dbi, по трассировке поиск находит какие то строки https://github.com/frida/frida-core/search?q=trace это никсы и их высер скриптовый:

    Это не код, это цитата. Этот скрипт кодом в принципе не является.
     
    Aiks и M0rg0t нравится это.
  6. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    А что так? Не поняли о чем речь? Странно, тот же Thetrik, например, сразу понял меня. Он только переспросил про конечную цель, где я это хочу применить? И что можно все сделать проще. Т.е. там меня интересовала просто теория. Будет вообще, такое работать или нет?

    Классная, на мой взгляд, статья от разработчика Frida. Это вам, понимаешь, не в "ядре атомной электростанции проводами размахивать". Тут реально - разработка "космического корабля" =))
     
    Последнее редактирование: 10 фев 2021
  7. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    космического корабля, пля.:laugh1::laugh2::laugh3:
     
  8. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    Вот шутки шутками, а разработчик Фриды - явно незаурядная личность. "Взвалил на свои плечи тяжелую ношу" - и тащит ее один, а это дорогого стоит и вызывает уважение, а у некоторых, может и восхищение. Посмотрите как он со вкусом и с любовью к своему детищу - оформил свой сайт - приятно зайти и что-то почитать. А ведь мог и использовать что-то готовое и не париться.

    Интуитивно, я чувствую, что победителем у всех этих DBI, если протестировать, - будет PIN. Ну а кто является разработчиком и сколько народу принимало в проекте? Я думаю, человек 20, а то и все 50. А сколько денег на это отпустили? У DynamoRIO - все чуть скромнее, но тоже человек 10 принимало участие в разработке и написании кода. У Frida - все тащит на себе один человек. Вот это еще подкупает. Хочу ее повнимательней потестировать. Как-то вот не хочется верить в то, что у Фриды, прям вообще, все плохо и она постоянно зависает.
     
  9. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    GRAFik, задача разрешима только на узком наборе случаев, дальше идёт жесткач по ресурсоёмкости.. к примеру, отслеживаем переменную на 8 байт, частота её изменений 10⁵/c. То бишь дамп всего одной переменной за 10 секунд наблюдений достигнет 8 х 10⁶ байт. если экзе имеет мало-мальскую защиту, то автоматика тупо захлёбывается на своём же дампе :)
     
  10. Indy_

    Indy_ Well-Known Member

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

    Зачем дамп, да и какой ?

    Теоретическая чушь, такое за всё время не разу нужно небыло в дамп выборку отгружать. Состояние задачи сопоставляется с критерием, авотоматика крутит пока условие не будет найдено. При этом ничего не нужно дампить, трассу сохранять и тп. При этом если реализация грамотная, бин трансляция эффективное кэширование, то сервисные тормоза компенсируют задержки траснсляции, таким образом по профайлу исполнение не отличимо от реалтайма.
     
  11. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    ну-стоп, есть две несколько разные задачи..

    1. просто запустить экзе чрез бин трансляцию. == действительно можно обходиться без дампов.
    2. раскрутить алго в экзе с целью обхода его защит и копирования интересующих тебе частей этого самого алго.
    вот оп том и речь-ка == данные определяют ветвление алго == не дампишь данные, нет у тебя и возможности прописать ЧТО ЖЕ ИМЕННО ИЩЕШЬ.:crazy::blush2::read: :resent:с чем и что же именно сравнивать будешь?:grin:
    меж тем, полный размер "голого" дампа == S x K x F x T.

    S - размер регистра цпу.
    K - средний коэффициент активности/изменяемости исследуемых данных.
    F - базовая частота озу.
    T - время наблюдения за экзе.
    ========
    а есть ещё мета-данные, кои образуются чрез обработку дампа колбэками. И их размер тоже в зависимости от задачи и неправильности выбранной стратегии могут сягать вышей всяких крышей :)
     
  12. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    UbIvItS,

    А что если проблему о которой вы пишите - попытатся решить (ну или немного нивелировать) с помощью Юникорна? Вы слышали о таком? Если слышали, то ваше отношение к нему? Фигня или все же можно с ним иметь дело? Я тут немного с ним поигрался - мне понравилось. И, кстати, трассировочный выхлоп у меня с ним получался в разы, а в некоторых случаях и на порядок меньше. По-моему, не зря автор книги про Иду - мечтает куда-нибудь его засунуть в Иде, в качестве плагина. Пока только с Ильфаком не могут договориться о месте такого плагина в Иде (то ли где-нибудь на переднем плане, то ли на заднем =)) ). Сейчас он пока эксперементирует с отладчиком на базе Юникорна.
     
    Последнее редактирование: 11 фев 2021
  13. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.087
    https://github.com/unicorn-engine/unicorn оно? :)
    не важно чем ты балуешься == полноценная развёртка динамической защиты требует формирование дампа и по результатам его препарирования исследуемый код пересобирается да запускается, затем чекаем что получили против того, что ожидали. Обычно такие схемы не могут быть полноценными автоматами, пч у них слишком большая вероятность свалиться в нон-стоп цикл, а затем тупо упасть (забив диски дампами):laugh1::laugh2::laugh3:
     
  14. eshmereum

    eshmereum New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2020
    Сообщения:
    23
    Ну поищи лучше
    https://github.com/frida/frida-gum/search?q=transform
     
  15. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    eshmereum :

    Что-то у меня складывается впечатление, что вы, вообще, не умеете с Фридой работать. Дать ссылку на АПИ Фриды - до этого любой школьник может додуматься, а вот составить из этих АПИ работающий пример - это уже другой уровень понимания. А потом жалуетесь, что Фрида "криво" работает. В общем, начитались теории - теперь нужна практика. =))

    Вас же Моргот просил дать пример на С/C++ и JS - чтобы он мог понять как работает Фрида. Заодно бы и Инди научили работе хоть на одной профессиональной DBI. =)) Ну так как, eshmereum , сможете что-нибудь в таком духе изобразить? =))
     
  16. galenkane

    galenkane Active Member

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

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.250
    Меня это забавит, как только упоминается какой-то старый выкакаш Индия все сразу такие "нука-нука", потом получают семпл или сорс, и не знают, что с ним делать и даже как запустить. Не научились еще на своем горьком опыте?
     
  18. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.250
    Вспомнил, что Сацурыч заботливо заархивировал для таких, как ты с Морготом, интересующихся:
    https://github.com/YHVHvx/indy_vx_sources/blob/master/indy-vx/Bin/LDE.zip - хотя это может быть не то, кто его названия и аббревиатуры разберет, они же спецовые, не для маглов.
     
  19. eshmereum

    eshmereum New Member

    Публикаций:
    0
    Регистрация:
    21 июн 2020
    Сообщения:
    23
    У меня нет столько свободного времени, чтобы писать за кого-то скрипты.
    Мой тезис относительно плохой стабильности я подтвердил сценарием воспроизведения бага.
    То, что внутри Frida есть DBI, который называется gumstalker - это видно из https://github.com/frida/frida-gum/blob/master/gum/backend-x86/gumstalker-x86.c
    Функция gum_stalker_iterator_keep
    Теперь обоснуй, что я школьник, который не умеет с чем-то там работать или ты песикиабол
     
  20. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.250
    Форум шарит в автозаменах.