这篇文章介绍利用Fiddler抓取iOS上的Https请求,但很多时候app的请求都会有反爬措施,发送请求的时候会带token什么的,这个时候要么破解app,要么利用模拟人为发送请求。破解app一般难度较大,对于那种一段时间有效的token,利用模拟将token保存到数据库,然后再请求会轻松很多。
模拟人为发送请求的方法需要解决两个问题。
一、如何模拟人为
利用逍遥模拟器上的操作录制器可以轻松解决这个问题。
(1)设置代理
(2)录制操作
二、如何抓取请求
利用FiddlerCore api 可以轻松解决。
using Fiddler; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace QZ.FiddlerCoreAPI { class Program { static void Main(string[] args) { //设置别名 Fiddler.FiddlerApplication.SetAppDisplayName("FiddlerCoreDemoApp"); Fiddler.FiddlerApplication.BeforeRequest += new SessionStateHandler(FiddlerApplication_BeforeRequest); //Fiddler.FiddlerApplication.BeforeResponse += new Fiddler.SessionStateHandler(FiddlerApplication_BeforeResponse); //Fiddler.CONFIG.IgnoreServerCertErrors = false; //FiddlerApplication.Prefs.SetBoolPref("fiddler.network.streaming.abortifclientaborts", true); FiddlerCoreStartupFlags oFCSF = FiddlerCoreStartupFlags.Default; int iPort = 8887; Fiddler.FiddlerApplication.Startup(iPort, oFCSF); FiddlerApplication.CreateProxyEndpoint(iPort, true, "192.168.5.120"); //if (!Fiddler.CertMaker.trustRootCert()) //{ // Console.WriteLine("证书安装出错"); //} Console.ReadKey(); //Fiddler.FiddlerApplication.Shutdown(); } static void FiddlerApplication_BeforeRequest(Session oSession) { Console.WriteLine(oSession.fullUrl); //if (oSession.fullUrl.IndexOf("qichacha") > 0) //{ // Console.WriteLine(oSession.fullUrl); //} } //find and replace the client access policy file. //static void FiddlerApplication_BeforeResponse(Fiddler.Session oSession) //{ //} } }
运行结果:
运行结果动图
转载请注明:二十画生 » 利用逍遥模拟器对app请求进行抓取