ARM MacBook 中如何优雅的调试 Android APP
2024-3-8 11:35:27 Author: www.sqlsec.com(查看原文) 阅读量:9 收藏

理论上作为 ARM 架构的 MacBook 在运行 Android 系统的时候应该会更丝滑的,但是各大模拟器厂商一直都没有很好的适配做出对应的产品,直到今年年初的时候网易的 mumu 模拟器出了 mumu 模拟器 pro,专门针对苹果 M 芯片进行优化的专属模拟器,实际体验整体真的非常丝滑呀,国光测试效果比真机还棒。

理论上作为 ARM 架构的 MacBook 在运行 Android 系统的时候应该会更丝滑的,但是各大模拟器厂商一直都没有很好的适配做出对应的产品,直到今年年初的时候,网易的 mumu 模拟器出了 mumu 模拟器 pro,专门针对苹果 M 芯片进行优化的专属模拟器,实际体验整体真的非常丝滑呀,国光测试效果比真机还棒:

但是可能是目前这个 M芯片模拟器垄断的原因,这模拟器目前用户只能 7 天免费试用,也不支持买断制,只能按时间来付费:

但是目前这产品还是早期,破解版本民间也有流传:

关注公众号后,回复 mumu 即可获取破解版的下载链接。

磁盘模式

模拟器的硬盘切换成 可写系统盘 模式:

alt text

如果使用 adb devices 查看不到模拟器设备的话,我们可以手动开启一下 ADB:

alt text

这会开启一个局域网的 adb 连接,我们可以使用 connect 和 disconnect 连连接断开模拟器:

alt text

导入证书

然后 macOS 下将 burp 的 cacert.der 证书转换一下格式,然后导入到手机 system 证书文件夹下:

# cer 证书转为 pem 证书
openssl x509 -inform DER -in cacert.der -out cacert.pem

# 获取证书的 hash 值
hash=$(openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -n 1)

# 将 pem 证书改成 hash + .0 的格式
new_hash="${hash}.0"
mv cacert.pem "$new_hash"  

# 将证书直接放到系统证书文件夹下
adb push "$new_hash" /system/etc/security/cacerts/

抓包测试

BP 开启局域网监听,然后将模拟器的代理指向 BP 的监听端口:

alt text

找个开启 SSL 的网站抓包测试看看,成功抓包:

alt text

frida 测试

frida 官方项目的 releases 下截止目前最新的 arm 架构的 frida-server-16.2.1-android-arm64 包,然后使用 adb push 到模拟器里:

adb push frida-server-16.2.1-android-arm64 /data/local/tmp/

然后手机端直接运行 frida server,这里为了稳定建议模拟器里面安装个 Termux 终端模拟器。首先使用 su 命令申请并切换 root 权限:

alt text

然后手动给 frida server 执行权限并运行:

chmod +x /data/local/tmp/frida-server-16.2.1-android-arm64
/data/local/tmp/frida-server-16.2.1-android-arm64

alt text

使用 frida-ls-devices 查看模拟器的连接类型为 USB 类型,我们也可以正常与模拟器进行 hook 测试:

alt text

实战效果

经过几天的深度测试,在使用 frida baria 去调试一些流量加密的金融类的 APP 时候,比真机流畅多了,以后妈妈再也不用担心我挖不到 APP 的漏洞啦:

而且也可以直接调用 Macbook 或者 iPhone 的摄像头来进行人脸识别验证:

目前 MuMu模拟器Pro 除了目前无法安装 Magisk 面具以外,其他基本上是可以满足我们大部分的日常安全测试了,甚至某些方面比我的 OnePlus 6 真机还要丝滑流畅,总之是一个值得安装的模拟器。

如果模拟器安装面具的话,玩法还会更丰富一点,正好近期 mumu 模拟器更新后支持安装面具了,公众号留言里面也看到不少网友们求相关的教程,所以国光我这篇文章也就诞生了。

卸载残留

之前如果安装老版本的模拟器,或者 mumu 模拟器打开闪退的用户,建议使用 App Cleaner & Unistaller 卸载干净了,这样避免出现一些不好解决的玄学问题:

最终本文所使用演示是上次分享的 MuMu 模拟器 1.4.11 版本:

基本配置

首先在设置里面将模拟器设置为「可写系统盘」模式:

当然也要开启 root 权限:

Kitsune Mask

直接使用官方的面具我们大概率是无法直接安装成功的,所以这里使用 Kitsune Mask 这种第三方为模拟器适配的面具:

官网项目地址为:HuskyDG/magisk-files (github.com)

安装面具

Kitsune Mask 安装好直接使用「直接安装 (直接修改 /system)」方式即可:

安装完成后,因为模拟器里面的软件无法正常调用系统重启,这里安装好后如下图,我们手动重启一下模拟器:

修复异常

重启后发现提示 su 文件冲突了,我们需要手动修复一下异常:

其实原理很简单,使用 root 权限删除之前冲突的 su 相关文件即可,我们这里直接使用 adb 连接使用 root 身份操作:

adb connect 127.0.0.1:5555
adb shell
su

macOS 下如果没有 adb 命令的话,那么使用 brew 手动安装一下 adb 命令即可:

切换 root 权限后,我们手动将之前冲突的 su 相关文件直接备份一下:

mv /system/xbin/su /system/xbin/su.bak
mv /system/app/SuperUser/ /system/app/SuperUser-Bak/

备份后的效果如下:

最终效果

最终我们的 Magisk 不报错了:

各功能也正常使用,支持 root 权限管理以及工作模块的安装:

好了时间有限,具体国光就不再啰嗦了,感兴趣的师傅还不抓紧试试看。

本文可能实际上也没有啥技术含量,但是写起来还是比较浪费时间的,在这个喧嚣浮躁的时代,个人博客越来越没有人看了,写博客感觉一直是用爱发电的状态。如果你恰巧财力雄厚,感觉本文对你有所帮助的话,可以考虑打赏一下本文,用以维持高昂的服务器运营费用(域名费用、服务器费用、CDN费用等)

国光我还重写打赏页面 用以感谢 支持我的朋友,详情请看 打赏列表 | 国光


亲爱的读者们,在这个信息爆炸的时代,网络安全的重要性日益凸显,但同时,这个行业的挑战和误解也随之而来。作为一名网络安全的忠实守护者,我有幸在这个领域深耕多年,见证了无数技术的进步与变迁。

我始终坚信,知识的力量能够改变世界。因此,我用心制作了网络安全系列课程,不仅希望传授给大家宝贵的知识,更希望激发大家对网络安全的热爱和责任感。现在,我正准备推出第二期课程,并更新备受期待的内网安全教程,这是我对网络安全教育事业的承诺和热爱。

然而,正如大家所知,网络安全行业充满了不确定性和挑战。攻击门槛也在不断提高,即便是有 10 年经验的安全专家,有时也可能无法及时发现最新的漏洞,甚至在外人眼中,他们的努力和成就可能与实习生无异。但我相信,真正的价值和成就,是在于我们对知识的执着追求和对技术的不懈探索。

在完成这些课程后,我将暂时离开网络安全领域,转向其他行业。这不仅是一个艰难的决定,也是一个新的开始。但在此之前,我希望能够完成我的心愿,为大家带来更高质量的课程。

如果您对我的课程感兴趣,或者认同我对网络安全教育的执着和热情,请考虑购买我的课程,支持我的工作。您的支持不仅是对我努力的认可,更是对网络安全教育事业的一份贡献。

感谢每一位读者的陪伴和支持,让我们共同守护这个数字世界的安全!


文章来源: https://www.sqlsec.com/2024/03/mumu.html
如有侵权请联系:admin#unsafe.sh