charles抓包失败

不可思议mzj 2020-09-07 12:19:35
安卓手机上已经装了证书了,然后如果charles没配置ssl proxying setting,则网络正常,但抓不了https请求,把https请求相关的域名配置到 ssl proxying setting, 则直接网络都用不了(提示证书错误)。请问知道是为什么吗?
有人说是因为charles抓不到安卓7.0https请求,但是我用安卓6.0的手机试了也不行。
如果真是charles抓不了安卓7.0https请求,有什么最便捷的方式来修改吗?
...全文
15759 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
konglai 2020-12-28
  • 打赏
  • 举报
回复
这个问题,其实也没完美解决.我折腾了好久.
cnwjl 2020-12-22
  • 打赏
  • 举报
回复
学习了 charles抓包失败
RunningLike 2020-09-24
  • 打赏
  • 举报
回复
使用 virtualXposed 试试
夏成沙 2020-09-07
  • 打赏
  • 举报
回复
抓包失败可能有两个因素: 1. Android API 可以在网络链接时,要求 Proxy.NO_PROXY ,这个时候,使用 Charles (Mac OS), Fiddler (Windows) 都是不行的,是 Android 系统库直接不使用代理,所以抓不到; 2. 第二种是 网络链接限制,比如抓 HTTPS 的包,原始 客户端 和 服务器 使用了 双向 HTTPS 认证,那么 Charles 的 证书就无法使用,客户端 Android 系统会检测服务器证书,服务器也会检测客户端请求的证书,那么 Charles 作为中间证书就导致无法正确请求。 对于 1 的解决方式 是 使用 Droni 这个 Android APP,相当于 提供一个 本地VPN 方式,这样客户端的 NO_PROXY 就无效了。当然如果客户端 增加了 NO_VPN 的设置,也不行。 对于 2 是无解的,这种只能从其他角度来处理。有以下方式: 1. 如果是单向认证,就是 客户端验证服务器,而服务器不验证客户端,那么就可以在 Root 手机中,使用 xposed + just trustme 再配置抓包。 2. 如果是 双向内容,可以通过 xposed 等 Hook 方式,来获取网络的请求地址、日志打印等方式,来辅助获取,比如 Uri u = new Uri(" https://hman.info/ "); 这个语句,你可以通过 Xposed 来 Hook Uri / Url 的 构造。 这个 2 非常复杂,同时也是为什么 现在大部分的服务平台都要求 https 的原因,使用 HTTPS 双向认证,可以有效地保护网络内容。 3. 对于上述方式,都是从网络来入手,还有一种可以通过 反编译的方式,直接进行静态分析。如果是 加固的,那么 可以使用 真机 + Xposed + Fdex2 来试试脱壳导出,再用 dex2jar 和 jd-gui 来辅助反编译,看源码,静态分析网络请求。 总体来说,你太难了~,安卓程序员太难了~

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧