首页
社区
课程
招聘
[分享]不限网络环境! 对单一APP"实时"抓包
发表于: 2015-5-27 20:11 13698

[分享]不限网络环境! 对单一APP"实时"抓包

2015-5-27 20:11
13698
这阵子因为分析一款android游戏 所以尝试抓包
但发现古歌上 似乎没人提供 "针对指定app"实时"抓包"的方法 
在此分享我的方法:

1.在电脑上使用 CCProxy 架设 socks5 server。

2.android端 借由 ProxyDroid,使APP透过电脑的socks5 server代理联网。

3.电脑执行 Wireshark,并使用Filter功能,过滤出APP和socks5 server间的通讯。

  3.1 要过滤出我们要的信息 需要稍为了解socks5协议,大体上流程:1.socks5 client与socks5 server 的特定port建立连接。2.client告诉server 欲连结的host的 IP 和 Port,由server 向 host 建立连结。3.此后只要client send server 什么,server就send host 什么;server从host recv 什么,client 就从server recv什么,socket协议不会额外包装讯息。

  3.2 Capture Filter:(src 192.168.23.1 and src port 10800 and dst 192.168.23.2) or (src 192.168.23.2 and dst 192.168.23.1 and dst port 10800) ,说明: 192.168.23.2 是 android端IP,192.168.23.1是电脑IP,10800是socks5 server的port。Capture Filter语法很直观,src代表 source ip ; dst代表 destination ip

我表达能力不好,将就将就...文中很可能有错误的理解 还请各位指出 谢谢哦~

补充: 我的网路环境是android连上电脑分享的wifi , wireshark对无线网路的介面监听
其实无论android使用何种方式连网 甚至android和电脑不同局网  此方法都适用的
只要你知道android端的ip 和socks5 server的ip即可透过wireshark的filter过滤出来
缺点是,同时只能对一个app抓包 一个以上的话 wireshark将无法分辨是哪一个app的封包。
补充:
关于Capture Filter, 我认为应该再说清楚些!

    src                                  dst
APP -----------------> socks5 server
IP 定值                          IP 定值
port 不定                    port 定值
因此  (src 192.168.23.2 and dst 192.168.23.1 and dst port 10800)
_______________________________________________________

               src                                    dst
socks5 server -----------------> APP
IP 定值                          IP 定值
port 定值                    port 不定
因此  (src 192.168.23.1 and src port 10800 and dst 192.168.23.2)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 94
活跃值: (2397)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
不错,学习了
2015-5-28 09:37
0
雪    币: 215
活跃值: (372)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
额,我猜楼主搜索姿势不对...
2015-5-28 10:37
0
雪    币: 52
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢指教,但不明白搜索姿势是什么?
2015-5-28 11:20
0
雪    币: 133
活跃值: (587)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
5
。。。。。。。你这太费劲了
2015-5-28 21:30
0
雪    币: 52
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
njxxdx大,有什么比较好的方法吗? thanks!
2015-5-28 22:49
0
雪    币: 1121
活跃值: (722)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
7
1. 开启模拟器,模拟器里装游戏运行,wireshark抓联网网卡包。缺点1:模拟器不保证全部应用都兼容;缺点2:包过滤起来比较难,电脑的各程序流量会造成干扰。PS:电脑足够强的话,纯净虚拟机里装模拟器,再抓虚拟机的包,基本无干扰,应该算是最理想的情况。
2. 电脑开wifi,手机连wifi,手机运行游戏,wireshark抓wifi网卡和联网网卡包。优点:简单方便;缺点:两个网卡的包,比较混乱,尤其是wifi网卡的包很多干扰流量。
3. 电脑开vpn,手机连电脑vpn,wireshark抓非VPN的包(VPN的包加密)。这个方式没试过,属于猜测,不过应该没问题。
4. 开代理,不过代理是万能的,ProxyDroid也只是Root下才好使(但是我实测ProxyDroid即便root下也不怎么好使,不知道是不是我打开的姿势不对)。
5. 类似代理,更改wifi采用静态地址,将DNS填写为电脑IP,感兴趣的网站将DNS回复成电脑IP形成劫持,电脑上抓取固定端口(比如80)的包做转发。这种方式类似代理,但是相当于包劫持,可以随意更改数据内容。(比如弄个假的VIP15)

以上是工作中依据实际情况采取的不同方式,大牛们见笑了。
2015-5-29 01:12
0
雪    币: 52
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢分享! proxydroid我觉得挺好使的 但我用的是真机  也因为proxydroid能使指定app通过socks代理联网 才使过滤变的很简单
2015-5-29 20:13
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
手机连接电脑wifi, 使用smsniff或者Microsoft Network Monitor 3直接抓取虚拟网卡的包就好了
2015-5-29 21:16
0
游客
登录 | 注册 方可回帖
返回
//