AndroidHttpCapture

Introduction: AndroidHttpCapture 网络诊断工具 是一款针对于移动流量劫持而开发的手机抓包软件 主要功能包括:手机端抓包、PING/DNS/TraceRoute 诊断、抓包 HAR 数据上传分享。你也可以看成是 Android 版的"Fiddler" (^o^)/~
More: Author   ReportBugs   
Tags:

是一款针对于移动流量劫持而开发的手机抓包软件,可以当作是 Android 版的‘Fiddler’
主要功能包括:手机端抓包、PING/DNS/TraceRoute 诊断、抓包 HAR 数据上传分享
使用前请确保手机 HTTP 代理的关闭

Demo APK 下载

点击查看操作手册

功能简介

1. HTTP/HTTPS 抓包
当用户通过 AndroidHttpCapture 访问页面的时候,所有的 http 请求都会被记录下来,然后这些请求包可以预览、分享、上传(上传接口的网址需自行在 MainActivity 修改)。

第一次进入程序需要安装 CA 证书以便进行 HTTPS 抓包(原理同 fiddler,MITM 中间人)不安装证书的话无法抓取 HTTPS 的请求

高版本的 Android 不允许跳转设置安装证书,需要自行在设置->安全和锁屏->加密与凭据->安装证书(证书位置:/har/littleproxy-mitm.pem)

预览页面可以查看从 APP 启动起所有网络请求数据,实现了按分页过滤、URL 搜索功能,并可清空所有数据包
预览的内容包括 Request Header、Request Cookie、Request Content、Response Header、Response Cookie、Response Content
Content 内容如果为 JSON 将会自动格式化显示
image image
分享功能将抓包生成的所有数据包打包为 har 文件并压缩为 zip,支持分享到微信、QQ 等

2. 返回包注入
支持修改流量返回包(该版本暂时只支持 http 的修改)
image image

3. 环境切换
支持切换模拟为微信、手 Q,默认为普通浏览器。
image

4. 多样性输入:导航、地址栏、扫一扫、schema 呼起
支持地址栏直接输入地址,扫扫描二维码,以及 schema 呼起 app 并打开目标页面。
schema 的协议格式为:jdhttpmonitor://webview?param={'url'='http://www.darkal.cn'}

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

6. 查看 console.log 日志
image

7. 网络工具
目前 AndroidHttpCapture 集成了常见的网络工具,如 dns,ping,以及设备信息
image

8. 设置系统代理,监听其他 app 请求包
当将用户手机的代理服务器设置为 127.0.0.1:8888 时,可以对其他 app(例如微信)的 HTTP 数据进行抓包
(此时 AndroidHttpCapture 就是一个手机上的 fiddler)
image

Q & A

  1. 分享的 http 包如何查看和分析?
    分享的文件解压后为.har 文件,可以通过 fiddler 方式或者在线工具进行分析。
    Fiddler 方式需要先将包导到电脑上,然后使用 fiddler 导入该包:Import Sessions->Select Import Format ->HTTPArchive ->选择包,即可
    在线工具外网:http://static.hk.darkal.cn/har/ 只需要将包拖入此工具即可分析

已知 BUG

  1. 信任所有的服务器证书不做校验
    2. 开启返回包注入功能后,https 返回的部分页面存在 err_CONTENT_LENGTH_MISMATCH 错误
    (看起来似乎是解决了,待用户反馈)

如果觉得工具好用的话请多多 star 以及 Pull requests
支持我喝杯咖啡请扫描下面的二维码,谢谢(ง •̀_•́)ง

image

致谢

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 系统

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.

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools