写本文的契机主要是前段时间有次用青花瓷抓包有一步忘了,在网上查了半天也没找到写的完整的教程,于是待问题解决后抽时间截了图,自己写一遍封存在博客园中以便以后随时查阅。

charles又名青花瓷,在iOS开发中的抓包中具有重要作用。最大的三点用处,一就是拦截别人软件的发送的请求和后端接口,练习开发。二是自己后端返回的response拦截修改后再接收以达到测试临界数据的作用。三写脚本重复拦截抓取别人的数据。(因为不太道德,本文不提第三点)

如果你不是在董铂然博客园看到本文,请点击查看原文。

1.开始之前的准备工作

首先安装一下这个软件

这个相信很多人电脑里应该都安装了,没安装的搜charles破解版也能很容易搜到。如果没安装java环境,首次进入charles会提示让你安装java包得,直接给你链接是苹果官网的,去下一个一键安装就行了。

安装完成后先打开,在进行下面操作。

然后去自己电脑的系统偏好设置-》网络-》选中现在连着的网(大部分人应该都是WiFi吧)可以查到自己这个电脑在现在这个wifi里的IP地址,比如我现在这个就是192.168.0.105(建议最好用私人网络,用公司网络的话可能会有限制会出现没反应的问题)

然后找到自己手机也连着这个同名的wifi,然后选中右边的蓝色i。

 

然后进入到了这个无线局域网的高级设置页面。进去之后拉到最下方,找到HTTP代理字样。然后选中手动代理,并在服务器中填自己电脑查到的ip地址,然后把端口调8888,最后点击左上角返回。返回值后系统会自动设置代理重新连接。

这时候你的手机上网的过程中就要经过你的电脑了。刚用手机打开一个联网的程序,你的电脑上应该会显示一个弹窗问你【allow】还是【deny】肯定不能拒绝啊就点allow吧。这个只有第一次才弹窗,图没截上,你到时候看见肯定能看懂的。点了同意之后你手机发出的每一个请求都会被拦截出痕迹。

2.拦截某个软件的接口数据

拿网易新闻举例,以前就练习这写过网易新闻的项目,其中网易的接口全是用charles拦截的。拦截到了网易发请求时发的是什么,然后在练习项目中需要获取数据的地方也把这一串链接直接拿过来用即可。

当然这上面拦到的比较多,如果有过开发经验的话应该能很快看出来右边哪个是真正返回json数据的接口。或者一个一个点看内容也行啊。

比如选中一个url然后右键点击copy。

放到浏览器地址栏里打一下。能看到

这就说明这个接口是对的了。可以获取到数据。然后可以给他转化一下看的更清楚。虽然很多人都是用bash看,但我还是推荐一个网址http://www.w3cschool.cc/jsontool。转JSON之后看的非常清晰。大部分软件json整理后都是默认把大括号全都打开,而仅有这个网站是默认全给你把大括号关上。想点哪个再点开,而且能知道字典里有多少个键值对,所以看着非常清晰。

到此就已经完成了一次完整的,拉取接口,和获得数据。

这里有两点我想说下:

①就是如果这个App发的请求加密了或是RSA什么的,这个就算拦截了你也弄不到数据。网易是没有做任何加密,所以可以抓取到数据。以前试了拦截百度医生的就不行。他设置的是一分钟内能获取到数据,超过了1分钟这个复制过来的接口就取不到数据了。怀疑可能是用的HMAC方法加密,并且在里面加入了时间判断。32分和33分发出的请求经过编码后是不一样的,后台可能做了容错,会把32分和31分都和你判断下,只要有一个对上就让你过,但是超过了整整一分钟后是肯定获取不到数据了。

②就是很多比较大型的网站,一般会开放一个开发者平台,里面注册开发者账号后会向你公开一个接口文档,你不用再去费事的拦截了。像新浪微博和大众点评都有开发者平台。

3.更改返回数据来测试临界情况。

这个是重点了。因为这种做法可以让一个iOS前端的开发人员独立完成测试而不用拉过来一个后端一起联调。并且各种特殊维度,或是临界的账号也不用再去辛苦找了,仅仅自己在青花瓷上改来改去就可以达到效果了。比如这个地方如果返回了nil程序会不会崩,直接改response就行了。下面是具体操作方案。

打开青花瓷切换成结构页面

这里可以看到断点和调试信息

    

然后找一个我们公司的页面。这个页面本来应该返回是这样的:如上图右边

你先正常的打开这个页面把玩几下,这个青花瓷就会抓取很多接口和域名分类了。在这里找到你这个页面所属的域名分类应该不难。然后打上断点。这里要注意是在域名上打断点而不是在下面的单个请求上打断点。

再次用手机进入这个页面,就会通过你刚才打断点的那个域名来请求数据,就会被断点拦住,如下图所示。

右边的信息也很清晰,一开始可以编辑请求。如果点击单步执行,等一下相应回来了也可以编辑响应。

这里的有好几种查看的方式,但是推荐使用JSON Text看的比较清楚。 现在我们对拦截回来的数据进行修改,我把这些统计数据全改成999如下图

然后再次点击下方的Execute单步执行,更改后的数据就会像正常返回回来的数据那样显示到,APP的页面上展示。

能来到这一步就说明已经完整的掌握了用青花瓷篡改返回数据测试App的技术。

如果你不是在董铂然博客园看到本文,请点击查看原文。

这么做的意义:

这里只是简单的更改了一些数字,在页面显示更加直观。实际的操作中,你可以经常用来把某些值改为临界情况以看到App在处理这些临界状况时的反应,这样比找那些临界数据的测试账号成本要低得多。也可以把一些可能不会反回数值的字段找到,直接将里面的值删成nil,看看会不会报异常等等。

iOS使用Charles(青花瓷)抓包并篡改返回数据图文详解相关推荐

  1. Charles(青花瓷抓包工具)使用教程

    三.主要功能使用 (1)初步认识 Charles 提供两种查看封包的视图, "Structure" 和 "Sequence". 1.Structure 视图将网 ...

  2. spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)...

    不多说,直接上干货! 前言   其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...

  3. Charles(青花瓷)抓包教程

    场景: 刚进入一个新公司要了解业务老问是不行的,要学会自己分析,好的工具能事半功倍. 工具: Charles 4.2.7 ,公司的业务APP 教程: 1.首先我们需要按照Charles,[官网下载地址 ...

  4. Fiddler抓包工具入门及常用功能详解

    先来看一个小故事: 小T在测试APP时,打开某个页面展示异常,于是就跑到客户端开发小A那里说:"你这个页面做的有问题,页面展示异常": 小A说:"这哪是我的问题,你去找后 ...

  5. 网络抓包工具 翻译帮助文档 详解教程

    How To Set Up a Capture 1. 确保你做的事是被允许的! (1)意思是在不违反法律的情况下抓取可以被允许抓取的包. 2.一般设置 (1)权限的设置,你是否有权限去获取用户或者管理 ...

  6. charles 安装 ssl_最全面的解决Charles手机抓包的证书问题(步骤非常详细)

    源自公众号文章: 彻底解决Charles手机抓包的证书问题 简介: Charles 抓包是日常开发当中经常会用到的技术, 在 Android 6 之前, 手机系统既信任系统内置的证书, 也信任用户自己 ...

  7. Flutter Dio在 Charles等 抓包工具设置配置

    前些天提测新业务,QA反馈Flutter 页面不能抓包,以前看数据信息都是通过log收集,没有单独通过抓包查看数据,对QA来说不能抓包确实是问题.查了一下发现Dio框架是默认不允许抓包的,需要额外配置 ...

  8. Charles(HTTP抓包工具软件)中文版

    Charles安装教程 1.解压文件包之后双击打开"Charles 64位_4.2.7.4.msi"开始安装 2.点击"Next" 3.勾选"我同意条 ...

  9. 在Mac上怎么使用Charles进行抓包

    B站实战视频地址:[Charles抓包]一款强大的抓包神器,Charles抓包零基础到精通全教程_哔哩哔哩_bilibili 本文记录如何在Mac上使用Charles进行抓包,包含两个场景,抓取电脑应 ...

最新文章

  1. 微信浏览器禁止页面下拉查看网址
  2. python PIL 打开\显示\保存图像
  3. c语言判断x的个位数是否为5,用C语言编程从键盘输入一个正整数,判断其个位数是否为5,若是5则输出“yes”,否则输出“no”...
  4. JavaScript消息框
  5. 带通滤波器作用和用途_带通滤波器作用
  6. 基于维特比算法的概率路径
  7. Java核心(五)深入理解BIO、NIO、AIO
  8. Kotlin 风险高、RxJava 已过时,Android 原生开发现状分析!
  9. linux mysql 相关操作、问题
  10. java hssfworkbook 乱码_java各种乱码汇总
  11. 关于android studio报错Attempt to invoke virtual method 'void android.widget.ListView.setAdapter(android.
  12. 物联网嵌入式学习路线
  13. 云上Java System Profiling与Debugging——蚂蚁金服观察与实践
  14. [irving] C# Windows Beep 调用声音文件
  15. PIX中Conduit命令用法
  16. 4.1.1 OS之初识文件管理概念和功能
  17. 体育技术机器学习金钱和灵感的圣杯
  18. 关于协方差,协方差矩阵的个人理解
  19. 刘可-寂寞才说爱 试听+下载+歌词
  20. buildroot认知

热门文章

  1. NSPredicate 查询/搜索
  2. [2778]小明的花费预算 (二分查找)SDUT
  3. Windows Server 2012 R2配置ISCSI磁盘共享盘(4)
  4. Silverlight设计时特性的使用
  5. OLEDB访问CSV、txt
  6. Linux视频教程系列汇总
  7. 百度娱乐沸点颁奖典礼,温度太低的“沸点”
  8. 第一次使用VS Code时你应该知道的一切配置
  9. NFV — 系统架构
  10. 5G NGC — 云原生的 5G 核心网架构演进