欢迎您光临挑逗你卡盟,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码 暂无演示
免费:
¥ 免费
  • 普通用户购买价格 : 0元

升级尊贵会员
享受全站VIP待遇

3036+
会员已经加入
特别声明 原创产品提供以上服务,破解产品仅供参考学习,不提供售后服务(均已杀毒检测),如有需求,建议购买正版!如果源码侵犯了您的利益请留言告知!

dnf外挂王者荣耀辅助

一,众所周知抓包是程序员必备的技能,但是很多小伙伴对于Fiddler还是不那么的玩的转,这里给大家出一个关于抓包的小技巧,各位喜欢的小伙伴记得三连点个关注哈,这里还是你们老朋友凡叔。

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

首先我们的需求场景是

用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤:

1设置http请求相关的参数:header,method,url,cookie等2设置post的body(如果是post的话需要)3拿到返回的body(一般我们需要拿到接口的返回体进行解析)dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

上面是对于csharp 采用自带的 HttpClient的代码生成演示,还可以针对java kotlin,python,nodejs等

上面是对于csharp 采用自带的 httpclient的代码生成演示,还可以针对java kotlin,python,nodejs等

本篇的主要功能都是在FiddlerScript里面完成,主要包含3块扩展

增加自定义右键菜单增加控制开关代码获取请求上下文并导出har使用脚本完成process的封装并调用

1. 增加右键菜单

点中某个Session然后点击右键菜单,选择生成指定语言的代码,这样使用起来最方便,如下图:

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

新增右键菜单的扩展方式是什么 【一个ContextAction 一个function】

例如:

public static ContextAction(\”C#-httpclient\”, \”生成代码\”) function do1(arrSess: Session[]) { doStar(arrSess, \”csharp\”,\”httpclient\”); }

代表新增一个 一级菜单叫 生成的代码,二级菜单叫做 \”C#-httpclient\”

下面的function就是点击需要响应的方法实现,默认是Session数组,因为可以选择多个。

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

新增开关的方式是定义【一个RulesOption 一个对应接收的变量】

public static RulesOption(\”关闭请求体转代码\”, \”生成代码\”) var m_DisableReuqest: boolean = false;

代表新增一个 一级菜单叫生成代码,二级菜单叫 \”关闭请求体转代码\”,类型是bool,因为下面对应接收的变量是布尔类型!

3. 通过选中Session拿到整个请求的上下文

上下文包括,请求的各种参数,比如url,header,method,request,response等

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

image image image

那用代码如何导出呢?

//这种方式为导出到变量 注意是Fiddler 4.6.2.0版本之后支持的var oExportOptions = FiddlerObject.createDictionary(); oExportOptions.Add(“ExportToString”, “true”);FiddlerApplication.DoExport(\”HTTPArchive v1.2\”, oSessions,oExportOptions, null);//这个就是了var sOutput: String = oExportOptions[“OutputAsString”];

//这种方式为导出到指定路径var oExportOptions = FiddlerObject.createDictionary(); oExportOptions.Add(\”Filename\”, \”对应的路径\”); FiddlerApplication.DoExport(\”HTTPArchive v1.2\”, oSessions,oExportOptions, null);

这里我采用了第二种方式,先把选中的Session导出一个har文件,然后将这个har文件作为下一个process的入参,得到我想要结果!

下面隆重介绍根据har来生成请求代码的工具:httpsnippet

开源地址:https://github.com/Kong/httpsnippet

Kong的话有个很有有名的网关想必大家都听说过!

这里我已经把这个程序包装成在windows系统可以独立运行的exe了,可以在文章末尾获取下载链接。

这里我稍微改造了一下代码,把har文件的requestBody和responseBody也提取出来,为了是生成对应的POJO代码做入参.

将json生成实体类POJO这里用了另外一个工具:quicktype

开源地址:https://github.com/quicktype/quicktype

也包装成在windows系统可以独立运行的exe了。

好了,组装在一起:

先通过代码生成har文件然后用httpsnippet生成指定语言的代码,并导出har中的requestBody和responseBody分别将requestBody和responseBody作为参数让quicktype生成实体类代码

整个的完整代码如下,按照如下步骤copy到fiddler的脚本编辑器中即可:

首先打开脚本编辑器:

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

随便找到一个空白的地方,然后把下面的代码复制进去:

public static RulesOption(\”关闭请求体转代码\”, \”生成代码\”) var m_DisableReuqest: boolean = false; public static RulesOption(\”关闭返回体转代码\”, \”生成代码\”) var m_DisableResponse: boolean = false; public static ContextAction(\”C#-httpclient\”, \”生成代码\”) function do1(arrSess: Session[]) { doStar(arrSess, \”csharp\”,\”httpclient\”); } public static ContextAction(\”C#-restsharp\”, \”生成代码\”) function do2(arrSess: Session[]) { doStar(arrSess, \”csharp\”,\”restsharp\”); } public static ContextAction(\”java-okhttp\”, \”生成代码\”) function do3(arrSess: Session[]) { doStar(arrSess, \”java\”,\”okhttp\”); } public static ContextAction(\”Java-asynchttp\”, \”生成代码\”) function do4(arrSess: Session[]) { doStar(arrSess, \”java\”,\”asynchttp\”); } public static ContextAction(\”Java-nethttp\”, \”生成代码\”) function do5(arrSess: Session[]) { doStar(arrSess, \”java\”,\”nethttp\”); } public static ContextAction(\”Java-unirest\”, \”生成代码\”) function do6(arrSess: Session[]) { doStar(arrSess, \”java\”,\”unirest\”); } public static ContextAction(\”kotlin-okhttp\”, \”生成代码\”) function do7(arrSess: Session[]) { doStar(arrSess, \”kotlin\”,\”okhttp\”); } public static ContextAction(\”JavaScript-xhr\”, \”生成代码\”) function do8(arrSess: Session[]) { doStar(arrSess, \”javascript\”,\”xhr\”); } public static ContextAction(\”JavaScript-jquery\”, \”生成代码\”) function do9(arrSess: Session[]) { doStar(arrSess, \”javascript\”,\”jquery\”); } public static ContextAction(\”JavaScript-fetch\”, \”生成代码\”) function do10(arrSess: Session[]) { doStar(arrSess, \”javascript\”,\”fetch\”); } public static ContextAction(\”JavaScript-axios\”, \”生成代码\”) function do11(arrSess: Session[]) { doStar(arrSess, \”javascript\”,\”axios\”); } public static ContextAction(\”node-native\”, \”生成代码\”) function do12(arrSess: Session[]) { doStar(arrSess, \”node\”,\”native\”); } public static ContextAction(\”Node-request\”, \”生成代码\”) function do13(arrSess: Session[]) { doStar(arrSess, \”node\”,\”request\”); } public sta绝地透视外挂网站tic ContextAction(\”Node-fetch\”, \”生成代码\”) function do14(arrSess: Session[]) { doStar(arrSess, \”node\”,\”fetch\”); } public static ContextAction(\”Node-axios\”, \”生成代码\”) function do15(arrSess: Session[]) { doStar(arrSess, \”node\”,\”axios\”); } public static ContextAction(\”Node-unirest\”, \”生成代码\”) function do16(arrSess: Session[]) { doStar(arrSess, \”node\”,\”unirest\”); } public static ContextAction(\”Python3-http.client\”, \”生成代码\”) function do17(arrSess: Session[]) { doStar(arrSess, \”python\”,\”python3\”); } public static ContextAction(\”Python-requests\”, \”生成代码\”) function do18(arrSess: Session[]) { doStar(arrSess, \”python\”,\”requests\”); } public static ContextAction(\”ObjectiveC-nsurlsession\”, \”生成代码\”) function do19(arrSess: Session[]) { doStar(arrSess, \”objc\”,\”nsurlsession\”); } public static ContextAction(\”ruby-net::http\”, \”生成代码\”) function do20(arrSess: Session[]) { doStar(arrSess, \”ruby\”,\”native\”); } public static ContextAction(\”Swift-nsurlsession\”, \”生成代码\”) function do21(arrSess: Session[]) { doStar(arrSess, \”swift\”,\”nsurlsession\”); } public static ContextAction(\”powershell-webrequest\”, \”生成代码\”) function do22(arrSess: Session[]) { doStar(arrSess, \”powershell\”,\”webrequest\”); } public static ContextAction(\”powershell-restmethod\”, \”生成代码\”) function do23(arrSess: Session[]) { doStar(arrSess, \”powershell\”,\”restmethod\”); } public static ContextAction(\”shell-curl\”, \”生成代码\”) function do24(arrSess: Session[]) { doStar(arrSess, \”shell\”,\”curl\”); } public static ContextAction(\”Shell-httpie\”, \”生成代码\”) function do25(arrSess: Session[]) { doStar(arrSess, \”shell\”,\”httpie\”); } public static ContextAction(\”Shell-wget\”, \”生成代码\”) function do26(arrSess: Session[]) { doStar(arrSess, \”shell\”,\”wget\”); } public static ContextAction(\”Go-NewRequest\”, \”生成代码\”) function do27(arrSess: Session[]) { doStar(arrSess, \”go\”,\”native\”); } public static ContextAction(\”clojure-clj_http\”, \”生成代码\”) function do28(arrSess: Session[]) { doStar(arrSess, \”clojure\”,\”clj_http\”); } public static ContextAction(\”C-libcurl\”, \”生成代码\”) function do29(arrSess: Session[]) { doStar(arrSess, \”c\”,\”libcurl\”); } public static ContextAction(\”PHP-curl\”, \”生成代码\”) function do30(arrSess: Session[]) { doStar(arrSess, \”php\”,\”curl\”); } public static ContextAction(\”PHP-http1\”, \”生成代码\”) function do31(arrSess: Session[]) { doStar(arrSess, \”php\”,\”http1\”); } public static ContextAction(\”PHP-http2\”, \”生成代码\”) function do32(arrSess: Session[]) { doStar(arrSess, \”php\”,\”http2\”); } public static function doStar(oSessions: Session[], target: String,client:String) { //注意看这里,请下载我给的这2个exe并替换成你电脑中正确的目录 var httpsnippet = \”E:workspacegithubtesthttpsnippet.exe\”; var quicktype = \”E:workspacegithubtestquicktype.exe\”; var oExportOptions = FiddlerObject.createDictionary(); var tempPath2 = System.IO.Path.Combine(System.IO.Path.GetTempPath(), \”fiddler.har\”); if(System.IO.File.Exists(tempPath2)){ System.IO.File.Delete(tempPath2); } var tempPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), \”fiddler.json\”); if(System.IO.File.Exists(tempPath)){ System.IO.File.Delete(tempPath); } var tempRequestBodyPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), \”fiddler_requestBody.json\”); if(System.IO.File.Exists(tempRequestBodyPath)){ System.IO.File.Delete(tempRequestBodyPath); } var tempResponseBodyPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), \”fiddler_responseBody.json\”); if(System.IO.File.Exists(tempResponseBodyPath)){ System.IO.File.Delete(tempResponseBodyPath); } oExportOptions.Add(\”Filename\”, tempPath2); FiddlerApplication.DoExport(\”HTTPArchive v1.2\”, oSessions,oExportOptions, null); System.IO.File.Move(tempPath2, tempPath); if(!System.IO.File.Exists(tempPath)){ MessageBox.Show(\”生成代码失败\”, \”No action\”); return; } var rtPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), \”fiddler_rt\”); if(System.IO.Directory.Exists(rtPath))System.IO.Directory.Delete(rtPath,true); if(!doProcess(httpsnippet, \”\”\” tempPath \”\” -t \” target \” -c \” client \” -o \” \”\”\” rtPath \”\”\”)){ MessageBox.Show(\”生成代码错误\”, \”No action\”); return; } var file = System.IO.Directory.GetFiles(rtPath); if(file.Length!=1){ MessageBox.Show(\”生成代码错误\”, \”No action\”); return; } var json = System.IO.File.ReadAllText(file[0]); System.IO.File.Delete(file[0]); var rtPath1 = System.IO.Path.Combine(System.IO.Path.GetTempPath(), \”fiddler_request_body\”); if(System.IO.File.Exists(rtPat绝地求生透视h1))System.IO.File.Delete(rtPath1); if(!m_DisableReuqest && System.IO.File.Exists(tempRequestBodyPath)){ json = getJsonCode(quicktype,tempRequestBodyPath,rtPath,rtPath1,target,\”FiddlerRequest\”); } rtPath1 = System.IO.Path.Combine(System.IO.Path.GetTempPath(), \”fiddler_response_body\”); if(System.IO.File.Exists(rtPath1))System.IO.File.Delete(rtPath1); if(!m_DisableResponse && System.IO.File.Exists(tempResponseBodyPath)){ json = getJsonCode(quicktype,tempResponseBodyPath,rtPath,rtPath1,target, \”FiddlerReponse\”); } Clipboard.SetText(json); MessageBox.Show(\”代码生成成功,已复制到剪贴板\”); } static function getJsonCode(file: String,tempRequestBodyPath:String,rtPath:String,rtPath1:String,target:String,type:String): String { var json = \”\”; var tmp1 = \”\”; if(target == \’csharp\’){ tmp1 = \”–quiet –telemetry disable –features just-types –array-type list –no-check-required –namespace \”Fiddlers\” –lang \”\” target \”\” –top-level \”\” type \”Model\” \”\” tempRequestBodyPath \”\”\” \” -o \” \”\”\” rtPath1 \”\”\”; } else if(target == \’kotlin\’){ tmp1 = \”–quiet –telemetry disable –framework just-types –lang \”\” target \”\” –top-level \”\” type \”Model\” \”\” tempRequestBodyPath \”\”\” \” -o \” \”\”\” rtPath1 \”\”\”; } else if(target == \’java\’){ tmp1 = \”–quiet –telemetry disable –array-type list –just-types –package \”Fiddlers\” –lang \”\” target \”\” –top-level \”\” type \”Model\” \”\” tempRequestBodyPath \”\”\” \” -o \” \”\”\” rtPath \”test\” \”\”\”; } else { tmp1 = \”–telemetry disable –just-types –lang \”\” target \”\” –top-level \”\” type \”Models\” \”\” tempRequestBodyPath \”\”\” \” -o \” \”\”\” rtPath1 \”\”\”; } doProcess(file, tmp1) if(System.IO.File.Exists(rtPath1)){ json = \”r//\” type \”-POJOr\” System.IO.File.ReadAllText(rtPath1).Replace(\”package quicktype\”,\”\”); } if(target == \’java\’){ var javaFiles = System.IO.Directory.GetFiles(rtPath,\”*.java\”); if(javaFiles.Length>0){ json = \”r//\” type \”-POJOr\” ; for (var i:int = 0; i<javaFiles.Length; i ) { json = System.IO.File.ReadAllText(javaFiles[i]).Replace(\"package Fiddlers;\",\"\") System.IO.File.Delete(javaFiles[i]); } } } return json; } static function doProcess(file: String,paramsList:String): Boolean { var process = new System.Diagnostics.Process(); process.StartInfo.FileName = file; process.StartInfo.Arguments = paramsList; process.StartInfo.CreateNoWindow = true; process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; process.StartInfo.UseShellExecute = false; process.StartInfo.Verb = \"runas\"; process.StartInfo.RedirectStandardError = true; process.StartInfo.RedirectStandardOutput = true; process.Start(); process.WaitForExit(); process.Dispose(); return true; }

然后下载:httpsnippet和quicktype这2个可执行文件。

下载zip包后然后把这2个文件解压到你的电脑的某个目录。

在回到脚本中找到 doStar 方法中修改成正确的目录。

(经过群友反应:无法在win7系统上使用,在win7系统需要设置一个环境变量(NODE_SKIP_PLATFORM_CHECK 值为 1),如下图

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码

文章到这里就结束了,各位铁汁如果有什么觉得不对的可以发在评论区咱们来讨论哈,

听说关注我并三连的铁汁都已经升职加薪暴富了哦!!!!

本站如有侵权·请联系km836fk@163.com删除
挑逗你卡盟 » dnf外挂王者荣耀辅助 每天一个入门小技巧-Fiddler抓包一键生成代码