使用Fiddler對android應用抓包 專題


 

工作原理

先上個圖

IC68965

此圖一目了然,可以看出fiddler在請求中所處的位置,我們就可以確定它能干些什么。

 

WinInet(“Windows Internet”)API幫助程序員使用三個常見的Internet協議,
這三個協議是用於World Wide Web萬維網的超文本傳輸協議(HTTP:Hypertext Transfer Protocol)、文件傳輸協議(FTP:File Transfer Protocol)和另一個稱為Gopher的文件傳輸協議。
WinInet函數的語法與常用的Win32 API函數的語法類似,這使得使用這些協議就像使用本地硬盤上的文件一樣容易。

 

它實際工作在本機的8888端口http代理,我們啟動fiddler時,它會自動更改代理設置:(可以在cmd中輸入inetcpl.cpl來打開IE選項)

123456

 


chrome中:


從此我們可以看出,只要是http的請求,在請求發起離開本機之前都會經過fiddler,當response回來,沒有達到實際請求者時,也會經過fiddler:這樣我們就可以在輕易的實現修改請求和響應的內容,這樣我們就可以輕松的調試現網的程序。

http://www.cnblogs.com/forcertain/archive/2012/11/29/2795139.html

fiddler中打開IE選項:


與其它工具的區別

       firebug、IE和chrome自帶的開發者工具:這是前端開發的利器了,它們監聽瀏覽器發起的請求和給瀏覽器的響應,顯示請求數據和響應數據,這個fiddler基本功能一致,但它只是監聽,只是對請求和響應數據的記錄,而fiddler完全是接管了請求和響應。

前言:對於移動端應用來說,常常是需要進行抓包分析數據參數的,Android抓包常規想到的解決方案就是通過adb、tcpdump生成抓包文件后,上傳至PC端,再通過wirshark查看抓包的數據,但是,對於android應用來說,客戶端與服務端的交互更多的是以REST接口服務形式的,多基於HTTP/HTTPS協議,采用tcpdump方式缺點也就比較明顯:

1、手機需要root權限

2、操作過程麻煩,且wirshark查看時數據量眾多需要過濾

3、分析的是dump后的文件,不是操作客戶端時實時交互的數據

因此,本文介紹通過Fiddler進行android抓包,以方便快捷地實現對手機應用進行抓包分析

 

Fiddler簡介:Fiddler是一個http協議調試代理工具,它能夠記錄並檢查所有你的電腦和互聯網之間的http通訊。

通過Fiddler抓包過程:手機連接WLAN網絡——設置HTTP代理——手機所有HTTP訪問都經過Fiddler這個中介——訪問外面的Web網絡

一、工具下載:

Fiddler下載地址:http://www.telerik.com/download/fiddler

二、Fiddler設置
打開Fiddler,     Tools-> Fiddler Options .

切換至HTTPS面板
選中"Decrpt HTTPS traffic",設置Fiddler可以截獲HTTPS請求

選中checkbox, 彈出如下的對話框,點擊"YES"

在彈出的對話框 點擊"Yes" ,就可以捕獲本機的https請求了

 

 

切換至Connections面板
選中"Allow remote computers to connect".允許別的機器把HTTP/HTTPS請求發送到Fiddler上來

配置完后需要按提示重啟Fiddler

三、手機設置HTTP代理
1.進入手機設置——無線網絡——WLAN選擇界面
2.長按某WLAN接入點,點擊“修改網絡”
3.代理設置處,選擇手動,例如輸入代理服務器主機名(Fiddler安裝所在的機器IP):192.168.1.10,端口:8888

四、捕獲HTTPS請求:
這一步是為了讓Fiddler能捕獲HTTPS請求。如果只需要截獲HTTP請求,可以忽略這一步
1. 首先要知道Fiddler所在的機器的IP地址:例如安裝了Fiddler的機器的IP地址是:192.168.1.10
2. 打開瀏覽器, 訪問  http://192.168.1.10:8888, 點"FiddlerRoot certificate" 然后安裝證書

五、正常使用客戶端或用瀏覽器打開網頁,如果有發起HTTP/HTTPS請求,則在Fiddler中將能看到抓取到的數據

 

Fiddler使用教程參見:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html#qita
Fiddler手機抓包參考:http://www.cnblogs.com/TankXiao/p/3063871.html

http://blog.csdn.net/hunterno4/article/details/19998273

http://jingyan.baidu.com/article/2a1383289d7792074b134f69.html
http://jingyan.baidu.com/article/2f9b480d81df9241ca6cc258.html

Fiddler過濾指定域名的方法一
切換到fiddler右側窗口的Filters選項卡,勾選頂部的“Use Filters”,找到Hosts區域,設置以下三個選項:


1.Hosts的第一項 有三個子選項,不做更改:
“No Zone Filter”
“Show Only Intranet Hosts”
“Show Only Internet Hosts”

2.Hosts的第二項只監控以下網址,如只監控百度,在下面的輸入框里填上 www.baidu.com
“No Host Filter”不設置hosts過濾
“Hide The Following Hosts”隱藏過濾到的域名
“Show Only The Following Hosts”只顯示過濾到的域名
“Flag The Following Hosts”標記過濾到的域名

3.文本框內輸入需要過濾的域名,多個域名使用”;“分號分割。fiddler默認會檢查http頭中設置的host,強制顯示http地址中的域名。

 

fiddler過濾指定域名的方法二
fiddler_request

1.切換到fiddler右側窗口的Filters選項卡,勾選頂部的“Use Filters”,根據需要找到request headers或者response headers區域
2.勾選”set request header”,文本框分別輸入”Host”和”要過濾的域名”








 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM