使用Fiddler对android应用抓包 专题
?
工作原理
先上個圖
此圖一目了然,可以看出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選項)
?
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”和”要過濾的域名”
?
總結
以上是生活随笔為你收集整理的使用Fiddler对android应用抓包 专题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 下/etc/profile、
- 下一篇: 《Adobe Photoshop CS6