Категория > Новости > Инъекция для андроида. Внедряем код в чужие приложения с помощью Frida - «Новости»
Инъекция для андроида. Внедряем код в чужие приложения с помощью Frida - «Новости»19-03-2018, 18:00. Автор: Evans |
Содержание статьи
Немного словоблудияПредставь, что тебе в руки попал семпл малвари. Ты запускаешь его в эмуляторе и пытаешься проанализировать поведение. Но оказывается, что в эмуляторе он работает совсем не?так, как на реальном устройстве, и никакой подозрительной активности не проявляет: малварь умеет определять, что находится в эмулируемой среде. Ты об этом догадываешься и поэтому решаешь запустить малварь под дебаггером (предварительно распаковав зловред и?добавив строчку А теперь представь, что у тебя есть инструмент, позволяющий прямо во время работы приложения отключить все эти?проверки, просто переписав проверочные функции на jаvascript. Никаких дизассемблерных листингов smali, никаких правок низкоуровневого кода, никаких пересборок приложения; ты просто подключаешься к работающему приложению, находишь нужную функцию и переписываешь ее тело. Недурно, не так ли? FridaFrida — это так называемый Dinamic Instrumentation Toolkit, то есть набор инструментов, позволяющих на лету внедрять собственный код в?другие приложения. Ближайшие аналоги Frida — это знаменитый Cydia Substrate для iOS и Xposed Framework для Android, те самые фреймворки, благодаря которым появились твики. Frida отличается от них тем, что нацелена на быструю правку кода в режиме реального времени. Отсюда и язык jаvascript вместо Objective-C или Java, и отсутствие необходимости упаковывать «твики»?в настоящие приложения. Ты просто подключаешься к процессу и меняешь его поведение, используя интерактивную JS-консоль (ну или отдаешь команду на загрузку ранее написанного скрипта). Frida умеет работать с приложениями, написанными для всех популярных ОС, включая Windows, Linux, macOS, iOS и даже QNX. Мы же будем использовать ее для модификации приложений?под Android. Итак, что тебе нужно:
Для начала установим Frida:
Далее скачаем сервер Frida, который необходимо установить на смартфон. Сервер можно найти на GitHub, его версия должна точно совпадать с версией Frida, которую мы установили на комп. На?момент написания статьи это была 10.6.55. Скачиваем:
Подключаем смартфон к компу, включаем отладку по USB (Настройки ? Для разработчиков ? Отладка по USB) и закидываем сервер на смартфон:
Теперь заходим на смартфон с помощью
Первые шагиОк, Frida установлена на комп, сервер запущен на смартфоне (не закрывай терминал с запущенным сервером). Теперь надо проверить, все ли работает как надо. Для этого воспользуемся командой
![]() Команда должна вывести все?процессы, запущенные на смартфоне (флаг Для начала попробуем выполнить трассировку системных вызовов. Frida позволяет отследить обращения к любым?нативным функциям, в том числе системные вызовы ядра Linux. Для примера возьмем системный вызов
Возьми телефон и?немного потыкай интерфейс Телеграма. На экран должны посыпаться сообщения примерно следующего содержания:
Эта строка означает, что Телеграм открыл файл
Здесь все еще проще. Телеграм агрессивно кеширует загруженные данные, поэтому для отображения картинки он взял ее из кеша.
Еще один файл в каталоге
Выглядит странно, не так ли? На самом деле все просто. Файл Перейти обратно к новости |