模拟器桥接模式下 WLAN 无法连接

查看 IP 地址,可使用 ipconfig,不过以下方式查看到的信息较为详细:

控制面板 → 网络和 Internet → 网络和共享中心:

点击进入即会出现以下内容: 

开启网络桥接模式后,选择静态 IP,对照着以上内容逐个填入: 

但是这时候连接 WIFI 会一直显示正在获取 IP 地址...,然后漫长的等待后显示 IP 配置失败: 

将代理改为手动,代理服务器主机名为 IP 地址,服务器端口为 Fiddler 中设置的:

 

IP 设置改为静态,然后输入对应的 IP地址、网关、DNS,不要输错:

成功连接上: 

 成功获取到 IP 地址,之前显示 IP 配置失败时,这里显示为无:

安卓 7.0+ 无法抓包 HTTPS

将 Fiddler 证书写入到系统证书中 

        若未安装 fiddler 安全证书,会导致无法访问网站及不能抓取网站信息,正常来说网址栏输入 IP 地址: fiddler 端口即可下载证书,但是通过浏览器安装的证书为用户证书,Android 7.0+ 的版本新增了证书验证,即 app 内不再像原来一样默认信任用户的证书,就算安装了证书也不会生效,只有系统证书才能通过验证,也不能将 Fiddler 导出的安全证书直接装到模拟器中:

查看模拟器本机版本为 Android 7.1.2:

从 fiddler 中将证书导出到桌面:

开启模拟器 Root (模拟器设置 → 基础),证书必须为 pem 格式,所以通过 OpenSSL 将 cer 证书格式转换为 pem:

openssl x509 -inform der -in FiddlerRoot.cer -out fiddler.pem

通过 openssl 使用 MD5 计算证书 hash 值: 

openssl x509 -subject_hash_old -in fiddler.pem

上图箭头所指位置 e5c3944b 即为密钥值,红框内为 pem 文件内容,将 pem 文件名称和后缀修改为 e5c3944b.0 文件,即系统证书文件格式:

ren fiddler.pem e5c3944b.0

默认情况下 '/system' 部分是只读模式的,'adb remount' 将 '/system' 部分置于可写入的模式,这个命令只适用于已被 root 的设备(所以前面会要求开启模拟器 Root),所以在 push 前要输入以下命令转换模式,否则直接 push 会报错提示 couldn't create file: Read-only file system:

adb remount

最后 push 传进模拟器,找到系统证书目录路径: /system/etc/security/cacerts,即将 fiddler 安全证书装到了模拟器系统证书下,注意 → e5c3944b.0 后面有个空格

adb push e5c3944b.0 /system/etc/security/cacerts/

成功装入到系统证书中:

  

 

Xposed 框架 + JustTrsutMe

        SSL Pinning 是一种防止中间人攻击(MITM)的技术,主要机制是在客户端发起请求,收到服务器发来的证书进行校验,判断证书是否开启了代理,如果开启了代理,APP 中的数据流量就不会通过代理端口,我们就抓取不到数据包了,例如 Fiddler 就是一种中间人攻击代理,抓包后只能看到一堆 Tunnel to 443,突破 SSL Pinning 可以用到 Xposed 框架和 JustTrustMe 绕过验证,Xposed 推荐直接通过模拟器应用商店下载,下载后安装框架重启模拟器即可,JustTrsutMe 模块可以去我的资源中找到下载,只需要将 JustTrsutMe.apk 拖入模拟器即可,以下为激活成功:

点击右上角三个横杠,选择模块,然后勾选之前导入的 JustTrustMe 模块即可:

检测模拟器连接(切到模拟器路径的 Nox\bin),看 Fiddler 是否连接上,未连接上则进行下一步:

adb devices

连接:

adb connect IP地址:端口号

检查端口是否被占用:

netstat -aon|findstr "端口号"

查看进程被占用情况:

tasklist|findstr "进程号"

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐