0
前言
1
抓包及定位
图中可见Header中含有signature加密字段长度32位,无脑trace下CC_MD5 看看是否触发~
使用frida-trace:
frida-trace -UF com.xxx.xxx -i CC_MD5
上图无论怎么点击都没有触发CC_MD5,考虑该样本可能没使用CC_MD5库 。
ps: 能直接trace到就没必要记录咯 家银们...
即将开启踩坑之旅
2
脱壳
python dump.py xxxx
3
reFlutter重打包
这里参考Yang神的文章,致敬前辈!
[https://bbs.kanxue.com/thread-273545.htm]
我这里没有用到流量拦截,所以BurpSuite透明代理的设置直接略过。
可以从上图看出生成了release.RE.ipa,接着对该ipa进行签名安装。
我这里是直接使用的轻松签,不再赘述。
5
大坑-reFlutter重打包后app无法正常运行
遂又使用blutter对Android该样本进行分析
6
记录-blutter放弃
github:
https://github.com/worawit/blutter
macOS按README进行安装即可
注意使用的时候Python别用虚拟环境
brew install llvm@16 cmake ninja pkg-config icu4c capstone
pip3 install pyelftools requests
python3 blutter.py xxxx/lib/arm64-v8a ./output/
结构如下:
asm: 具有符号的libapp.so的汇编代码。
ida_script: IDA脚本,用于还原libapp.so的符号。
blutter_frida.js: 针对目标应用程序的 Frida 脚本模板。
objs.txt: 对象池中 Object 的完整(嵌套)转储。
pp.txt: 对象池中所有 Dart 对象的转储。
在IDA中执行还原符号:ida_script/addNames.py脚本
弹窗直接OK略过 看看最终的效果~
天塌了 家银们...
无奈还是接着继续分析iOS吧
7
iOS-解析dump.dart
又回到了第⑤步
既然reFlutter重打包的ipa无法正常工作,
那就不管了。
signature看着是md5不麻烦,
直接dump出dart文件。
先看看函数名和偏移~说干就干!
Mac打开活动监视器,手机USB连接Mac:
把dump.dart从手机scp下来分析函数
绝对地址和偏移~
搜索到md5、hash等关键字
最终筛出来_MD5Sink、updateHash、startChunkedConversion
用frida分别hook下看看
最终hook method: updateHash的入参发现明文的端倪~
明文: 排序后的k+v+salt 进行标准的md5加密
8
总结
本文旨在踩坑记录,大佬轻喷~
文中有错误的地方,还请各位大佬斧正~
撒花~ ✿✿ヽ(°▽°)ノ✿下次再会。
原文始发于微信公众号(逆向与爬虫的故事):【iOS-Flutter逆向】**岛之踩坑记录篇
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论