本文参考:charles 抓包手机

charles经常会进行手机上的网页抓包,比如去copy别人网站图片或脚本的时候o(∩_∩)o ;

手机抓包的原理,和PC类似,手机依靠charles与服务端进行对话;

目标:把手机的网络委托给charles进行代理;

手机抓包设置,需要进行3步;

第一步,在charles里设置允许手机联网的权限;你需要把charles设置为允许的状态并且设置允许的端口号,这样手机端才能正常的接入;

第二步,把手机按照charles的IP和端口进行配置;

第三步,手机配对成功后,charles还会弹窗是否允许;(charles虽然开放了端口,但并不知道是那一台手机会配入,此窗口起到提示和安全防护的作用;)

上面的三步,有点类似HTTP的握手原理,双方都保证正常通信后,就可以愉快的玩耍了;

第一步:设置charles为允许状态,并设置好接入端口

在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口,但是需要记住这个段扩,因为这里设置的允许接入的端口,手机端配置的时候需要用到),并且勾上”Enable transparent HTTP proxying” 就完成了在Charles上的设置。如下图;

需要找到charles的本机IP;

点击HTLP -> local IP Address 可以看到当前的本机IP地址;

当然,你也可以在终端打开查看,比如window,cmd下;输入ipconfig可以查看本机的IP

此时我们可以看到,charles允许手机接入的IP和端口是 192.168.0.103:8888

此时如果你手工在浏览器输入 这个HOST会发现charles会提示一个窗口问你是否允许接入;

第二部:把手机按照charles的IP和端口进行配置

手机链接wifi,wifi的HTTP代理选择手动那项(安卓类似)

在iPhone的 “设置”->“无线局域网“中,可以看到当前连接的wifi名,通过点击右边的详情键,可以看到当前连接上的wifi的详细信息,包括IP地址,子网掩码等信息。在其最底部有“HTTP代理”一项,我们将其切换成手动,然后填上Charles运行所在的电脑的IP,以及端口号8888

第三步,手机配对成功后,charles弹窗询问是否允许

设置好之后,我们打开iPhone上的任意需要网络通讯的程序,就可以看到Charles弹出iPhone请求连接的确认菜单

如上图的弹窗,点击允许即可;此时已经配对成功,开始愉快的抓包吧;

比如此时,访问zhubangbang.com

就可以电脑上就抓到访问的资源了;

因为本站用的是SSL,所以如果您的charles没有配置过,是抓取不到HTTPS这种加密协议的内容的;

如果需要抓取HTTPS网站的资源,请查看 Charles的HTTPS抓包方法及原理

注意:需要明白一个可能存在的弊端,如果你把手机的上网相关事情委托给了charles,那么当charles出错或者没有开启的时候,此时手机必定没有办法正常上网;这个一定要了解,因为很多人把手机的IP委托给charles进行代理后,第二天早晨上本的时候,手机wifi会默认链接你常用的高清度wifi;而此时的wifi的设置里面可能已经委托给charles了,但是此时电脑刚没有开charles或者重启后ip变动等;造成charles无法正常使用;由此而导致了无法上网的问题;

注意charles此种捕获方式,只能捕获发出请求的资源,如果是APP里,内部的代码和资源,因为没有向服务器发情请求,所以这是抓不到的;

判断是不是调用内部资源,你可以把手机的网络给断了,如果此时还可以正常的显示,说明该资源是写在APP内部的,通过代理的方式是抓不到的;

代理的原理详见“抓包工具Charles的使用教程”里面的原理图介绍;
本文参考:https://www.axihe.com/

最新文章

  1. angularJS中的ui-router和ng-grid模块
  2. Atom插件推荐
  3. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
  4. fastReport 运行时设计报表 (mtm)
  5. Android 学习第11课,android 实现拨打电话的功能
  6. Linux命令详解之—cat命令
  7. 如何避免测试人员提交重复的Bug
  8. dev RichText高亮
  9. Linux下python升级步骤
  10. C# 常用日期类型转换帮助类
  11. Java实战之04JavaWeb-05事务和连接池
  12. MVC的发展
  13. 鼠标事件之鼠标滑过事件MOUSEOVER
  14. 【转】Android 定时器实现的几种方式和removeCallbacks失效问题详解--不错
  15. Palindrome Subarrays
  16. Linux之VI搜索相关命令
  17. iOS7控制中心会覆盖由下向上的手势
  18. Asp.Net Core 下 Newtonsoft.Json 转换字符串 null 替换成string.Empty
  19. vscode垂直选中列选中
  20. C++ 多目录多文件编译 技巧

热门文章

  1. PHP文件载入
  2. P3388 【模板】割点(割顶)&& 桥
  3. setTimeout 的理解
  4. LCT 总结
  5. ubuntu之路——day11.2 快速搭建系统并进行迭代、在不同的划分上进行训练和测试
  6. 【转】JDK5.0中JVM堆模型、GC垃圾收集详细解析
  7. 浅谈Linux环境下Socket选项的设置
  8. Nginx流控
  9. python 设计模式之组合模式Composite Pattern
  10. linux内核的0号进程是在哪里创建的?