C# 使用Fiddler API 抓取 Android App 数据
2018-04-12 21:18
731 查看
通过这两天的查阅资料,发现百度上对于Fiddler API 稍微高级一点的用法比较少,其中主要的教程是偏向于对Fiddler软件的使用方法,碰巧最近在做头脑王者相关的辅助,因此分享下 基于C# 对Fiddler 进行二次开发的学习经验。这里主要通过调用Fiddler提供的API 对网络流量的抓取。
2.在项目中引用所有dll,反正也没多少FiddlerCore4.dll、
CertMaker.dll、
BCMakeCert.dll、
BasicFormatsForCore.dll
public string sSecureEndpointHostname = "localhost";
public int startPort = 8877;
public bool isIgnoreCertError = false;
public Proxy oSecureEndpoint;
{
if (FiddlerApplication.IsStarted())
{
Shutdown();
FiddlerApplication.BeforeResponse -= FiddlerApplication_BeforeResponse;
}
Fiddler.CONFIG.IgnoreServerCertErrors = isIgnoreCertError;
this.startPort = port;
FiddlerApplication.Startup(startPort, oFCSF);//启动侦听
//创建一个https侦听器,用于伪装成https服务器
FiddlerApplication.Prefs.SetBoolPref("fiddler.network.streaming.abortifclientaborts", true);
Fiddler.CertMaker.trustRootCert();
FiddlerApplication.BeforeResponse += FiddlerApplication_BeforeResponse;//注册事件,用于捕获网络流量
oSecureEndpoint = FiddlerApplication.CreateProxyEndpoint(iSecureEndpointPort, true, sSecureEndpointHostname);
}
{
//oSession.url中包括响应的url 可以根url筛选自己要捕获的内容
//oSession提供了uriContains的方法可以直接判断url
一、环境搭建
1.首先去fiddler官网下载相应的API和开发文档2.在项目中引用所有dll,反正也没多少FiddlerCore4.dll、
CertMaker.dll、
BCMakeCert.dll、
BasicFormatsForCore.dll
二、关键代码
1.准备需要的变量 public int iSecureEndpointPort = 7777;public string sSecureEndpointHostname = "localhost";
public int startPort = 8877;
public bool isIgnoreCertError = false;
public Proxy oSecureEndpoint;
//设置fiddler的启动标识 需要允许远程计算机连接和对https的解密 public FiddlerCoreStartupFlags oFCSF = FiddlerCoreStartupFlags.AllowRemoteClients | FiddlerCoreStartupFlags.DecryptSSL;2.添加Fiddler的启动和关闭方法public void Start(int port)
{
if (FiddlerApplication.IsStarted())
{
Shutdown();
FiddlerApplication.BeforeResponse -= FiddlerApplication_BeforeResponse;
}
Fiddler.CONFIG.IgnoreServerCertErrors = isIgnoreCertError;
this.startPort = port;
FiddlerApplication.Startup(startPort, oFCSF);//启动侦听
//创建一个https侦听器,用于伪装成https服务器
FiddlerApplication.Prefs.SetBoolPref("fiddler.network.streaming.abortifclientaborts", true);
Fiddler.CertMaker.trustRootCert();
FiddlerApplication.BeforeResponse += FiddlerApplication_BeforeResponse;//注册事件,用于捕获网络流量
oSecureEndpoint = FiddlerApplication.CreateProxyEndpoint(iSecureEndpointPort, true, sSecureEndpointHostname);
}
public void Shutdown() { if (null != oSecureEndpoint) oSecureEndpoint.Dispose(); Fiddler.FiddlerApplication.Shutdown(); System.Threading.Thread.Sleep(500); isStart = false; }3.捕获并处理数据 private void FiddlerApplication_BeforeResponse(Session oSession)
{
//oSession.url中包括响应的url 可以根url筛选自己要捕获的内容
//oSession提供了uriContains的方法可以直接判断url
//oSessionGetResponseBodyAsString方法可以直接读取响应内容 }值得注意的是抓取手机包时一般需要https证书,在服务运行后可以在手机浏览器 输入计算机IP+端口8877 (如我的:192.168.1.111:8877)打开后点击下载根证书然后在手机中安装(不能直接打开证书文件 小米安装证书是在设置--更多设置--系统安全--从SD卡安装,安装后能手机浏览器打开百度能正常显示即可)
相关文章推荐
- 使用Fiddler抓取手机应用数据接口(Android和ios)
- fiddler监控抓取Android请求网络数据包使用方法教程
- 使用Fiddler抓取android应用http数据
- Fiddler如何抓取使用了SSL或TLS传输的Android App流量
- Fiddler 如何抓取Android APP的数据
- J哥---------分享好东西:android抓包工具fiddler使用介绍 抓取 手机APP 中资源。
- Android App使用Jsoup抓取网页数据显示
- 使用Fiddler抓取Android数据包
- 分享好东西:android抓包工具fiddler使用介绍 抓取 手机APP 中资源。
- android抓包工具fiddler使用介绍 抓取 手机APP 中资源。
- 使用AssetFileDescriptor 来读取(android)app的raw文件夹下的数据
- Android 使用Jsoup 抓取页面的数据
- Android使用LocalSocket抓取数据
- 【Android 我的博客APP】1.抓取博客首页文章列表内容——网页数据抓取
- Android中使用tcpdump抓取网络数据包
- 使用python抓取知乎日报的API数据
- 利用Fiddler抓取Android中的app数据包
- Android使用"中国天气网"API数据通过城市名称获取天气情况
- Fiddler (数据抓包)跟踪监控android数据包工具使用
- android使用httppost向c# wcf发送数据总结