java aot 反编译,如何逆向Flutter应用(反编译)

目前大多数使用Flutter的应用都是采用add2app的方式,在APP中与Flutter相关的内容主要有FlutterEngine、APP产物、资源文件。我们可以在应用市场上寻找一个接入Flutter的应用做实验。(apk可在各大应用市场下载,ipa下载可以在mac上安装Apple Configurator 2进行),apk和ipa中flutter相关产物目录如下:

iOS包文件为ipa,下载后将其后缀重命名为zip进行解压,解压后Payload下即可看到应用文件夹,其中FlutterEngine、APP产物、资源文件分别在如下位置:

xxx.app

└── Frameworks

├── App.framework

│ ├── App(Dart APP产物)

│ ├── Info.plist

│ ├── SC_Info

│ ├── _CodeSignature

│ └── flutter_assets

│ ├── flutter_assets

│ ├── AssetManifest.json

│ ├── FontManifest.json

│ ├── LICENSE

│ ├── fonts

│ ├── images

│ ├── mtf_module_info

│ └── packages

└── Flutter.framework

├── Flutter(FlutterEngine)

├── Info.plist

├── SC_Info

├── _CodeSignature

└── icudtl.dat

Android包文件为apk,下载后将其后缀重命名为zip进行解压,其中FlutterEngine、APP产物、资源文件分别在如下位置:

xxx.apk

├── assets

│ └── flutter_assets

│ └── flutter_assets

│ ├── AssetManifest.json

│ ├── FontManifest.json

│ ├── LICENSE

│ ├── fonts

│ ├── images

│ ├── mtf_module_info

│ └── packages

└── lib

└── armeabi

├── libapp.o(Dart APP产物)

└── libflutter.so(FlutterEngine)

FlutterEngine各个app都是使用官方或者在官方基础上进行修改,差别不多,我们暂不关心这部分的逆向。资源文件多是图片,字体等无需逆向即可查看的资源。我们主要关心的是使用Dart编写的业务逻辑或者某些框架代码,这部分代码在APP产物中。即:App.framework/App 或 armeabi/libapp.o这两个文件都是动态库,我们先简单看看里面包含什么?

# 可以安装常用的 bin utils工具,如 brew update && brew install binutils

~/Downloads > objdump -t App

App: 文件格式 mach-o-arm64

SYMBOL TABLE:

0000000001697e60 g 0f SECT 02 0000 [.const] _kDartIsolateSnapshotData

000000000000b000 g 0f SECT 01 0000 [.text] _kDartIsolateSnapshotInstructions

0000000001690440 g 0f SECT 02 0000 [.const] _kDartVmSnapshotData

0000000000006000 g 0f SECT 01 0000 [.text] _kDartVmSnapshotInstructions

~/Downloads > greadelf -s libapp.so

Symbol table '.dynsym' contains 5 entries:

Num: Value Size Type Bind Vis Ndx Name

0: 00000000 0 NOTYPE LOCAL DEFAULT UND

1: 00001000 12992 FUNC GLOBAL DEFAULT 1 _kDartVmSnapshot[...]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值