在Android上使用tcpdump抓包

在CSDN论坛上看到有同学想做一个查违章的应用,问是否有API可以查询交通违章。想到自己正在手机上用一款应用来查交通违章,是不是可以通过分析报文看出用的是什么API来呢?

过程很简单,前提条件是手机要root过,否则执行不了tcpdump。

步骤记录一下:

1. 从Play商店安装Android Terminal Emulator

2.下载Android版本的tcpdump。从网上找了一下,有现成的:http://www.strazzere.com/android/tcpdump,将文件传到手机SD卡的根目录下。

3.在给tcpdump文件chmod的时候发现,如果文件放在SD卡上是不能加可执行权限的。尝试使用mv命令将文件挪到/data/local目录下,但是提示不在同一个设备无法执行命令,于是改用dd命令。

首先执行su切换到root用户,然后dd if=/sdcard/tcpdump of=/data/local/tcpdump,成功将tcpdump文件复制到目标文件夹。

4. chmod 777 /data/local/tcpdump

5. tcpdump -p -vv -s 0 -w /sdcard/capture.pcap。

启动捕捉报文后,打开要抓包的应用,完成操作后,需要结束tcpdump命令,如果是在Linux终端只要Ctrl+C就可以,但在手机上怎么敲Ctrl键呢?实际上Android的终端模拟器也支持:点击右上角的菜单键可以看到“特殊键”菜单,里面能列举很多对应键盘的模拟按键,如Page Down、 Delete、Ctrl等,我的手机默认Ctrl键是Volume Down按键。所以取消tcpdump只要同时按下Volume Down + c 就可以。

部分命令及回显:



将文件从手机拷贝到PC,用wireshark打开


因为现在比较流行使用REST API,所以先用“http”进行过滤,根据报文内容的相关性找到找到服务器IP,再精确地把所有交互过滤出来,这样从抓到的报文中就可以看到请求的API是什么了。直接将url拷贝到浏览器中也能看到返回的JSON数据。


但是我用的App会请求自己公司服务器的数据,并不通用,后来网上找了一下发现聚合数据提供相关服务,但要收费,网址:http://www.juhe.cn/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值