测试环境搭建:ADB配置、Root设备与模拟器、Frida环境、Burp Suite代理设置

做移动安全测试,环境搭建是第一步,也是最容易踩坑的一步。我见过太多人卡在环境配置上,还没开始测就放弃了。说白了,工具链没搭好,后面全是白搭。今天我就把这几块内容掰开揉碎了讲清楚。

核心要点:测试环境搭建的四个支柱——ADB通信、设备权限、动态插桩、流量拦截。缺一个,你的测试能力就瘸一条腿。

1. ADB配置:Android调试桥的完整搭建

ADB是Android Debug Bridge的缩写,它是你与Android设备通信的桥梁。我个人习惯把ADB比作「手机和电脑之间的电话线」——没有它,你什么都干不了。

安装步骤:

  1. 下载Android SDK Platform Tools(官方地址即可)
  2. 解压到本地目录,比如 C:\adb/usr/local/adb
  3. 将目录添加到系统环境变量PATH中
  4. 打开终端,输入 adb version 验证安装

我在项目中遇到过一个问题:明明装了ADB,但就是识别不到设备。后来发现是驱动没装好。Windows用户记得装一下手机厂商的USB驱动,或者直接用通用驱动。

小技巧:adb devices -l 可以查看设备的详细信息,包括型号和状态。如果显示 unauthorized,记得在手机上确认USB调试授权。

常用ADB命令速查:

命令 用途
adb devices 列出已连接的设备
adb install app.apk 安装应用
adb uninstall package.name 卸载应用
adb shell 进入设备shell
adb logcat 查看日志
adb push/pull 文件传输

2. Root设备与模拟器:权限是安全测试的入场券

为什么要Root?你想想看,很多安全测试需要读取 /data/data/ 目录下的应用私有数据,没有Root权限,你连看都看不到。说白了,Root就是给你一把万能钥匙。

真机Root方案:

  • Magisk: 目前最主流的方案,支持系统less Root,可以隐藏Root状态
  • SuperSU: 老牌方案,适合旧版本Android
  • KernelSU: 内核级Root,更隐蔽,但支持的机型有限

我曾经用一台旧Pixel手机刷了Magisk,结果刷完发现WiFi打不开了。嗯,这里要注意:刷机前一定要备份原厂镜像,不然哭都来不及。

模拟器方案:

如果你没有真机,或者不想折腾刷机,模拟器是个不错的选择。我个人推荐以下几种:

  • Android Studio自带模拟器: 官方出品,支持快照,可以随时回滚状态
  • Genymotion: 性能好,自带Root,适合快速测试
  • MuMu / 雷电模拟器: 国产模拟器,兼容性好,适合跑普通应用

警告:模拟器虽然方便,但很多恶意应用会检测模拟器环境并隐藏行为。真机测试仍然是不可替代的。

3. Frida环境:动态插桩的瑞士军刀

Frida是什么?说白了,它让你能在应用运行时动态修改代码逻辑。不需要重打包,不需要反编译,直接hook函数,改返回值,看参数。我在做金融类App测试时,经常用Frida绕过SSL Pinning,或者修改加密函数的输入输出。

安装Frida:

# 安装Frida工具(电脑端)
pip install frida-tools

# 下载frida-server(手机端)
# 注意版本必须和电脑端一致
# 从 https://github.com/frida/frida/releases 下载对应架构的版本

# 推送到手机并运行
adb push frida-server-xx.x-android-arm64 /data/local/tmp/
adb shell chmod 755 /data/local/tmp/frida-server-xx.x-android-arm64
adb shell /data/local/tmp/frida-server-xx.x-android-arm64 &

验证安装:

# 电脑端运行
frida-ps -U

# 如果看到进程列表,说明环境搭建成功

我记得有一次,frida-server版本和电脑端版本不一致,结果一直报 Failed to spawn 错误。折腾了半天才发现是版本号差了一个小版本。所以,版本匹配是铁律。

避坑指南:我曾经在Android 12上遇到frida-server无法启动的问题。解决方案是使用最新版Frida,或者用 --no-pause 参数启动。

4. Burp Suite代理设置:流量拦截的标配

Burp Suite是Web安全测试的标配,在移动端同样适用。你需要做的就是把手机的流量导向Burp,然后Burp就能看到所有的HTTP/HTTPS请求和响应。

设置步骤:

  1. 打开Burp Suite,进入 Proxy → Options,添加一个监听端口(比如8080)
  2. 勾选「Support invisible proxying」以支持非浏览器流量
  3. 手机连接和电脑同一个WiFi
  4. 手机WiFi设置中,修改代理为「手动」,填入电脑IP和Burp端口
  5. 用手机浏览器访问 http://burp,下载并安装CA证书

安装CA证书到系统信任区(需要Root):

# 将Burp导出的cacert.der转换为pem格式
openssl x509 -inform DER -in cacert.der -out cacert.pem

# 计算证书hash
subject_hash=$(openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1)

# 重命名并推送到系统证书目录
cp cacert.pem $subject_hash.0
adb push $subject_hash.0 /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/$subject_hash.0
adb reboot

注意:Android 7.0以上,系统只信任系统级CA证书。如果你没有Root,或者不想Root,可以用VirtualXposed + JustTrustMe模块来绕过SSL Pinning,但那是另一个话题了。

知识体系总览

下面这张图把整个测试环境搭建的脉络梳理清楚了。你可以把它当作一张地图,随时回来对照。

测试环境搭建 ADB配置 Root设备与模拟器 Frida环境 Burp Suite代理 驱动安装 环境变量 常用命令 Magisk / SuperSU 模拟器选择 刷机备份 frida-tools安装 frida-server推送 版本匹配 代理监听设置 CA证书安装 系统信任区 四个组件缺一不可,建议按顺序搭建

环境验证清单

搭建完成后,我建议你按这个清单逐项验证,确保每个环节都正常工作:

  • ADB: adb devices 能列出设备,状态为 device
  • Root: 在shell中执行 su 能切换到root用户
  • Frida: frida-ps -U 能列出手机进程
  • Burp: 手机浏览器访问 http://burp 能下载证书,且HTTPS流量能在Burp中看到

个人经验:我一般会先跑一个简单的测试——用Frida hook一个系统函数,比如 java.lang.System.currentTimeMillis(),看看返回值能不能被篡改。如果能,说明环境基本没问题。

环境搭建这块,说白了就是「工欲善其事,必先利其器」。花点时间把基础打牢,后面做测试的时候会顺畅很多。嗯,今天就先到这里,剩下的我们后面再聊。


公众号:蓝海资料掘金营,微信deep3321