проблема в том, что надо дампить данные и тогда начинается суровая тормозуха, а защита приложения легко может обнаруживать такие лаги. Rel, приводить скрины постов в разряде пруфов -- это несколько странно для ой-ти спеца... 1. современный фотошоп напичкан нейронками и легко заменяет фон на ФОТОГРАФИЯХ. 2. подделать стилистику предложений достаточно легко. 3. так акие же у тебя проблемы выложить свои сорцы, о коих Инди просит?
У меня по Фриде вопрос - может кто подскажет (eshmereum, Rel или еще кто-нибудь). Как можно запустить Фриду в режиме трассировки? А то в Pin и DynamoRIO - это сразу понятно как, а вот во Фриде как-то не очень. Ну с Фридой-то, я надеюсь, разобрались? А то обращайтесь в личку - общий принцип работы я уловил, остались только кое-какие детали. Могу объяснить, если что-то непонятно. Как вы не вовремя со своими детскими обидами, M0rg0t - прям как ребенок, честное слово. Инди, eshmereum, это DMA/STY - вы с ним не дружите =)) Как будто они без вас не знают с кем им дружить, а с кем нет. Я это к тому, что хотел еще кое-что по Фриде уточнить, а тут вы со своим детским садом. Прям вот срочно, на зло мне, понадобилось закрывать тред про Фриду. Ну цирк - да и только =))
Оно? # 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/
MaKaKa, Спасибо за отзывчивость, но к сожалению не то. Этот режим есть и по ссылке которую давал Rel. Это тоже как бы трассировка, но только настроенная на какую-то конкретную функцию, а мне нужно чтобы было на каждую инструкцию. Ну как примерно в обычном отладчике трассировка. Это скорей всего нужно знать как правильно на JS написать скрипт или как-то специально задавать такой режим работы. eshmereum что-то писал про модуль frida-gum и про stalker-метод - вот это уже наверное ближе к истине, но вот как конкретно такое запустить - пока не соображу. Попробую в сети еще поискать, может какая статья подвернется.
GRAFik, Вы(и тот мутный тоже) не забывайте что термин trace" он общий и это совершенно разные механихмы, системы и визора. В пин/сде это бинарная трансляция, это никакого отношения к машинной трассировке хардом не имеет. Блоки кода кэшируются в память, там всё это собирается и повторно эффективно исполняется(хотя и реализовано на костылях, слишком много повторений). > Как вы не вовремя со своими детскими обидами, M0rg0t Чувак, а ты что не понимаешь что ты в конец обнаглел. Это ты ребёнок тут и у тебя обиды детские. Вот от этого твоего сообщения https://wasm.in/threads/problemy-s-patchami.25912/page-3#post-422648 я чуть не позеленел Тему твою прикрыли и пришёл срать в мою", точнее адресованную мне ? Ты же не рел далеко, как никак он понимает в общих чертах суть предмета, технологию. Какое отношение имеет этот скриптовый треш к dbi, по трассировке поиск находит какие то строки https://github.com/frida/frida-core/search?q=trace это никсы и их высер скриптовый: Это не код, это цитата. Этот скрипт кодом в принципе не является.
А что так? Не поняли о чем речь? Странно, тот же Thetrik, например, сразу понял меня. Он только переспросил про конечную цель, где я это хочу применить? И что можно все сделать проще. Т.е. там меня интересовала просто теория. Будет вообще, такое работать или нет? Классная, на мой взгляд, статья от разработчика Frida. Это вам, понимаешь, не в "ядре атомной электростанции проводами размахивать". Тут реально - разработка "космического корабля" =))
Вот шутки шутками, а разработчик Фриды - явно незаурядная личность. "Взвалил на свои плечи тяжелую ношу" - и тащит ее один, а это дорогого стоит и вызывает уважение, а у некоторых, может и восхищение. Посмотрите как он со вкусом и с любовью к своему детищу - оформил свой сайт - приятно зайти и что-то почитать. А ведь мог и использовать что-то готовое и не париться. Интуитивно, я чувствую, что победителем у всех этих DBI, если протестировать, - будет PIN. Ну а кто является разработчиком и сколько народу принимало в проекте? Я думаю, человек 20, а то и все 50. А сколько денег на это отпустили? У DynamoRIO - все чуть скромнее, но тоже человек 10 принимало участие в разработке и написании кода. У Frida - все тащит на себе один человек. Вот это еще подкупает. Хочу ее повнимательней потестировать. Как-то вот не хочется верить в то, что у Фриды, прям вообще, все плохо и она постоянно зависает.
GRAFik, задача разрешима только на узком наборе случаев, дальше идёт жесткач по ресурсоёмкости.. к примеру, отслеживаем переменную на 8 байт, частота её изменений 10⁵/c. То бишь дамп всего одной переменной за 10 секунд наблюдений достигнет 8 х 10⁶ байт. если экзе имеет мало-мальскую защиту, то автоматика тупо захлёбывается на своём же дампе
UbIvItS, Зачем дамп, да и какой ? Теоретическая чушь, такое за всё время не разу нужно небыло в дамп выборку отгружать. Состояние задачи сопоставляется с критерием, авотоматика крутит пока условие не будет найдено. При этом ничего не нужно дампить, трассу сохранять и тп. При этом если реализация грамотная, бин трансляция эффективное кэширование, то сервисные тормоза компенсируют задержки траснсляции, таким образом по профайлу исполнение не отличимо от реалтайма.
ну-стоп, есть две несколько разные задачи.. 1. просто запустить экзе чрез бин трансляцию. == действительно можно обходиться без дампов. 2. раскрутить алго в экзе с целью обхода его защит и копирования интересующих тебе частей этого самого алго. вот оп том и речь-ка == данные определяют ветвление алго == не дампишь данные, нет у тебя и возможности прописать ЧТО ЖЕ ИМЕННО ИЩЕШЬ. с чем и что же именно сравнивать будешь? меж тем, полный размер "голого" дампа == S x K x F x T. S - размер регистра цпу. K - средний коэффициент активности/изменяемости исследуемых данных. F - базовая частота озу. T - время наблюдения за экзе. ======== а есть ещё мета-данные, кои образуются чрез обработку дампа колбэками. И их размер тоже в зависимости от задачи и неправильности выбранной стратегии могут сягать вышей всяких крышей
UbIvItS, А что если проблему о которой вы пишите - попытатся решить (ну или немного нивелировать) с помощью Юникорна? Вы слышали о таком? Если слышали, то ваше отношение к нему? Фигня или все же можно с ним иметь дело? Я тут немного с ним поигрался - мне понравилось. И, кстати, трассировочный выхлоп у меня с ним получался в разы, а в некоторых случаях и на порядок меньше. По-моему, не зря автор книги про Иду - мечтает куда-нибудь его засунуть в Иде, в качестве плагина. Пока только с Ильфаком не могут договориться о месте такого плагина в Иде (то ли где-нибудь на переднем плане, то ли на заднем =)) ). Сейчас он пока эксперементирует с отладчиком на базе Юникорна.
https://github.com/unicorn-engine/unicorn оно? не важно чем ты балуешься == полноценная развёртка динамической защиты требует формирование дампа и по результатам его препарирования исследуемый код пересобирается да запускается, затем чекаем что получили против того, что ожидали. Обычно такие схемы не могут быть полноценными автоматами, пч у них слишком большая вероятность свалиться в нон-стоп цикл, а затем тупо упасть (забив диски дампами)
eshmereum : Что-то у меня складывается впечатление, что вы, вообще, не умеете с Фридой работать. Дать ссылку на АПИ Фриды - до этого любой школьник может додуматься, а вот составить из этих АПИ работающий пример - это уже другой уровень понимания. А потом жалуетесь, что Фрида "криво" работает. В общем, начитались теории - теперь нужна практика. =)) Вас же Моргот просил дать пример на С/C++ и JS - чтобы он мог понять как работает Фрида. Заодно бы и Инди научили работе хоть на одной профессиональной DBI. =)) Ну так как, eshmereum , сможете что-нибудь в таком духе изобразить? =))
Меня это забавит, как только упоминается какой-то старый выкакаш Индия все сразу такие "нука-нука", потом получают семпл или сорс, и не знают, что с ним делать и даже как запустить. Не научились еще на своем горьком опыте?
Вспомнил, что Сацурыч заботливо заархивировал для таких, как ты с Морготом, интересующихся: https://github.com/YHVHvx/indy_vx_sources/blob/master/indy-vx/Bin/LDE.zip - хотя это может быть не то, кто его названия и аббревиатуры разберет, они же спецовые, не для маглов.
У меня нет столько свободного времени, чтобы писать за кого-то скрипты. Мой тезис относительно плохой стабильности я подтвердил сценарием воспроизведения бага. То, что внутри Frida есть DBI, который называется gumstalker - это видно из https://github.com/frida/frida-gum/blob/master/gum/backend-x86/gumstalker-x86.c Функция gum_stalker_iterator_keep Теперь обоснуй, что я школьник, который не умеет с чем-то там работать или ты песикиабол