转载自:https://www.52pojie.cn/thread-854434-1-1.html

说起抓包,很多人以为就是用个工具,简简单单地抓一下就可以了。
昨天在面试一个安卓逆向,直接告诉我【抓包没有技术含量】。
在这里,我必须发一个教程,解析一下抓包神器——Fiddler。
Fiddler仅仅是一个抓包工具?不好意思,Fiddler用得好,真的可以为所欲为。

Fiddler的作者

  • Fiddler 的作者是 Eric Lawrence 是个大师级的人物, 目前在微软总部西雅图工作。 他的博客是: http://www.ericlawrence.com/Eric/
  • 博客中能看到他的简历,以及一些生活照.

Fiddler的介绍

Fiddler是强大的抓包工具,它的原理是以web代{过}{滤}理服务器的形式进行工作的,使用的代{过}{滤}理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。
代{过}{滤}理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代{过}{滤}理服务器会将数据包进行拦截,代{过}{滤}理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代{过}{滤}理服务器也会将数据拦截,再返回给客户端。
Fiddler可以抓取支持http代{过}{滤}理的任意程序的数据包,如果要抓取https会话,要先安装证书。


这两点,希望大家牢记。接下来,给大家介绍Fiddler超级强大的地方之一——Fiddler Script.
论坛有很多Fiddler的使用教程,这里就不多说了。但是,却没有一个人说到最强大的脚本功能!

Fiddler 包含了一个脚本文件可以自动修改Http Request 和Response.这样我们就不需要手动地下"断点"去修改了,实际上它是一个脚本文件CustomRules.js 位于: C:\Documents and Settings\[your user]\My Documents\Fiddler2\Scripts\CustomRules.js 下,你也可以在Fiddler 中打开CustomRules.js 文件, 启动Fiddler, 点击菜单Rules->Customize Rules... Fiddler Script 的官方帮助文档必须认真阅读, 地址是:http://www.fiddler2.com/Fiddler/dev/ScriptSamples.asp

小常识:Fiddler Script 是用JScript.NET语言写的


那么Fiddler Script到底有什么用?我这里来列举一些大家肯定遇到过的问题:

场景1:一个付费验证,是否付费会返回一个json。里面有一个时间戳和一个false。如果时间戳和客户端不一致,则为破解失败。

那么你一定会这么想,有没有一个功能,可以只替换json里面部分参数,然后返回给客户端,而不是全部写死呢?于是,我们需要使用到script了!代码如下:如一个json是这个内容,baidu.com,返回了一个【name:吾爱破解,付费:false】

if (oSession.fullUrl.Contains("http://www.baidu.com")){// 获取Response Body、Request Body中JSON字符串,转换为可编辑的JSONObject变量var responseStringOriginal =  oSession.GetResponseBodyAsString();var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);var requestStringOriginal=oSession.GetRequestBodyAsString();var requestJSON = Fiddler.WebFormats.JSON.JsonDecode(requestStringOriginal);){ //请求参数中,若type为1,对返回值做如下修改responseJSON.JSONObject['付费'] = "true";// 重新设置Response Bodyvar responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);oSession.utilSetResponseBody(responseStringDestinal);}}
}

通过以上代码,即可每次在baidu返回数据时,自动将付费改为true,从而达到了破解的效果。

场景2:我想要修改request的Body里面的部分参数,每次下完断点,修改完再提交,总会网络超时或者APP超时。这该怎么办?难道只能靠手速?

if(oSession.uriContains(“http://www.baidu.com”))
{
var strBody=oSession.GetRequestBodyAsString();// 获取Request 中的body字符串
strBody=strBody.replace(“false”,“true”);// 用正则表达式或者replace方法去修改string,将false改为true
FiddlerObject.alert(strBody);// 弹个对话框检查下修改后的body
oSession.utilSetRequestBody(strBody);// 将修改后的body,重新写回Request中
}

场景3:我想要修改cookie,改成一个付费过的cookie,但是需要实时生成,不能靠手速。这该怎么办?

  if (oSession.HostnameIs('www.baidu.com') && oSession.uriContains('pagewithCookie') && oSession.oRequest.headers.Contains("Cookie")){
var sCookie = oSession.oRequest["Cookie"];//  用replace方法或者正则表达式的方法去操作cookie的stringsCookie = sCookie.Replace("付费=false", "付费=true");oSession.oRequest["Cookie"] = sCookie;

场景4:我想要知道他到底有没有请求具体哪个网址,用查找速度太慢了。过滤也很慢。

if (oSession.HostnameIs("www.baidu.com")) {oSession["ui-color"] = "red";}

场景5:我想要自动保存某个接口的数据到本地,怎么才能实现?

if (oSession.fullUrl.Contains("www.baidu.com/playurl/v1/") ){  oSession.utilDecodeResponse();//消除保存的请求可能存在乱码的情况var fso;var file;fso = new ActiveXObject("Scripting.FileSystemObject");//文件保存路径,可自定义file = fso.OpenTextFile("D:\\Sessions.txt",8 ,true, true);//file.writeLine("Response code: " + oSession.responseCode);file.writeLine("Response body: " + oSession.GetResponseBodyAsString());file.writeLine("\n");file.close();}

以上就是Fiddler script经常使用到的功能,免费奉献给大家。直接复制即可使用。

Fiddler的脚本介绍到这里,那么,说到底Fiddler还是只能抓包啊,即使基于xpoesd能抓到https的包,还是发现有很多包抓不到啊!!!等等,本文还没完呢!
(接下来的内容,公布过后,会涉及到技术滥用,因此,仅公布原理。)
首先来讲https,也就是安卓APP证书这一款,目前论坛上已经有不少的朋友发了相关的一些程序,大家可以去下载。
如:https://www.52pojie.cn/thread-854170-1-1.html

但是,我个人比较倾向于just trust me这个插件,这是最全能的。just trust me是hook了安卓框架验证机制,更加棒~


首先,大家抓包会遇到一个问题,为什么即使绕过了APP证书验证,为什么还是抓不到包!难道不是http协议?
其实并不是,APP大多数还是走的http协议,那为什么抓不到优酷的视频?抓不到关键的访问——原因在于此,代{过}{滤}理!

目前有非常多的APP,都为了防止被抓包,不仅仅是只用了https这么简单。而使用fiddler抓不到包,本质原因在于wifi代{过}{滤}理!很多APP会检测你是否用了wifi代{过}{滤}理,如果设置了,则APP无法正常使用。这样就会从根本上杜绝被抓包

那么,我们要怎么做才能防止这种情况的发生呢?
比较笨的一种办法依旧是使用xposed上的just trust me,依旧hook相关函数,即可破解该策略。


等等,我发现用了trust me过后,还是抓不到包,这到底是怎么回事!!!
非常简单,他们就是利用了本地服务器中转,这样的话Fiddler是抓不了包的。比如著名APP:麻花影视、电视家

那么,有没有办法能抓到这种操作的包呢?当然是有的。
这边只能透露几点,不能正大光明地公布,否则大量非法分子就可以破解非常多的APP了。
提示:Fiddler的本质其实就是代{过}{滤}理服务器,那么,如果是代{过}{滤}理服务器,所有的请求是不是都会走这台服务器呢?那是肯定的。


最后,抓包除了破解APP以外,还有什么用?
第一:抓接口,可以将所有的视频点播类APP都抓下来!
如麻花视频:

GET http://api.acgplusplus.com/api/a ... &time=1547183436020 HTTP/1.1
Content-Type: application/json
Accept: application/json
accessToken: 936b8872c4f81b6537eaa80f4e2e78c7807cebbcb02548d8d4da1e55c61c6509
X-Client-NonceStr: FbWu9jFnpG
X-Client-IP: 127.0.0.1
X-Client-TimeStamp: 1543592259810
X-Client-Version: 1.1.1
X-Client-Sign: 61274de99728b3981041d657bec4528b416658cd651110f9cf950dd3fbc0b15f
X-Auth-Token: mb_token:25361603:1211f5511483be1def9af655c10ede12
X-Client-Token:
Host: api.acgplusplus.com
Connection: Keep-Alive
User-Agent: okhttp/3.10.0
Accept-Encoding: identity

这个接口大家可以用用,永不失效的接口!返回出来的地址就是这样。(大家可以直接用,哈哈,本来麻花视频也是盗版的)

再比如优酷的播放接口:

GET https://ups.youku.com/ups/get.json?ckey=不公布,免得被盗用
User-Agent: Youku;7.5.0;Android;6.0.1;MuMu
Host: ups.youku.com
Connection: Keep-Alive
Accept-Encoding: gzip, deflate

这些接口,全都是永久有效的!

拥有抓包技术,你就可以自己制作任何的视频APP,调用第三方的接口即可!!!

另外楼主尝试过支付宝等相关APP,依旧能抓到部分的包。所以——
抱歉,抓包抓得好真的可以为所欲为。

Fiddler大解析!抱歉,抓包抓得好真的可以为所欲为相关推荐

  1. php禁止fidd抓包,PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析

    本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法.分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddler抓取手 ...

  2. php抓包设置参数_PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析

    搜索热词 本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法.分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddl ...

  3. php抓包分析工具下载,PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析...

    本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法.分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddler抓取手 ...

  4. 文章向大家介绍安卓逆向,解决app抓包抓不到的问题,主要包括安卓逆向,解决app抓包抓不到的问题使用实例、应用技巧

    本文章向大家介绍安卓逆向,解决app抓包抓不到的问题,主要包括安卓逆向,解决app抓包抓不到的问题使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下. 有时候 ...

  5. Fidder微信小程序抓包抓不上 fidder微信小程序抓包入门保姆教程

    Fidder小程序抓包抓不上 Fidder中文版本下载 原因分析 抓不上3种原因:1 没有配置fidder 2 没有删除WMPFRuntime微信小程序插件目录 3微信3.7新版本升级删不掉 WMPF ...

  6. PHP配合fiddler抓包抓取微信指数小程序的数据

        这两天研究了下微信指数这个东西.要抓取呢,按照一般思路的话,那就是使用fiddler抓取手机包,然后进行分析获取地址然后请求就可以了.     这么想你是没错,如果你果断这么做了,那就是too ...

  7. 正所谓:抓包抓的好,牢饭吃的饱,银白手铐准备好、抓包工具-fiddler/charles抓包工具详解

    目录 简介: Charles的基本功能使用 手机端使用charles进行抓包: 第二步,把手机按照charles的IP和端口进行配置:(手机和电脑网络在同一个wifi) 第三步,手机配对成功后,cha ...

  8. 网络抓包-抓包工具tcpdump的使用与数据分析

    1.测试背景 本次测试选用两台不同的服务器,ip分别为.233和.246,233服务器为客户端,246服务器为服务端.利用tcp协议就行socket通信.socket网络编程部分示例代码为基本的通信代 ...

  9. 使用fidder抓包抓不到请求的可能原因

    1.用fiddler进行手机端抓包时,需要先手动配置手机端ip地址和端口号(手机号端和pc端在同一网络内) 2.配置好以后去(http://电脑ip:端口号)这个网址下载证书安装.注:通过查询验证发现 ...

  10. 一些app抓包抓不到数据的问题

    做爬虫的一般除了大众化的抓包工具进行抓包处理,但是会有一些渠道抓不到包.一下记一次抓不到包的记录,向大佬学习 Drony 概述 下载 设置 Drony-github问题详解

最新文章

  1. NLP 层嵌入(embedding)层的理解 通俗易懂 转
  2. android-Bitmap,View,Canvas大综合
  3. halcon知识:【2】二维码原理
  4. boost::mp11::tuple_apply相关用法的测试程序
  5. javaSE各阶段练习题---面向对象-类与对象、封装、构造方法(1
  6. 还需要更多东西吗?这里有一些要做的事情
  7. php wordpress乱码,PHP問題:基于WordPress的CMS网站在文章摘要末尾出现乱码
  8. async spring 默认线程池_springboot中@Async默认线程池导致OOM问题
  9. 极大似然估计_一文理解机器学习中的极大似然估计(MLE)
  10. 网络基础知识(黑马教程笔记)-4-http请求与响应的处理
  11. Python.暴力破解rar密码
  12. 数字图像处理-空间滤波
  13. 如何在服务器上还原数据库文件,SQL Server 使用入门教程(bak文件还原数据库)...
  14. rhel6.5 oracle12c,中标麒麟Linux6.5安装Oracle12C配置过程
  15. graphpad两组t检验_还不会T检验,利用GraphPad Prism实现T检验详解
  16. The resource identified by this request is only capable of generating respon
  17. Ramnit 蠕虫分析
  18. 这个5.10阿里日不一般!造(躁)起来~淘系的年轻人们!
  19. 计算机调出任务管理器的组合键是,调出任务管理器快捷键
  20. 支持多商家在线客服系统源码

热门文章

  1. 你知道项目管理有哪些分类和体系吗?
  2. 抖音视频评论获取系统,获取抖音评论的系统
  3. goahead(嵌入式Web服务器)之cgi篇
  4. windows便签工具在哪 windows11的便签在哪里打开
  5. 三轴加速度传感器和六轴惯性传感器_六轴传感器和三轴传感器的区别在哪
  6. 网易云linux版是什么格式,网易云音乐发布Linux版本
  7. 【机器学习项目实战】随机森林(random forest)回归(RandomForestRegressor)模型Python实现
  8. 西门子200Smart modbus RTU 双主站程序 西 门子200Smart modbus RTU 程序封装赋值即用,配置详细说明
  9. C语言指针面试题详解
  10. Quartz 定时任务