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

    博客分类:
  • Android

工具:

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

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

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

使用:

1.下载tcpdump到电脑上

Java代码 复制代码 收藏代码
  1. adbroot
  2. adbremount
  3. adbpushtcpdump/system/bin/tcpdump
  4. adbshellchmod6755/system/bin/tcpdump

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

Java代码 复制代码 收藏代码
  1. adbshelltcpdump-iany-p-s0-w/sdcard/capture.pcap
  2. #"-iany":listenonanynetworkinterface
  3. #"-p":disablepromiscuousmode(doesn'tworkanyway)
  4. #"-s0":capturetheentirepacket
  5. #"-w":writepacketstoafile(ratherthanprintingtostdout)
  6. ...dowhateveryouwanttocapture,then^Ctostopit...
  7. adbpull/sdcard/capture.pcap.
  8. sudoapt-getinstallwireshark#orethereal,ifyou'restillondapper
  9. wiresharkcapture.pcap#orethereal
  10. ...lookatyourpacketsandbewise...
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. adbshelltcpdump-n-s0



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

  1. adbshelltcpdump-X-n-s0port80

怎么使用wireshark进行分析就不再赘述了。 Android通过tcpdump抓包

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):

adbshelltcpdump-n-s0

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

只监听http

adbshelltcpdump-X-n-s0port80

根据以上的信息,写一个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

更多相关文章

  1. Android源代码下载
  2. Android 的权限级别小记
  3. 2018-10-11【Android代码重构使用技巧】
  4. Android studio 删除无用代码
  5. android SystemClock设置系统时间需要system权限
  6. apk安装法之二----一段Android实现应用下载并自动安装apk包的代
  7. Android 通知的基本用法示例代码
  8. Android使用代码实现RelativeLayout,LinearLayout布局
  9. Android 从代码中打开淘宝和亚马逊、facebook、Message

随机推荐

  1. Sql Server 索引使用情况及优化的相关Sql
  2. sqlserver中求字符串中汉字的个数的sql语
  3. sqlserver中根据字符分割字符串的最好的
  4. sqlserver中去除字符串中连续的分隔符的s
  5. sqlserver 快速生成汉字的首拼字母的函数
  6. SQLserver中字符串查找功能patindex和cha
  7. 将mater库中的系统存储过程批量生成*.sql
  8. SQLServer中字符串左对齐或右对齐显示的s
  9. SqlServer参数化查询之where in和like实
  10. SqlServer参数化查询之where in和like实