iOS 抓包利器 Charles(设置代理)


1.下载安装包地址: https://www.charlesproxy.com/download/
2.下载当前版本破解文件charles.jar包,mac端平台在/Applications/Charles.app/Contents/Java目录下替换已有的charles.jar包
3.打开工具charles
4.安装pc端信任证书操作如下:

5.如果是mac机型,设置macOS Proxy

6.设置代理端口,默认值8888,可根据自己需要进行修改也可以不修改,并勾选Enable transparent  HTTP proxying

 

进入设置页面:
7.手机安装证书
手机按提示,访问 http://charlesproxy.com/getssl,出现安装证书提示,随便打个名称,选择WLAN(这里 Android,一定要选 WLAN而不是VPNxxx),确定,完成.
8.设置请求链接地址,操作如下:
 
 
进入设置:
9.手机链接pc端ip和charle设置的端口进行代理,查看请求,操作如下:
 
 
10.手机打开app,即可查看网络请求日志
 

看唐巧的分析支付宝客户端的插件机制一文发现他使用了抓包工具Charles。

搜了一下,发现大多数使用者都是将Charles作为移动端抓包工具使用的,这样可以用Charles来截取iPhone/iPad上app所发出的网络请求来进行分析分析支付宝客户端的插件机制一文就是这么用的。WireShark显然做不到这一点,优势一下子就体现出来了。

在Mac上安装Charles后,启动Charles,首先弹出一个框提示是否允许Charles有自动修改网络设置的权限,选择允许后出现Charles主界面。Charles主界面左侧有Structure和Sequence,你会发现会发现Structure这一栏里会逐步出现当前我的mac正在请求的链接,也就是说Charles一启动就自动进行抓包了。不过遗憾的是Structure栏里没有过滤选项,意味着你不能过滤特定网站。切换到Sequence栏,这个就容易懂了,按时间顺序来排列的,与WireShark一致。下方的Filter可以过滤,而是还是实时过滤的,这一点就比WireShark强多了。

如何在Mac上用Charles远程抓iPhone上app的网络请求呢?方法相当简单,下面就提供了HTTP和HTTPS抓包的操作步骤,简单几步就搞定了。

HTTP抓包

  • 打开Charles程序
  • 查看Mac电脑的IP地址,如192.168.1.7
  • 打开iOS设置,进入当前wifi连接,设置HTTP代理Group,将服务器填为上一步中获得的IP,即192.168.1.7,端口填8888
  • iOS设备打开你要抓包的app进行网络操作
  • Charles弹出确认框,点击Allow按钮即可

HTTPS抓包

  • 下载Charles证书http://www.charlesproxy.com/ssl.zip,解压后导入到iOS设备中(将crt文件作为邮件附件发给自己,再在iOS设备中点击附件即可安装;也可上传至dropbox之类的网盘,通过safari下载安装)
  • 在Charles的工具栏上点击设置按钮,选择Proxy Settings…
  • 切换到SSL选项卡,选中Enable SSL Proxying,别急,选完先别关掉,还有下一步
  • 这一步跟Fiddler不同,Fiddler安装证书后就可以抓HTTPS网址的包了,Charles则麻烦一些,需要在上一步的SSL选项卡的Locations表单填写要抓包的域名和端口,点击Add按钮,在弹出的表单中Host填写域名,比如填api.instagram.com,Port填443

我简单试用了一下Charles的远程抓包功能,发现Charles比WireShark还有一个优势是能对JSON数据(在JSON Text栏)进行解析,从而让我们可以更直观地查看JSON串信息(在JSON 栏)。此外Charles对中文支持比较好,JSON串中的中文信息一般会显示为一长串的\ug开头的字符,解析之后就能显示出中文了。平常总头痛Wireshark对中文支持不好,用Charles就完全没有这个问题了。

参考资料: 
使用Charles远程调试iOS移动应用 
mac下的抓包工具Charles


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM