優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger

背景

筆者從事Web開發,不論是PC端還是APP端,調試抓包都是必不可少的環節,懂前端的人都知道,PC端調試非常方便,Chrome或者火狐等瀏覽器等都自帶了非常方便且易於使用的開發者工具,便於我們抓包調試。但是現在開發不僅僅是PC端,移動端也佔了很大的比重,但是在移動端調試就沒PC端這麼方便了,因此就要藉助第三方的抓包工具供我們調試抓包,本文就介紹兩個常用的方法進行介紹,分別是Fiddler和開源的抓包工具spy-debugger!


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


Fiddler

Fiddler是一個用於HTTP調試的代理服務器應用程序,最初由微軟Internet Explorer開發團隊的前程序經理Eric Lawrence編寫。Fiddler能捕獲HTTP和HTTPS流量,並將其記錄下來供用戶查看。它通過使用自簽名證書實現中間人攻擊來進行日誌記錄。可以說它是一個非常強大的抓包工具,不過本文僅介紹移動端的調試!

下面我們一起來看看如何操作:

PS:Fidder軟件下載可以自行搜索或者在文末獲取下載方式


1、解壓並打開軟件壓縮包,將證書插件中的文件dll拷貝到Fiddler的根目錄,也就是它本身的上級目錄。


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


2、打開軟件後提示更新,點擊否,然後點擊工具=》選項,並勾選忽略服務器證書錯誤


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


3、然後點擊連接選項卡,如下所示設置代理端口,其他選項可參考筆者設置,這是為了後面作為抓包代理所使用的


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


PS:以上操作需要重啟Fiddler


4、這個地方我們作為測試,我在本地跑了一個測試的API,僅僅是一個沒有任何授權的測試API


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


5、打開模擬器或者你的手機,手機需要同電腦在同一局域網絡環境下,然後打開瀏覽器,輸入你的ip+剛剛設置的端口號,下載證書,按提示安裝即可


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


6、修改模擬器的網絡代理


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


7、在模擬器瀏覽器重新訪問剛剛測試的API,抓包成功


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


8、測試瀏覽器訪問其他網頁,都能成功抓取到


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


9、抓取酷安應用商店下載APP地址,隨便打開一個APP詳情頁面,點擊下載,成功抓取到下載鏈接


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


PS:Fiddler簡單使用模擬器進行遠程調試的方法就此結束,更多高級的用法需要開發者自行摸索,本文在此不在贅述!(軟件獲取方式在文末)


spy-debugger

spy-debugger是一個開源的抓包調試工具,它相對於Fidder來說更加簡單,微信調試,各種WebView樣式調試、手機瀏覽器的頁面真機調試。便捷的遠程調試手機頁面、抓包工具,支持:HTTP/HTTPS,無需USB連接設備。不過得先滿足一定的條件,下面我將帶大家一起來安裝並測試:

https://github.com/wuchangming/spy-debugger


它具備以下特性:


  • 1、頁面調試+抓包
  • 2、操作簡單,無需USB連接設備
  • 3、支持HTTPS。
  • 4、spy-debugger內部集成了weinre、node-mitmproxy、AnyProxy。
  • 5、自動忽略原生App發起的https請求,只攔截webview發起的https請求。對使用了SSL pinning技術的原生App不造成任何影響。
  • 6、可以配合其它代理工具一起使用(默認使用AnyProxy) (設置外部代理)

我是在Windows環境下,因此演示環境是Windows,首先你得安裝過了nodejs,我們使用npm安裝它:

 安裝:npm install spy-debugger -g

優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


啟動:spy-debugger

下面是一些其他啟動選項,根據自己的需要自行配置:


1、端口:

(默認端口:9888)

spy-debugger -p 8888

2、設置外部代理(默認使用AnyProxy)

spy-debugger -e http://xxx:8888

spy-debugger內置AnyProxy提供抓包功能,但是也可通過設置外部代理和其它抓包代理工具一起使用,如:Charles、Fiddler。

該功能使頁面內容修改更加直觀方便。 (默認: false)

spy-debugger -w true

內部實現原理:在需要調試的頁面內注入代碼:document.body.contentEditable=true。暫不支持使用了iscroll框架的頁面。

4、是否允許weinre監控iframe加載的頁面

(默認: false)

spy-debugger -i true

5、是否只攔截瀏覽器發起的https請求

(默認: true)

spy-debugger -b false

有些瀏覽器發出的connect請求沒有正確的攜帶userAgent,這個判斷有時候會出錯,如UC瀏覽器。這個時候需要設置為false。大多數情況建議啟用默認配置:true,由於目前大量App應用自身(非WebView)發出的請求會使用到SSL pinning技術,自定義的證書將不能通過app的證書校驗。

6、是否允許HTTP緩存

(默認: false)

spy-debugger -c true

我本地直接使用和Fiddler一樣的端口8888,自動打開瀏覽器後點擊請求調試

spy-debugger -p 8888

優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


這個地方由於設置的和Fiddler一樣的代理端口,因此模擬器端不必再重新設置網絡


然後我們和剛才一樣,同樣能夠進行正確的抓包調試,如下:


優雅的進行遠程調試APP,Fiddler+開源調試工具spy-debugger


總結

本文就筆者的經驗而言,介紹兩種遠程真機或者模擬器調試的方法,整個流程並不是很複雜,筆者也是才接觸不久,在此分享給大家,希望對剛剛接觸的小夥伴有所幫助!

PS:如果你沒有找到Fiddler或者無法使用,可以私信 ‘Fiddler’,自動獲取下載方式!


分享到:


相關文章: