zoukankan      html  css  js  c++  java
  • tcpdump手机抓包

    ####

    这个没有图形界面,可以在Linux服务器上运行,这是比wireshark优秀的地方,

    ###

    首先手机root

    ####

    然后adb要能连接手机

    ####

    下载tcpdump

    下载连接如下:
    http://www.androidtcpdump.com/android-tcpdump/downloads

    #####

    copy到手机上(root过)

    然后将下载到的tcpdump拷贝到手机某个目录下

    adb push /Users/liqian/Downloads/tcpdump /storage/sdcard0/tcpdump

    ####

    安装到系统目录
    进入adb shell,然后再获取su权限.

    cp /sdcard/liqian/tcpdump /system/bin/tcpdump 

    这一步copy如果报错:adb向手机写入文件,Read-only file system

    执行这个命令:mount -o rw,remount /system

    ####

    给tcpdump添加执行权限
    命令:chmod 755 /system/bin/tcpdump

    ####

    执行tcpdump
    1|shell@ja3gduosctc:/system/bin $ su
    root@ja3gduosctc:/system/bin # ./tcpdump
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes

    ####

    使用tcpdump抓包

    代码如下:

    tcpdump -i wlan0 -s 0 -w /sdcard/1.pcap

    可以结束时使用Ctrl+c快捷键让tcpdump结束抓包,抓到数据会存到/sdcard/1.pcap文件内

    ###

    tcpdump命令学习

    tcpdump支持相当多的不同参数,如:

    使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,

    使用-c参数指定要监听的数据包数量,

    使用-s:"-s 0": capture the entire packet(-s参数用以指定数据包捕获长度,此处指定为0,意为抓取完整的数据包)

    使用-w参数指定将监听到的数据包写入文件中保存

    ####

    监视指定主机的数据包

    打印所有进入或离开sundown的数据包.

    tcpdump host sundown
    也可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包

    tcpdump host 210.27.48.1

     tcpdump -i wlan0 -s 0 -c 2 -X icmp

    使用十六进制输出

    当我们想要检查包的内容是否有问题的时候,十六进制的输出很有帮助:

    -X 是十六进制输出

    -c 是输出多少个,2就是输出两个,不加就是输出全部,

    ###

    基于包大小进行筛选

    如果你正在查看特定大小的包,你可以使用这个参数。使用 less、greater 或者对应的数学符号进行过滤:

    tcpdump less 32 tcpdump greater 64 tcpdump <= 128

    ###

    -A:以ASCII形式打印每个包,对抓取web page很方便(最小化链路层报头)。

    -r 读取我们输出的文件,

    -X 就是16进制查看,

    这个地方就可以加很多的参数进行过滤了

    ####

    更复杂的tcpdump参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都截留下来,数据量太大,反而不容易发现需要的数据包。

    使用man tcpdump查看这些过滤规则的具体用法。

    从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。

    显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,

    然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

    FreeBSD提供的一个有效的解码程序为tcpshow,它可以通过Packages Collection来安装。

    ###

    重新打开一个终端(Terminal),执行如下命令
    复制代码代码如下:

    adb pull /sdcard/1.pcap .

    ###

    装Wireshark并分析pcap文件

    双击 1.pcap文件,1.pcap文件会自动被Wireshark打开。在Wireshark的Filter内输入如下一些过滤条件,可以更加方便地分析数 据来源。
    tcp.port == 80 //过滤来自80端口的TCP数据
    udp.port == 12345 //过滤来自12345端口的UDP数据
    ip.src == 192.168.0.1 //过滤源IP为192.168.0.1的数据
    ip.dst == 192.168.0.1 //过目的IP为192.168.0.1的数据

    ###

    但是你抓到了你都看不懂,怎么办????

    ####

  • 相关阅读:
    box-shadow中的理解(bootstrap)
    setTimeout用于取消多次执行mouseover或者mouseenter事件,间接实现hover的悬停加载的效果.
    把之前能运行的springboot项目重新打开运行,报错 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
    angularjs服务json文件实现省市区三级联动
    js页面用户信息填写表单
    js页面中实现加载更多功能
    遇见未知的自己
    ASP.NET Core 入门教程1 ASP.NET Core 读取配置文件
    有一种选择叫女程(5)
    有一种选择叫女程(4)
  • 原文地址:https://www.cnblogs.com/andy0816/p/15423512.html
Copyright © 2011-2022 走看看