
Практические задания для изучения реверс-инжиниринга Flutter-приложений.
Этот репозиторий содержит серию прогрессивных заданий, предназначенных для изучения обратного инжиниринга Flutter-приложений. Поскольку не так много статей или руководств, подробно объясняющих реверсинг Flutter, я решил создать этот репозиторий как практический способ восполнить этот пробел.
Цель — создать прочную основу для понимания уникальных особенностей фреймворка Flutter и общепринятых методов анализа, используемых с ним.
Задания построены по нарастающей сложности: от фундаментальных концепций до промежуточных и более продвинутых методов, таких как перехват сетевого трафика и обход защит.
Вместо традиционного отчёта каждое задание включает подробное решение в стиле блога, которое пошагово проводит вас через процесс реверсинга, сочетая практическое решение задач с соответствующими теоретическими сведениями, чтобы концепции усваивались непосредственно на практике.
Если вы считаете, что вам не хватает каких-либо предварительных знаний, настоятельно рекомендуются следующие ресурсы:
Каждая директория задания включает:
chall<X>.apk: скомпилированный APK задания;solution/_images/: изображения, используемые в решении;solution/solution.md: подробное пошаговое решение;source/: исходные файлы приложения и инструкции по сборке для тех, кто хочет модифицировать приложение и экспериментировать;$ tree
.
├── chall<X>.apk
├── solution
│ ├── _images
│ │ ├── chall<X_Y>.png
│ └── solution.md
└── src
├── how_to_build.md
└── main.dart
Некоторые из этих инструментов требуют определённой настройки. Для упрощения настройки и обеспечения воспроизводимости для некоторых инструментов предоставлены Dockerfile, которые можно найти в каталоге /tools.
Инструменты:
apktool — инструмент для декомпиляции и пересборки APK (link)Blutter — декомпилятор Flutter-приложений (link, Dockerfile включён в этот репозиторий)Frida — набор инструментов динамической инструментации (link)jadx — декомпилятор Android (link)reFlutter — фреймворк для обратного инжиниринга Flutter (link)Burp Suite — прокси для перехвата трафика (link)Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
Этот репозиторий создан исключительно в образовательных целях. Описанные методы следует использовать только на тех приложениях, которые вы имеете право анализировать, или в контролируемых тестовых средах. Автор не несёт ответственности за неправомерное использование информации, содержащейся в этом репозитории.