1. 程式人生 > >【抓包工具】Fiddler有哪些好用的指令碼功能?

【抓包工具】Fiddler有哪些好用的指令碼功能?

Fiddler(官方文件地址

Fiddler自定義指令碼可以實現很強大的內容替換,包括很有意義的修改請求和返回內容。具體的方法可以參考官網文件。

# FiddlerUseScript:首先你需要在fiddler->rules->costomize rules下載指令碼編輯器fiddler scriptediter(是不是需要梯子,自己試試看)



簡介:抓包工具,除錯介面除了已有的功能,還可以使用靈活的指令碼來處理一些場景


*********************************************************************************************************
**官網指令碼api示例教程:http://docs.telerik.com/fiddler/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse
**Fiddler命令列教程:http://docs.telerik.com/fiddler/knowledgebase/quickexec
*推薦一箇中文部落格:http://www.cnblogs.com/mcho/p/3983066.html
**FiddlerScript的api:http://fiddlerbook.com/Fiddler/dev/ScriptSamples.asp
**jscript.net官網教程:https://msdn.microsoft.com/en-us/library/91td9cas(v=vs.80).aspx
**google網上論壇:https://groups.google.com/forum/?fromgroups#%21forum/httpfiddler
********************************************************************************************************

#該檔案在window的檔案目錄位置:C:\Users\"you_pc_name

"\Documents\Fiddler2\Scripts

FiddlerScript的場景應用(20170627):


++++++++++++++++++beforerequest:++++++++++++++++++++++++++++

//1.在此處【設定代理網路限速】1KB的量 50Kb/s需要delay 160ms 
//頻寬:mbps kbps (位元流)  網速:KB/s MB/s (位元組流)
//修改完記得勾選【simulate modem speeds】[randInt(1,50) 模擬網路抖動]
static function randInt(min, max) {
    return Math.round(Math.random()*(max-min)+min);
}
if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded.
    oSession["request-trickle-delay"] = ""+randInt(1,50);
    // Delay receives by 150ms per KB downloaded.
    oSession["response-trickle-delay"] = ""+randInt(1,50);
}
//2.在此處【過濾並高亮顯示host】
if( oSession.host.IndexOf("host") > -1 || oSession.host.IndexOf("host") > -1){
	oSession["ui-color"] = "green";
}
//3.在此處【過濾url並高亮顯示】
if(oSession.url.IndexOf("url_path") > -1){
    oSession["ui-color"] = "yellow";
    }
//4.在此處【重定向urlplace】host和url的判斷  
if(oSession.HostnameIs("host") && oSession.url.IndexOf("url_path") > -1){
	oSession.hostname = "host"
	}

+++++++++++++++++++beforerespond:++++++++++++++++++++++++

//需要在返回頭這裡就設定buffer處理,否則,後續無法在onBeforeResponse中修改body(修改的動作不會阻塞原來的返回)
static function OnPeekAtResponseHeaders(oSession: Session) {
	if (oSession.HostnameIs("cmshow.qq.com") && oSession.oResponse.headers.ExistsAndContains("Content-Type","text/html")){
		oSession.bBufferResponse = true;    
	}
}
//5.在此處修改response的bady內容【使用正則匹配方式】
if(oSession.HostnameIs("host") && oSession.url.IndexOf("url_path") > -1){
	// 獲取response中的body字串
	var strBody=oSession.GetResponseBodyAsString();
	// 用正則表示式或者replace方法去修改string
	var regx = '"stream_mode":\d*?'
	strBody=strBody.replace(regx,'"stream_mode":0');
	// 彈個對話方塊檢查下修改後的body               
	FiddlerObject.alert(strBody);
	// 將修改後的body,重新寫回Request中
	oSession.utilSetResponseBody(strBody);
}
//6.在此處修改json中的資料【修改介面欄位的值】
if(oSession.HostnameIs("host") && oSession.url.IndexOf("url_path") > -1){
	// 獲取Response Body中JSON字串
	var responseStringOriginal =  oSession.GetResponseBodyAsString();
	// 轉換為可編輯的JSONObject變數
	 var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);
	 // 修改JSONObject變數,修改欄位資料
	 responseJSON.JSONObject["new_core"] = "True";  
	 responseJSON.JSONObject["stream_mode"] = 5;
	 // 重新設定Response Body
	 var responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);
	 oSession.utilSetResponseBody(responseStringDestinal);
	}
//7.在此處修改json中的資料【增加介面欄位=值】
if(oSession.HostnameIs("host") && oSession.url.IndexOf("url_path") > -1){
	// 獲取Response Body中JSON字串
	var responseStringOriginal =  oSession.GetResponseBodyAsString();
	// 轉換為可編輯的JSONObject變數
	var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(responseStringOriginal);
	// 修改JSONObject變數,修改欄位資料
	responseJSON.JSONObject["type_arr"] = ["bullet"];
	// 重新設定Response Body
	var responseStringDestinal = Fiddler.WebFormats.JSON.JsonEncode(responseJSON.JSONObject);
	oSession.utilSetResponseBody(responseStringDestinal);
}
//8.使指定URL支援CORS跨域請求
//有時候,你呼叫一個 json 介面,發現跨域了,你需要去找介面的開發人支援跨域,顯然傻傻等待後端開發完畢再聯調是低效率的,
//這個時候就就要在後臺改完之前就自己實現跨域的模擬,此時 fiddler 顯然是再好不過的利器。支要持 CORS 跨域,
//就是要為請求的返回頭增加  Access-Control-Allow-Origin 屬性,因此需要修改 OnBeforeResponse函式,在該函式的末尾新增你的 CORS 邏輯
static function OnBeforeResponse(oSession: Session) {
	...
	if(oSession.uriContains("要處理的url")){
		oSession.oResponse["Access-Control-Allow-Origin"] =  "允許的域名";
		oSession.oResponse["Access-Control-Allow-Credentials"] = true;
	}
}
//9.同一域名不同埠或目錄轉發到不同伺服器
//某些情況下,一個域名部署了多個業務的應用,但有時候你只需要修改自己的應用,這個時候你會使用hosts把該域名指向開發機,
//但問題來了,該域名下所有的應用都指向了同一個開發機,如何使得其他應用仍然指向正式環境?顯然依靠傳統的hosts工具無法解決這個問題,
//這時就需要編寫fiddler規則指令碼了:
static function OnBeforeResponse(oSession: Session) {
	...
	if(oSession.host == "www.google.com:80"){
		oSession["x-overrideHost"] = "123.123.123.123";
	}
	if(oSession.pathAndQuery.contains("/path1/"){
		oSession["x-overrideHost"] = "124.124.124.124";
	}else if(oSession.pathAndQuery.contains("/path2/"){
		oSession["x-overrideHost"] = "125.125.125.125";
	}
}
//10.場景--同時將介面返回修改成404;這種方式可以解決bpu命令的單個除錯的 缺點;全部斷點需要操作的步驟太多,浪費時間
if(oSession.HostnameIs("host1") && oSession.url.IndexOf("url_path1") > -1){
	//說明已經拿到了播放請求介面,將其返回網路狀態碼修改成:404
	oSession.oResponse.headers.HTTPResponseCode = 404;
	oSession.oResponse.headers.HTTPResponseStatus = "use fiddler change responed code";
	
	}
if(oSession.HostnameIs("host2") && oSession.url.IndexOf("url_path2") > -1){
	//同上
	oSession.oResponse.headers.HTTPResponseCode = 404;
	oSession.oResponse.headers.HTTPResponseStatus = "use fiddler change responed code";
	}


總結:
fiddler和charles 使用的場景來看,是見仁見智的,看個愛好吧,喜歡搞一下小指令碼,可以選擇fiddler,最後還有什麼好的場景指令碼繼續更新。
  

相關推薦

工具Fiddler哪些指令碼功能

Fiddler(官方文件地址)Fiddler自定義指令碼可以實現很強大的內容替換,包括很有意義的修改請求和返回內容。具體的方法可以參考官網文件。# FiddlerUseScript:首先你需要在fidd

工具HttpWatch(功能詳細介紹)

  HttpWatch是功能強大的網頁資料分析工具,整合在IE工具欄,主要功能有網頁摘要、cookies管理、快取管理、訊息頭髮送/接收,字元查詢、POST資料、目錄管理功能和報告輸出。HttpWatch是一款能夠收集並顯示深層資訊的軟體,它不用代理伺服器或一些

企業上erp軟體價值?哪些功能

   實施erp軟體是企業踏上資訊化管理的第一步,不僅能提高企業辦公效率、完善企業管理制度,彌補企業管理漏洞,還能幫助企業在激烈的市場競爭中立於不敗之地,可見erp軟體對企業的重要性不言而喻。那麼,到底什麼才是erp軟體呢?erp軟體有哪些功能模組呢?對企業的好處是什麼呢?

工具fiddler、charles手機連接電腦代理

打開 抓包 vivo 無線 strong dos 頁面 查看 option 手機連接c

分析Charles和 夜神模擬器 對安卓應用進行分析

技術分享 windows red 工具 com nsh pro 4.2 name 準備工具 : 1 Charles : https://www.charlesproxy.com (收費) 2 夜神模擬器 : https://www.yeshen.com (免費)

Https工具Fiddler

簡介 抓包工具可以幫助開發或者測試人員很方便的檢視到實時資料傳輸內容。 操作說明 第一步:設定Fiddler 點選頂部選單欄的Tools>Options,具體選項可以按照我的配置來,只需配置前三個選項夠了。如下圖 第二步:配置手機代理

哪些的網際網路資料取,資料採集,頁面解析工具

1、 網際網路剛興起的時候,資料索引是個大問題,當時Yahoo的分類頁面著實火了一陣子。 2、隨著網際網路資料量越來越大,Google,百度等搜尋引擎火了起來。這個階段,幾乎沒有比搜尋引擎更火的技術了,連帶分詞技術都火得一塌糊塗。緊接著, Nutch等開源搜

工具Typora 一款的markdown語法工具 個人配置喜好

軟體的官網下載連結,滑到底部選擇版本即可下載 主題設定 偏好設定 效果展示

Python哪些的語言翻譯方法

size webkit ted mage clas lan 網上 eba splay 最近有個需求,要將幾萬條數據從日語翻譯成中文。因為數據的獲取和處理用的是python代碼,所以想先嘗試翻譯部分也用python實現。 目前網上查到的翻譯方法有百度、有道以及谷歌翻譯,下

哪些的讀書筆記app

首先需要明辨的是筆記app和讀書筆記app是有很大的差別,大部分的筆記app都是生活辦公中使用,而且這類app要麼分高階賬號,要麼按月按年收費。 再就是專門單獨做讀書筆記的app也很少,大部分都是放在閱讀軟體裡面去了。像微信閱讀、網易蝸牛閱讀都是以看書為主,在看書瀏覽介面附帶著有做筆記的

Fiddler 工具總結轉載

原博主連線在文章底部 Fiddler是一個蠻好用的抓包工具,可以將網路傳輸傳送與接受的資料包進行截獲、重發、編輯、轉存等操作。也可以用來檢測網路安全。反正好處多多,舉之不盡呀!當年學習的時候也蠻費勁,一些蠻實用隱藏的小功能用了之後就忘記了,每次去網站上找也很麻煩,所以蒐集各大網路的資料,總結了一些常用的功能

運維安全-Fiddler-工具

技術 ofo 發送 com href 官網 bubuko 運維安全 抓包工具 https://www.telerik.com/fiddler 官網地址會攔截電腦發送的一些http請求。【運維安全】-Fiddler-抓包工具

Ubuntu 16.04安裝Fiddler工具(基於Mono,且會BUG)

clas 新的 pan ddl chmod mon aid bsp code 說明:Fiddler官方提供了Mono版本的,但是只有2014版本的,不是最新的,並且運行期間會有BUG,比如界面錯亂卡死等等,但是勉強能代理,抓SSL的包,如果使用了要做好心理準備。將就一下還是

開發工具iOS真機除錯工具Charles安裝及使用

支援原創,更多內容請關注: iOS開發過程中,經常需要用真機來測試和後臺的網路資料傳輸,需要一個趁手的抓包工具。在Windows下用的fidder很好用,但是由於它是在.Net框架之下的,所以在Mac下需要有一個替代品,就是Charles。 一、安裝 二、

iTestCatCharles的https方法(工具Charles使用教程)

1、Charles的Https抓包原理 HTTPS是對資料進行了加密處理的,如果不做任何應對是無法獲取其中內容。所以Charles做的就是對客戶端把自己偽裝成伺服器,對伺服器把自己偽裝成客戶端: Charles攔截客戶端的請求,偽裝成客戶端向伺服器進行請求 伺服

Fiddler工具

url地址 compute 選中 測試結果 安全 百度網 證書生成 調試 詳細介紹 Python+Requests接口測試教程(1):Fiddler抓包工具 歡迎您來閱讀和練手!您將會從本章的詳細講解中,獲取很大的收獲!開始學習吧! 目錄 為什麽要先學fiddler

fiddler+android工具配置使用

row and fig 端口 沒有 ces 其他 nor 如何配置 今天臨時增加一個工作,手機需要抓包,查看了不同的抓包工具,最後確定使用fiddler抓包工具進行操作,這裏以android為例記錄一下工具的配置和使用操作。 fiddler的安裝 網上有很多fiddler的

Fiddler 工具總結(轉)

人的 現在 手機 inspect bubuko lec 開啟 區分 cmd 閱讀目錄 1. Fiddler 抓包簡介 1). 字段說明 2). Statistics 請求的性能數據分析 3). Inspectors 查看數據內容

fiddler工具的基本使用

url watch 無法 src 選中 服務器 發送 頁面 pos fiddler是基於C#的HTTP抓包工具。 fiddler的原理:   fiddler是http代理服務器,它會抓取瀏覽器向服務器發送的HTTP請求,然後在將該請求發送到服務器。再獲取從服務器返回的請求

fiddler工具詳解

item 設備 cat 是什麽 eight 菜單 header 有一個 分析 轉自:http://www.cnblogs.com/yyhh/p/5140852.html Fiddler 抓包工具總結 閱讀目錄 1.