使用虚拟机打造调试环境
推荐使用虚拟机而不是真机,其原因有:
虚拟机可以创建快照虚拟机有良好的跨平台特性,可以随时将完整的学习和工作环境整体打包,在各种环境中进行部署和迁移。以 162.5 为例:
与Linux都是支持的,不过 mac 的话,是另一个产品系列:
总的来说,三大平台都是支持的,不过一般有 就足够了,一些其他的逆向工具,比如 IDA等都是 下好搞一些。
而且,最重要的是,几乎是免费的,因为它有免费的批量激活密钥,都不用破解,下图是我的激活效果:
虚拟机里面安装系统
我们需要编译 aosp,肯定要使用 系统,而且最好是 16.04 LTS。 也是一个使用比较广泛的发行版了,遇到问题也比较容易搜得到。
还有一个选择就是 Kali Linux,它自带 镜像版本。而且与师出同门,所以用它来编译 aosp 也是不错的。Kali Linux预装了许多渗透测试软件,包括、、、nmap 、以及 等,是一整套开箱即用的专业渗透测试工具箱。
Kali Linux最新版本的默认Shell是Zsh,Zsh虽然方便,但其并不兼容且不能运行诸多编译系统,我们应该回退到bash。
kali 整合打包地址:链接:
实用小工具PyEnv 切换 Frida 版本
Frida 版本非常多,升级很快,很多两三年前的代码已经无法跑在最新的Frida上,我们需要一种工具,可以在电脑上安装多个环境,顺便在每个 里都安装一个Frida,这样同时可以装上较老版本的Frida和最新版的Frida,自由切换。
上就有这样的工具:pyenv
通过命令行的切换,可以随时切换 版本,以及 对应的 pip 与 frida 版本。
pyenv 的安装看项目文档即可。
刷机
在手机硬件的考虑上,首先优选谷歌的“亲儿子”:Nexus和Pixel系列,我有一台 Pixel,可以考虑刷 8.1系统。
具体可以看这篇文章,没啥技术含量,照着搞就行了:
Frida开发环境
目前最新正确的Frida环境搭建方法:
git frida-agent-/npm (不要apt npm)使用等IDE打开此工程,在agent下编写,会有智能提示。npm run watch会监控代码修改自动编译生成js文件frida -U -f com.. --no-pause -I .js安装 frida-
想要使用基于特定frida版本的,只需先安装好特定版本的frida和frida- tools(的 里面有对应好的,不过似乎从 16.x 版本后开始 frida-tools 在另外一个仓库了???),再去的里找那个日期之后一点点的版本。
比如以frida 12.8.0版本举例:
pip install frida==12.8.0
pip install frida-tools==5.3.0
pip install objection==1.8.4
按照这个顺序,在装的时候,就会直接 , 不会再去下载新的frida来安装了。
如果先安装了 ,在安装时会自动的安装 frida 与 frida-tools。
Frida-自定义名称、端口与链接
frida-server -l 0.0.0.0:6666
// 地址可以使用 wifi adb 查看
frida-ps -H 192.168.1.102:6666
frida -H 192.168.1.102:6666 -f com.android.settings -l script.js
objection -N -h 192.168.1.102 -p 6666 -g com.android.settings explore
通过这种方式,不需要使用 adb,省略了一些步骤。
参考文档