Обфускация кода во Flutter (Android)
История начинается, когда мы собирались опубликовать наше флаттер-приложение в рабочей среде. Но перед этим приложение прошло процесс VAPT ( оценка уязвимостей и тестирование на проникновение ).
Что такое обфускация кода?
Обфускация кода — это процесс, который делает код программы трудным для понимания, обычно с целью затруднить реинжиниринг или модификацию. Это можно сделать с помощью различных методов, таких как создание нечитаемых имен переменных и функций или добавление в код дополнительных уровней косвенности или сложности. Обфускация часто используется для защиты интеллектуальной собственности или предотвращения злонамеренного вмешательства в программу. (Спасибо ChatGPT ).
Почему обфускация кода?
Если вы разрабатываете приложение, в котором безопасность пользовательских данных превыше всего, вы не можете скомпрометировать его. Хотя защита от дурака — это миф. Но мы можем максимизировать его до некоторой степени, используя следующие методы:
- Сократите свой код (или встряхните дерево) : он обнаруживает и безопасно удаляет неиспользуемые классы, поля, методы и атрибуты из вашего приложения.
3. Включить proguard: используйте правила proguard, чтобы определить, какие файлы вы не хотите изменять в процессе минимизации и сжатия.
Давайте перейдем к части «Как»
Обфускация с помощью команды флаттера
export version=1.0.0
flutter build apk --release --shrink --obfuscate --split-debug-info=misc/mapping/${version}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Объяснение :
- Он будет использовать ваши конфигурации подписи режима выпуска. Вам нужно будет создать файл .jks и key.properties, где вы можете указать свои учетные данные для подписи.
- Храните proguard-rules.pro в папке приложения, чтобы вы могли определить свои правила внутри него. Прочитайте здесь, как определить правила proguard.
- Чтобы защитить флаттер-файлы во время запутывания, используйте эти строки в вашем файле proguard-rules:
#Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class org.xmlpull.v1.** { *;}
-dontwarn org.xmlpull.v1.**
Теперь пришло время для профессионального совета
Если вы дошли до сюда, то вот вам подарок. Ваше приложение продолжает падать после enbaling proguard?
Попробуйте этот хак, чтобы отладить его:
Замените выпуск на отладку и запустите приложение в режиме отладки.
buildTypes {
debug {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Это все на сегодня. Спасибо, что остались до конца. Предложения приветствуются.
Давайте подключимся сейчас в Twitter , Instagram или LinkedIn .

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































