Charles(Windows/Android)入门使用
一. 介绍以及下载(windows)
Charles是一个HTTP代理/HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间所有HTTP和SSL/HTTPS流量,这包括请求,响应和HTTP标头(包含cookies和缓存信息)。下载地址
Charles 主要功能
- 支持截取HTTP与HTTPS的网络封包;
- 支持重发请求,方便后端调试;
- 支持修改网络请求参数;
- 支持网络请求截获并动态修改;
- 支持模拟弱网络环境测试。
So 允许我来讲一个主要功能的第一点,也是调试程序最基本最常用的一点(个人见解,勿喷); 接下来就开始看正文。
二. 安装及破解
- 安装还是比较简单的 访问官网 点击DOWNLOAD 一顿行云流水操作,就安装完成。
- 为什么要破解呢,Charles是一个收费软件,如果不破解的话打开应用后一次最多使用30分钟;当然这样的结果不是我们想要的 so 就需要一些特殊手段;
2.1 破解的话 就是需要在网站上下载 charles.jar 文件替换掉 安装包内的此文件 破解文件下载地址
2.2 下载完成后在Charles安装目录下的lib目录 找到之前的 Charles.jar 把新的覆盖粘贴进去 破解完成(未破解的Charles 只能使用半小时 半小时后程序闪退)
三. 下载证书
- 下载pc证书,打开Charles 点击Help--SSL Proxying --Install CharlesRoot Certificate 点击后会出现一个下载证书的页面
点击安装证书--当前用户--存储到受信任的根证书颁发机构
安装android证书 (小米手机为例) 电脑执行以下操作
3.1 电脑打开 chls.pro/ssl 网址下载charles-proxy-ssl-proxying-certificate .pem
文件;然后使用usb传输文件方式下载到手机内;点击设置--WiFi--高级设置--安装证书--找到刚才下载的证书进行安装;
3.2 这是题外话,为什么查看blog有的文章说,手机浏览器访问 chls.pro/ssl 也能下载证书,我们却用pc下载再拉入手机呢;原因就是小米手机网站下载的是文件后缀为.crt的证书,在安装的时候小米识别不了,无法安装;在pc下载的是.pem后缀。
- 注意点:1. Android机型在7.0及以上版本,不再信任基于用户的CA证书,刚好咱们下载的这个证书就是基于用户的CA证书,so 关于小程序或者H5页面无法抓取请求,当然也是有解决的办法,下面就不赘述了 给个地址有兴趣可自行查看;
4.1 这第一种方式需要公司Android大佬的配合,就是要Android在配置文件里加一个类似与CA集,信任用户安装的证书;
4.2 第二种的解决方案思路则是先把证书下载到手机内部,然后将手机权限(root),强制将用户证书转为系统证书;
四. 设置代理端口以及过滤请求
- 回到pc 设置Charles代理服务器的端口 点击proxy -- proxySetting--设置端口 并启动
- 启用http代理,设置可以抓取的请求;(这里没有过滤使用了通配符;稍后说一个简单的过滤方法。)
五. 开始抓包
- 首先保证Android手机与PC同处于一个局域网之下(一个WiFi) 然后PC执行cmd命令
ipconfig
查看本机ip
- 手机链接WiFi设置代理 ip就是与PC相同的ip 端口就是刚刚咱们设置的端口;进入WiFi查看详情,选择代理改为手动,输入上图的ip,端口就是刚才咱们设置的端口8888;
- 看效果(下图中包含一次性过滤请求的方法,比较简单方便)
3.1 使用方法:如果以上配置都已经完成,就可以打开Charles 一边“玩手机”一边工作了;Charles会记录下来你在手机做的操作(每个网络请求);然后根据相应的信息分析或者调试;
Charles(Windows/Android)入门使用的更多相关文章
- Android Studio2.0 教程从入门到精通Windows版 - 入门篇
http://www.open-open.com/lib/view/open1468121363300.html 本文转自:深度开源(open-open.com)原文标题:Android Studio ...
- 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建
Xamarin.Android 入门之:Xamarin+vs2015 环境搭建 一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客 ...
- 小猪的Android入门之路 Day 7 part 2
小猪的Android入门之路 Day 7 part 2 Android的数据存储与訪问之--SharedPreferences(保存偏好參数) ---转载请注明出处:coder-pig 本节引言: 在 ...
- 小猪的Android入门之路 day 1
小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显 ...
- Android入门第一课之Java基础
通知:由于本周六场地申请没通过,所以本周的培训临时取消. 今天给大家带来的是Android入门的第一课,由于教室申请的不确定性,因此,每次培训的内容都会在博客先提前释放出来.首先Android的APP ...
- 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity
问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...
- Android精通教程-第一节Android入门简介
前言 大家好,给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease to be ...
- UniMelb Comp30022 IT Project (Capstone) - 1.Android入门
1. Android入门 Android系统架构 Android系统:四层架构.五块区域 1. Linux内核层 Linux Kernel:为Android设备的硬件提供了底层驱动 2. 系统运行库层 ...
- Android入门教程(一)
Android是什么? Android是基于Linux开发性内核的操作系统,该平台由操作系统,中间件,用户界面和应用软件组成.Android的基本信息:软件类型,APK,发行商:Google,最早版本 ...
- Android精通教程-Android入门简介
前言 大家好,我是 Vic,今天给大家带来Android精通教程-Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease ...
随机推荐
- 深入解析Hyperledger Fabric启动的全过程
在这篇文章中,使用fabric-samples/first-network中的文件进行fabric网络(solo类型的网络)启动全过程的解析.如有错误欢迎批评指正. 至于Fabric网络的搭建这里不再 ...
- 8天入门docker系列 —— 第七天 让你的container实现跨主机访问
当你有若干个容器之后,你可能就希望实现容器的跨机部署访问了,比如aspnetcore在一台host上,mysql在另外一个host上,如果要实现这样的功能,需要你借助 docker自带的overlay ...
- smarty 截取字符串
在视图中使用smarty来截取字符串的方法: {$array|truncate:15:"...":true} php:控制器中 $index['content ...
- 走进python
python史 1.python之父 Guido van Rossum 2.python的优缺点 优点:开发效率高,可跨平台,可嵌入,可扩展,优雅简洁 缺点:运行稍慢,代码不能加密,不能实现真正的多线 ...
- 基于C#的机器学习--旅行推销员问题
我们有一个必须在n个城市之间旅行的推销员.他不在乎什么顺序.他最先或最后访问的城市除外.他唯一关心的是他会去拜访每一个人,每个城市只有一次,最后一站是他得家. 每个城市都是一个节点,每个节点通过一条边 ...
- Python 的8个关键要素
1.数据类型 2.对象引用 3.组合数据类型 4.逻辑操作符 5.控制流语句 6.算术操作符 7.输入/输出 8.函数的创建与调用
- python3+pyQt5+QtDesignner实现窗口化猜数字游戏
描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击“确定”,然后后台会自动生成 ...
- C++学习书籍推荐《Inside the C++ Object Model》下载
百度云及其他网盘下载地址:点我 作者简介 Stanley B. Lippman is Architect with the Visual C++ development team at Microso ...
- 剑指offer第二版-3.数组中重复的数
面试题3:数组中重复的数 题目要求: 在一个长度为n的数组中,所有数字的取值范围都在[0,n-1],但不知道有几个数字重复或重复几次,找出其中任意一个重复的数字. 解法比较: /** * Copyri ...
- 微信小程序开发--组件(3)
一.radio <radio-group class="radio-group" bindchange="radioChange"> <lab ...