vmos + charles https 应用抓包

背景

  1. 安卓新版(android 7.0 以上)应用里面,https 的抓包,需要突破 ssl 限制。
  2. 要突破 ssl 限制又需要 hook ,hook 常用 xposed , xposed 插件有 justtrustme 。(在 低版本 android 7.0 以下的安卓系统上 抓 https 包的话,就不用往下看啦 )
  3. 要装 xposed , 需要 root (费事费手机)或者 用安卓模拟器(部分应用不支持模拟器架构) 或者用类似 visualxposed 的环境(很多应用不能启动)。
  4. 要 root 就要折腾手机,我的一个手机已变砖了(就是多装了一个被列会黑名单的 xposed 插件,手贱。。)。

抓包成本有点大。

发现有一个在安卓系统之上的 虚拟安卓系统 VMOS 。非常的简单好用,可以避免以上麻烦,可以一劳永逸。

下面以 vmos + charles 抓 https 包为案例,简单说下方法。(有很多没试通的方法,我直接跳过不介绍,只讲能走通的。)

vmos 安装

访问 http://www.vmos.cn/

xposed 安装

启动 vmos , 桌面查找 “必备应用” ,选择 xposed install , 即可完成安装

justtrustme 安装

桌面查找 “必备应用” ,选择 xposed install - 下载 - 搜索 justtrustme ,安装之。
装完之后需要重启 vmos 。在主界面点击浮动按钮,关闭 vmos。
然后再打开 vmos 程序。

charles 安装

百度自己操作系统的安装 charles 方式。
启动 charles ,必须设置代理 支持 ssl 。 具体看网络教程。

adb 连接到 vmos

这里的目的是用 adb 命令启动 vmos 的网络设置界面,然后设置 http 代理。

adb 不知道是啥东西?请百度 “adb 的安装”

这里假设你已安装好 adb 。
vmos 只支持网络 adb 连接。不能通过宿主手机的 usb 连接到 vmos。

  1. 找到 vmos 主屏右下角的设置 — 其他设置 — 网络 adb (记录 ip+端口)
  2. 在和手机同个局域网下,电脑上使用命令 adb connect ip+端口
    比如
 adb connect 192.168.1.101:5666
  1. 连接成功之后,输入 adb device ,查看是否有检测到设备。

charles 证书安装到 vmos

  1. 设置手机的http代理。 在 vmos 打开并 adb 已连接的状态下,电脑终端输入
adb shell am start -a android.intent.action.MAIN -n  com.android.settings/.wifi.WifiSettings
  1. 在手机上的 vmos 可以看到 wifi 选项,长按 wifi ,修改网络,高级设置,然后把电脑的 ip 和代理端口输入进去 (在 charles 设置里面查看 代理端口,一般默认是 8888 )
  2. 点 charles 的帮助
    然后在 vmos 的浏览器里面 (就是 vmos 主界面底部菜单正中央的应用),输入 http://charlesproxy/getssl
  3. 访问时就会开始下载。如果下载并安装成功,那就跳过后面的第5步描述。我这里会提示下载失败,但是在 charles 里面该请求的截包已截到,在该请求的 response 里面可以看到证书内容。
  4. 把 charles 抓包看到的证书 response 内容复制下来,编辑成电脑上的本地文件保存文件名为 a.crv ,并用本地的 http 服务,得到本地下载路径。再到 vmos 的浏览器里面,访问该本地路径。这个时候就可以下载成功啦。
  5. 按照安装提示完成安装。
  6. 不出意外,现在就可以截到 https 包啦。

你可能感兴趣的:(android)