2022年1月6日
FlutterDart逆向从自信入门到精通跑路系列(3)-flutter apk 文件架构
在前面的基本开发过程中,我们得到了一个较为简单的flutter apk 文件。现在我们来将其解析分析里面包含的文件内容。
F:\flutter\bin\flutter.bat --no-color build apk
Running Gradle task 'assembleRelease'... 114.7s
√ Built build\app\outputs\flutter-apk\app-release.apk (16.5MB).
Process finished with exit code 0
整个apk大小挺恐怖的,我们之前只写了几行代码几个类居然有16.5MB的大小。
原因是在lib里面用了三套架构,我们只保留一套即可
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.fluttertest"
minSdkVersion 16
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
ndk {
abiFilters "armeabi-v7a" //架构保留
}
}
F:\flutter\bin\flutter.bat --no-color build apk
Building with sound null safety
Running Gradle task 'assembleRelease'... 5.4s
√ Built build\app\outputs\flutter-apk\app-release.apk (5.4MB).
Process finished with exit code 0
这下我们的apk只有5.4M
关于flutter的部分在
lib asset 两个文件夹里面,asset存放的就是相关的资源文件而lib里面就存放了我们要破解的flutter的代码。
-
libflutter.so 完整的flutter虚拟机
-
libapp.so flutter程序代码对应的dart vm AOT 快照文件