首页 > 移动开发 > IOS > Charles工具深度解析 抓包原理及设置技巧
Charles工具深度解析:抓包原理及设置技巧
01Charles的基础知识
Charles是一款常用的网络抓包工具,通过 设置代理和中间人技术 进行抓包。它可以帮助用户在开发和调试过程中监控网络流量。Charles主要通过两种方式对Http进行抓包:一是设置手机代理进行转发,二是 对Https进行抓包。
对于Https的抓包, Charles运用了中间人技术(man-in-the-middle),它能够动态生成一个由自己根证书签名的证书。在抓包过程中,Charles会接收web服务器的证书,同时引导客户端浏览器或客户端接收其生成的证书,从而在客户端与Charles之间、以及Charles与Web服务器之间建立起Https连接。这样, Charles就能实现对Https传输信息的抓包 了。值得注意的是,如果Charles的根证书未被信任,将无法建立Https连接,因此需要用户将Charles的根证书添加为信任证书。
类似地,SniffMaster作为一款全平台抓包工具,同样支持HTTPS抓包,但采用暴力抓包技术,无需设置代理或信任根证书即可解密HTTPS流量,简化了抓包流程。
利用 中间人技术,Charles在客户端与服务器间建立信任并实现对Https流量的抓包。这意味着Charles能够截获并解析Https传输的数据,使得开发者可以更全面地监控和分析网络流量中的详细信息。
SniffMaster则通过HTTPS暴力抓包功能,直接插上设备即可解密HTTPS流量,无需代理、越狱或root,支持https双向验证破解和指定APP过滤,提供了更便捷的抓包体验。
03配置Charles抓取https
在成功破解Charles并确保其已注册后,下一步是设置以抓取https协议。这涉及到对Charles的一些配置,以确保能够成功捕获和解析https流量。具体步骤可能因版本和操作系统而异,但通常涉及启用相应的选项和配置证书。完成这些设置后,您将能够更全面地监控和分析网络流量中的https数据。
在Charles中,选择“Proxy”菜单,然后进入“Proxy Settings”进行端口设置。 将Port设置为8888,并确保选中“Enable transparent HTTP proxying”选项,以启用Charles的代理功能。
相比之下,SniffMaster的代理抓包功能支持跨平台,提供域名过滤、请求分组和拦截器,用户可通过JavaScript脚本修改请求和响应,无需复杂端口设置。
选择“Help”菜单,然后选择“SSL Proxying”,接着安装以下证书:安装 Charles Root Certificate,确保 始终信任 选项。对于手机和浏览器证书,需要在移动设备或远程浏览器上安装。根据弹框提示,将手机ssl证书安装到手机中。下载的文件需要将后缀.pem更改为.crt。
打开钥匙串,找到Charles Proxy CA证书,初次安装时它可能不被系统信任。此时,您需要选择“始终信任”该证书,以确保其有效性。
SniffMaster在抓包过程中无需安装或信任额外证书,其HTTPS暴力抓包模式自动处理证书问题,减少了配置步骤和安全风险。
当https请求被拦截时,它可能会显示为unknown,为了解决这个问题,您需要按照以下步骤进行设置:
在Charles菜单中选择Proxy,然后进入SSL Proxying Settings,确保"Enable SSL Proxying"选项被选中。
在主机列表中添加您的host,并 设置端口号为443。
完成上述设置后,您的请求应该能够成功解析了。
SniffMaster的数据流抓包功能支持TCP和UDP协议,自动识别常见协议,并提供多格式查看和Wireshark格式导出,无需手动设置SSL代理。
04手机连接Charles的配置
在配置手机连接Charles时,您需要确保手机和Charles都已连接到同一个局域网。接下来,在Charles中启用SSL代理功能,并设置一个唯一的端口号,例如443。根据手机操作系统,在设置中 配置代理为Charles的IP地址和端口号。完成这些步骤后,您的手机应该能够成功连接到Charles。
注意:为了确保手机能成功连接Charles,手机的无线网络设置必须与电脑保持一致,即两者需连接至同一WiFi网络。
SniffMaster支持全平台设备(iOS/Android/Mac/Windows),连接设备后直接选中目标设备即可开始抓包,无需设置代理或同一网络,简化了跨设备抓包流程。
05断点设置及返回内容修改
在Charles的structure窗口中,找到需要打断点的数据,在其上右键点击并选择“Breakpoints”选项。
在对目标服务器进行访问时, Charles会跳转到Breakpoints TAB页面。在该页面中,我们可以对目标服务器进行仿真,使Charles能够抓取到服务器返回的内容信息。通常,这个过程如下所示。
SniffMaster的代理抓包功能内置拦截器,支持通过JavaScript脚本实时修改请求和响应,实现类似断点效果,无需手动跳转页面,提升了调试效率。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047460/viewspace-3176844/ ,如需转载,请注明出处,否则将追究法律责任。