分析flutter应用很依赖反编译工具转储的dart文件中的信息,可以在开发flutter的过程中开启混淆,能有效防止静态分析。
flutter build apk --obfuscate --split-debug-info=./debug_info
一、混淆原理
混淆是一种代码保护技术,通过修改源代码或编译后的代码,使其难以阅读和理解。混淆的主要目的是提高反编译和逆向工程的难度。通常,混淆可以通过以下方法实现:
重命名变量、函数和类名。
删除不必要的空白字符、注释和换行符。
优化代码结构,例如内联函数、删除未使用的代码和资源等。
对控制流进行混淆,例如添加冗余代码、修改循环结构等。
二、实现混淆
2.1.混淆Dart代码
要对Dart代码进行混淆,请使用以下命令构建Release版本:
flutter build apk --obfuscate --split-debug-info=<output_directory>
flutter build apk --obfuscate --split-debug-info=/<project-name>/<directory>
flutter build apk --target-platform android-arm --analyze-size
flutter build apk --target-platform android-arm64 --analyze-size
flutter build apk --target-platform android-x64 --analyze-sizeflutter build appbundle --target-platform android-arm --analyze-size
flutter build appbundle --target-platform android-arm64 --analyze-size
flutter build appbundle --target-platform android-x64 --analyze-size
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
-keep class io.flutter.plugin.** { *; }
android {
...
buildTypes {
release {
...
shrinkResources true
}
}
...
}
原文链接:
https://juejin.cn/post/7211081639620378661
原文始发于微信公众号(哆啦安全):Flutter应用代码混淆优化防护
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论