1. 程式人生 > >AndroidHttpCapture---手機輕鬆抓包工具

AndroidHttpCapture---手機輕鬆抓包工具

          AndroidHttpCapture網路診斷工具 是一款針對於移動流量劫持而開發的手機抓包軟體 主要功能包括:手機端抓包、PING/DNS/TraceRoute診斷、抓包HAR資料上傳分享。你也可以看成是Android版的"Fiddler" \(^o^)/~github地址:androidHttpCapture

AndroidHttpCapture網路診斷工具

是一款針對於移動流量劫持而開發的手機抓包軟體
主要功能包括:手機端抓包、PING/DNS/TraceRoute診斷、抓包HAR資料上傳分享
使用前請確保手機HTTP代理的關閉

1. http抓包
當用戶通過HttpInterceptor訪問頁面的時候,所有的http請求都會被記錄下來,然後這些請求包可以預覽、分享、上傳(上傳介面的網址需自行在MainActivity修改)。

第一次進入程式需要安裝CA證書以便進行HTTPS抓包(原理同fiddler,MITM中間人)

預覽頁面可以檢視從APP啟動起所有網路請求資料,實現了按分頁過濾、URL搜尋功能,並可清空所有資料包
預覽的內容包括Request Header、Request Cookie、Request Content、Response Header、Response Cookie、Response Content
Content內容如果為JSON將會自動格式化顯示
image image
分享功能將抓包生成的所有資料包打包為har檔案並壓縮為zip,支援分享到微信、QQ等

2. 環境切換
支援切換模擬為微信、手Q,預設為普通瀏覽器。

image

3. 多樣性輸入:導航、位址列、掃一掃、schema呼起
HttpInterceptor的首頁為一個導航頁,目前集成了微信和手Q的一級和二級入口,可以快速直達各目標頁面。
另外還支援位址列直接輸入地址,掃掃描二維碼,以及schema呼起app並開啟目標頁面。
schema的協議格式為:jdhttpmonitor://webview?param={'url'='http://www.baidu.com'}

4. Host配置
可以配置各域名的host
image

5. 檢視console.log日誌
image

6. 網路工具
目前HttpInterceptor集成了常見的網路工具,如dns,ping,以及裝置資訊

7. 設定系統代理,監聽其他app請求包(僅android版支援)
當將使用者所使用的wifi代理伺服器設定為127.0.0.1:8888時,可以對其他app進行抓包(此時該HttpInterceptor就是一個手機上的fiddler)

image

二.Q & A
1. 分享的http包如何檢視和分析?
分享的http包格式字尾為.har,可以通過fiddler方式或者線上工具進行分析。
Fiddler方式需要先將包導到電腦上,然後使用fiddler匯入該包:Import Sessions->Select Import Format ->HTTPArchive ->選擇包,即可
線上工具外網:http://h5.darkal.cn/har/
只需要將包拖入此工具即可分析

三.致謝
AndroidHttpCapture基於Netty、browsermob-proxy來實現核心抓包的功能
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
https://github.com/netty/netty
由於Android5.0+不支援Provider 為JKS的證書,所以逆向修改了Netty庫的證書部分適配Android系統(netty_android.jar)

A free utility to help web developers watch and manipulate network traffic from their AJAX applications.
https://github.com/lightbody/browsermob-proxy
修改了多處browsermob-proxy的原始碼適配Android系統

目前遺留了一個Bug:信任所有的伺服器證書不做校驗

MIT License
Copyright (c) 2016 AndroidHttpCapture

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.