AndroidHttpCapture 网络诊断工具 是一款针对于移动流量劫持而开发的手机抓包软件

AndroidHttpCapture

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

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

Demo APK 下载
 

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 将会自动格式化显示
 
分享功能将抓包生成的所有数据包打包为 har 文件并压缩为 zip,支持分享到微信、QQ 等

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


3. 多样性输入:导航、地址栏、扫一扫、schema 呼起
HttpInterceptor 的首页为一个导航页,目前集成了微信和手 Q 的一级和二级入口,可以快速直达各目标页面。
另外还支持地址栏直接输入地址,扫扫描二维码,以及 schema 呼起 app 并打开目标页面。
schema 的协议格式为:jdhttpmonitor://webview?param={'url'='http://www.baidu.com'}

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


5. 查看 console.log 日志


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

7. 设置系统代理,监听其他 app 请求包(仅 android 版支持)
当将用户所使用的 wifi 代理服务器设置为 127.0.0.1:8888 时,可以对其他 app 进行抓包(此时该 HttpInterceptor 就是一个手机上的 fiddler)


二.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:信任所有的服务器证书不做校验

你可能感兴趣的:(Android,自定义控件进阶)