一. 介绍以及下载(windows)

Charles是一个HTTP代理/HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间所有HTTP和SSL/HTTPS流量,这包括请求,响应和HTTP标头(包含cookies和缓存信息)。下载地址

Charles 主要功能

  1. 支持截取HTTP与HTTPS的网络封包;
  2. 支持重发请求,方便后端调试;
  3. 支持修改网络请求参数;
  4. 支持网络请求截获并动态修改;
  5. 支持模拟弱网络环境测试。

So 允许我来讲一个主要功能的第一点,也是调试程序最基本最常用的一点(个人见解,勿喷); 接下来就开始看正文。

二. 安装及破解
  1. 安装还是比较简单的 访问官网 点击DOWNLOAD 一顿行云流水操作,就安装完成。
  2. 为什么要破解呢,Charles是一个收费软件,如果不破解的话打开应用后一次最多使用30分钟;当然这样的结果不是我们想要的 so 就需要一些特殊手段;
    2.1 破解的话 就是需要在网站上下载 charles.jar 文件替换掉 安装包内的此文件 破解文件下载地址

    2.2 下载完成后在Charles安装目录下的lib目录 找到之前的 Charles.jar 把新的覆盖粘贴进去 破解完成(未破解的Charles 只能使用半小时 半小时后程序闪退)
三. 下载证书
  1. 下载pc证书,打开Charles 点击Help--SSL Proxying --Install CharlesRoot Certificate 点击后会出现一个下载证书的页面
  2. 点击安装证书--当前用户--存储到受信任的根证书颁发机构

  3. 安装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. 注意点:1. Android机型在7.0及以上版本,不再信任基于用户的CA证书,刚好咱们下载的这个证书就是基于用户的CA证书,so 关于小程序或者H5页面无法抓取请求,当然也是有解决的办法,下面就不赘述了 给个地址有兴趣可自行查看;
    4.1 这第一种方式需要公司Android大佬的配合,就是要Android在配置文件里加一个类似与CA集,信任用户安装的证书;
    4.2 第二种的解决方案思路则是先把证书下载到手机内部,然后将手机权限(root),强制将用户证书转为系统证书;
四. 设置代理端口以及过滤请求
  1. 回到pc 设置Charles代理服务器的端口 点击proxy -- proxySetting--设置端口 并启动
  2. 启用http代理,设置可以抓取的请求;(这里没有过滤使用了通配符;稍后说一个简单的过滤方法。)
五. 开始抓包
  1. 首先保证Android手机与PC同处于一个局域网之下(一个WiFi) 然后PC执行cmd命令 ipconfig 查看本机ip
  2. 手机链接WiFi设置代理 ip就是与PC相同的ip 端口就是刚刚咱们设置的端口;进入WiFi查看详情,选择代理改为手动,输入上图的ip,端口就是刚才咱们设置的端口8888;
  3. 看效果(下图中包含一次性过滤请求的方法,比较简单方便)

    3.1 使用方法:如果以上配置都已经完成,就可以打开Charles 一边“玩手机”一边工作了;Charles会记录下来你在手机做的操作(每个网络请求);然后根据相应的信息分析或者调试;

Charles(Windows/Android)入门使用的更多相关文章

  1. Android Studio2.0 教程从入门到精通Windows版 - 入门篇

    http://www.open-open.com/lib/view/open1468121363300.html 本文转自:深度开源(open-open.com)原文标题:Android Studio ...

  2. 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建

    Xamarin.Android 入门之:Xamarin+vs2015 环境搭建   一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客 ...

  3. 小猪的Android入门之路 Day 7 part 2

    小猪的Android入门之路 Day 7 part 2 Android的数据存储与訪问之--SharedPreferences(保存偏好參数) ---转载请注明出处:coder-pig 本节引言: 在 ...

  4. 小猪的Android入门之路 day 1

    小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显 ...

  5. Android入门第一课之Java基础

    通知:由于本周六场地申请没通过,所以本周的培训临时取消. 今天给大家带来的是Android入门的第一课,由于教室申请的不确定性,因此,每次培训的内容都会在博客先提前释放出来.首先Android的APP ...

  6. 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

  7. Android精通教程-第一节Android入门简介

    前言 大家好,给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease to be ...

  8. UniMelb Comp30022 IT Project (Capstone) - 1.Android入门

    1. Android入门 Android系统架构 Android系统:四层架构.五块区域 1. Linux内核层 Linux Kernel:为Android设备的硬件提供了底层驱动 2. 系统运行库层 ...

  9. Android入门教程(一)

    Android是什么? Android是基于Linux开发性内核的操作系统,该平台由操作系统,中间件,用户界面和应用软件组成.Android的基本信息:软件类型,APK,发行商:Google,最早版本 ...

  10. Android精通教程-Android入门简介

    前言 大家好,我是 Vic,今天给大家带来Android精通教程-Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease ...

随机推荐

  1. 使用Python终结“你是什么垃圾”的灵魂拷问!

    目录 0 引言 1 环境 2 需求分析 3 代码实现 4 后记 0 引言 纸巾再湿也是干垃圾?瓜子皮再干也是湿垃圾??最近大家都被垃圾分类折磨的不行,傻傻的你是否拎得清?

  2. Linux就该这么学---第一课 20190705

    要认真学习,认真完成作业,最主要是坚持,我感觉自己坚持这个能力欠缺,要主动改正. 还想说一句,以前我是20期学员,后面没有时间学习了,现在到22期了,我要坚持学习完成,坚持 坚持 坚持!!! 现在分享 ...

  3. Effective Java - 构造器私有、枚举和单例

    目录 饿汉式单例 静态常量 静态代码块 懒汉式单例 尝试加锁 同步代码块 双重检查 静态内部类单例 枚举单例 Singleton 是指仅仅被实例化一次的类.Singleton代表了无状态的对象像是方法 ...

  4. RabbitMQ windows 安装后 此时不应有 \RabbitMQ。

    在安装过程中,如果细心实际上在安装的细节显示starting Service后就已经提示这个问题,实际上就是没有注册到RabbitMQ这个服务. 在研究了很久之后才发现原来是安装路径的问题,原先是安装 ...

  5. js常用设计模式实现(三)建造者模式

    创建型模式 创建型模式是对一个类的实例化过程进行了抽象,把对象的创建和对象的使用进行了分离 关于创建型模式,已经接近尾声了,还剩下建造者模式和原型模式,这一篇说一说建造者模式 建造者模式的定义 将一个 ...

  6. c++学习书籍推荐《C++设计新思维》下载

    百度云及其他网盘下载地址:点我 译序by 侯捷 i 译序by 於春景 iii 目录 v 序言by scott meyers xi 序言by john vlissides xv 前言 xvii 致谢 x ...

  7. Java项目实例之---学生选课(面向对象复习)

    学生选课(面向对象复习) 设计一个学生选课的程序,分别有学生类(Student)和课程类(Course) 学生类的属性有:学号(String),姓名(String),性别(char),所选科目(Cou ...

  8. java高并发系列 - 第6天:线程的基本操作

    新建线程 新建线程很简单.只需要使用new关键字创建一个线程对象,然后调用它的start()启动线程即可. Thread thread1 = new Thread1(); t1.start(); 那么 ...

  9. java高并发系列 - 第12天JUC:ReentrantLock重入锁

    java高并发系列 - 第12天JUC:ReentrantLock重入锁 本篇文章开始将juc中常用的一些类,估计会有十来篇. synchronized的局限性 synchronized是java内置 ...

  10. MyBatis OGNL表达式用法

    From<MyBatis从入门到精通> <!-- 4.7 OGNL用法 MyBatis常用的OGNL表达式: e1 or e2: e1 and e2 e1 == e2; e1 != ...