Charles初体验
背景:
谈起HTTP调试代理工具, 很多人第一反应就会提到Fiddler. 可惜Fiddler由C#编写, 对Mac电脑的支持并不友好(存在Mac版Fiddler--mono fiddler, 不过不受推崇).
那Mac电脑的使用者, 如何使用HTTP调试工具呢?
一. 借用虚拟机安装windows系统.
二. 寻找Fiddler在Mac电脑中的替代品.
本文谈谈第二种思路--Charles, 并介绍其的安装和配置, 并拦截一个具体的案例来验证.
Charles简介:
Charles是类似于Fiddler的HTTP调试代理工具, 其是由Java编写的, 因此其跨平台性备受推荐.
Charles安装:
Charles的官网如下: http://www.charlesproxy.com/.
安装过程相对简单, 不过在首次使用时, 往往遇到依赖 Java 6版本的问题.
习惯windows的朋友, 肯定会疑惑: 安装了更高版本的JDK, 为何还会向下依赖低版本的JDK呢?
这个问题, 不光Charles使用时会遇到, 很多其他软件也会出现类似的场景.
所幸的是, 解决方案是一致: Java for OS X.
Charles的配置:
Charles的可视化做得不错, 功能非常的直观.
其有两种模式: structure(按站点)和sequence(按时序).
不过重要的配置项, 大致如下:
1). 默认的http代理端口
菜单子目录导航: Proxy->Proxy Settings
2). 激活https代理
菜单子目录导航: Proxy->SSL Proxying Settings
3). 访问控制(允许远程访问)
菜单子目录导航: Proxy->Access Control Settings
正如其描述的, 如果在局域网内, 则设定子网IP/掩码. 当然也可以泛用0.0.0.0/0表示接受一切远程连接.
4). 请求过滤
请求过滤这个功能, 非常的常用.
a) Focused Host来配置
菜单子目录导航: View->Focussed Hosts
其并非真正的过滤, 而是把未满足规则的请求单独归为一类.
b) Record Settings来配置
菜单子目录导航: Proxy->Recording Settings
若要具体的了解其其他配置项, 建议查阅<<iOS开发工具——网络封包分析工具Charles>>和<<charles使用教程指南>>, 毕竟是工具, 遇到问题在调研其功能和设置, 是完全来得及的.
移动端App Http拦截:
对于移动端App的拦截, 只需配置Http代理即可. 大前提是, 无论是手机真机, 还是模拟器, 其和Http代理服务器能互相直连即可.
如果因各种原因直连不通, 可以借助PC电脑构建一个wifi热点(Mac电脑如何共享WIFI热点). 手机选择该wifi热点, 并在其下配置代理即可.
案列:
Charles除了用于拦截移动端App的网络协议外. 也可以用其web app, 比如webgame.
我们以QZone平台的开心农场为例, 配置好浏览器的Http代理.
• 场景模拟:
当我们去点击并查阅背包里面的种子时:
则我们可以在charles中, 拦截到如下请求:
1 | http: //farm .qzone.qq.com /cgi-bin/cgi_farm_getuserseed ?mod=repertory&act=getUserSeed&g_tk=1612545087 |
其返回的结果如下:
柚子数刚好是2个, 数据和图中的数据是吻合的.
Charles这类http debugger proxy工具, 为编写webgame的外挂提供了技术分析的基础. 当然魔高一丈, 道高一尺.
一定要把技术用于正义的一面, 切记, 切记, ^_^.
总结:
本篇只是记流水账式的写下, 权当笔记. 但Charles的用途特别大, 以后使用的机会也特别多, 因此会持续关注之.
公众号&游戏站点:
个人微信公众号: 木目的H5游戏世界
个人游戏作品集站点(尚在建设中...): www.mmxfgame.com, 也可直接ip访问: http://120.26.221.54/.
posted on 2016-01-13 17:42 mumuxinfei 阅读(527) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构