#
模拟器选择#
1. 逍遥模拟器(以弃用)
// 原因是因为做好环境之后开机总是提示你重新修复环境。
2. 雷电模拟器(现用)
// 有一个问题就是 4.0 的雷电模拟器挂了 WIFI 代理之后失效,需要使用 ADB 增加代理或者使用 profile 之类的软件进行中转代理。
版本的选择#
1. 很多 APP 现已经不支持 7.0 系统一下,所以尽量安装 7.0 的安卓模拟器。
2.7.0 安装 XP 框架较为麻烦,需要找到对应的包,因此使用一键安装 XP 框架解决。
证书配置#
按照网上那些老掉牙的文章,都是导出一个 Burp/Charles 证书之后,adb push 到模拟器,然后修改后缀为 crt 直接安全,这种方式在 Android 6 及之前的版本可用,从 Android 7.0 开始,Android 更改了信任用户安装的证书的默认行为,应用程序仅信任系统级 CA。这样就导致安装证书后,如果尝试通过 Burp 或者 Charlse 代理访问 https 网站,系统会提示 “该证书并非来自可信的授权中心”:
因为安卓安全机制的原因,7.0 以上的系统,安装 BURP 证书需要打到系统信任里面,这里需要对 BURP 的证书做一些设置,如下:
导出 Burp 的证书后,使用 openssl 来做一些改动:
openssl x509 -inform DER -in cacert.der -out cacert.pem
查看 pem 证书的 hash 值并记录,命令如下:
openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1
将 pem 证书改名为 “hash 值.0”:
mv cacert.pem 9a5ba575.0
然后使用 adb 将.0 文件 push 到模拟器的 /system/etc/security/ 文件夹中,并将权限修改为 644:
adb push 9a5ba575.0 /system/etc/security/cacerts
adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0
如果更改不了权限,就使用 adb remount 来解除分区限制后导入,如下:
最后能看到信任证书在系统里面即可。
安装 Xpoesd 框架#
之前提到了,安装很有问题,所以借用别人的经验采取一键安装。
Xposed_Android_7x64.exe
此文件适用于 64 位模拟器,系统为 Android7 的版本,不适用于夜神,请勿使用。
放在模拟器根目录执行,等待重启即可。
绕过双向验证#
有的时候因为 app 会对服务器端的证书进行校验,这时候我们前面安装的 burp 就不起作用了,应用在发现证书是伪造的情况下拒绝发送请求。根据这个报错 + 抓不到包,我们可以确定应用是存在单向校验的,也就是 SSL pinning, 让我们先来解决 SSL pinning 的问题。使用 JustTrustMe 可以绕过客户端的证书校验,下面勾选上 JustTrustMe, 在 Xposed 框架下使用 JustTrustMe 绕过 SSL pinning。
雷电模拟器增加代理#
之前提到过,要么使用中转配置,要么使用 ADB 我这里增加的 ADB 配置。
添加代理
adb shell settings put global http_proxy 192.168.2.84:8080
移除代理
adb shell settings delete global http_proxy&adb shell settings delete global global_http_proxy_host&adb shell settings delete global global_http_proxy_port
或者没有 delete 命令时
adb shell settings put global http_proxy :0
暂时只记录这么多吧。