Android中使用Tcpdump抓取网络数据包

工具:

tcpdump 抓取网络数据包,下载地址  http://www.strazzere.com/android/tcpdump

              源码和文档 http://www.tcpdump.org/

wireshark 无须多说了,PC上大名鼎鼎的网络数据抓取分析工具,这里主要是用来打开和分析tcpdump抓取的网路数据包。

 

使用:

1.下载tcpdump到电脑上

Java代码 复制代码   收藏代码
  1. adb root     
  2. adb remount     
  3. adb push tcpdump /system/bin/tcpdump     
  4. adb shell chmod 6755  /system/bin/tcpdump   
    adb root  
    adb remount  
    adb push tcpdump /system/bin/tcpdump  
    adb shell chmod 6755  /system/bin/tcpdump 

 

2. 运行tcpdump,这个需要root权限,不过上面的命令已经获取root了

Java代码 复制代码   收藏代码
  1. adb shell tcpdump -i any -p -s 0 -w /sdcard/capture.pcap     
  2. "-i any": listen on any network interface     
  3. "-p": disable promiscuous mode (doesn't work anyway)     
  4. "-s 0": capture the entire packet     
  5. "-w": write packets to a file (rather than printing to stdout)     
  6.      
  7.    ... do whatever you want to capture, then ^C to stop it ...     
  8.      
  9. adb pull /sdcard/capture.pcap .     
  10. sudo apt-get install wireshark  # or ethereal, if you're still on dapper     
  11. wireshark capture.pcap          # or ethereal     
  12.      
  13.    ... look at your packets and be wise ...    
    adb shell tcpdump -i any -p -s 0 -w /sdcard/capture.pcap  
    # "-i any": listen on any network interface  
    # "-p": disable promiscuous mode (doesn't work anyway)  
    # "-s 0": capture the entire packet  
    # "-w": write packets to a file (rather than printing to stdout)  
      
       ... do whatever you want to capture, then ^C to stop it ...  
      
    adb pull /sdcard/capture.pcap .  
    sudo apt-get install wireshark  # or ethereal, if you're still on dapper  
    wireshark capture.pcap          # or ethereal  
      
       ... look at your packets and be wise ...  
 You can run tcpdump in the background from an interactive shell or from Terminal. By default, tcpdump captures all traffic without filtering. If you prefer, add an expression like port 80 to the tcpdump command line. 


Real time packet monitoring
Execute the following if you would like to watch packets go by rather than capturing them to a file (-n skips DNS lookups. -s 0 captures the entire packet rather than just the header): 

  1. adb shell tcpdump -n -s 0  



Typical tcpdump options apply. For example, if you want to see HTTP traffic: 

  1. adb shell tcpdump -X -n -s 0 port 80  

怎么使用wireshark进行分析就不再赘述了。
 
 

1. 手机要有root权限

2. 下载tcpdump   http://www.strazzere.com/android/tcpdump

3. adb push c:\wherever_you_put\tcpdump /data/local/tcpdump

4. adb shell chmod 6755 /data/local/tcpdump

5, adb shell,   su获得root权限

6, cd /data/local

7, ./tcpdump -i any -p -s 0 -w /sdcard/capture.pcap

命令参数:

        # "-i any": listen on any network interface

  # "-p": disable promiscuous mode (doesn't work anyway)

  # "-s 0": capture the entire packet

  # "-w": write packets to a file (rather than printing to stdout)

  ... do whatever you want to capture, then ^C to stop it ...


8,  adb pull /sdcard/capture.pcap d:/

9,  在电脑上用wireshark打开capture.pcap即可分析log

 

Execute the following if you would like to watch packets go by rather than capturing them to a file (-n skips DNS lookups. -s 0 captures the entire packet rather than just the header):  

 

adb shell tcpdump -n -s 0   

 

Typical tcpdump options apply. For example, if you want to see HTTP traffic:  

只监听http  

adb shell tcpdump -X -n -s 0 port 80

 

根据以上的信息,写一个bat去执行(tcpdump文件必须在当前目录里)。

 

开始tcpdump 

adb push tcpdump /data/local/tcpdump
adb shell chmod 6755 /data/local/tcpdump
adb shell rm -r /sdcard/capture.pcap
adb shell  /data/local/tcpdump -i any -p -s 0 -w /sdcard/capture.pcap
pause

下载tcpdump文件到电脑 

 adb pull /sdcard/capture.pcap capture.pcap 

 

 问题:有些机器root后通过adb shell 后,默认不是root用户,需要输入 su才能切换到root,这样在执行批处理会有问题,解决方法如下

adb shell "su -c 'sleep 1'"
adb start-server

adb push tcpdump /data/local/tcpdump 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值