tcpdump移植和使用

1. 概述

tcpdump是一个用于抓取网络数据包的命令行工具,与带界面的Wireshark一样,基于libpcap库构建。

tcpdump的设计目标是帮你分析包头(比如Tcp包头,udp包头),同时你可以根据包头,用它支持的表达式,过渡出你感兴趣的包,从而方便你自己处理包中数据。

2.移植

分为下面三步:

1)设置环境变量:

a. vi configure.env

b. 输入以下内容:

ARCH=xxxxxx    #xxxxx为你的编译器目录

CC=${ARCH}-gcc

CXX=${ARCH}-g++
    AR=${ARCH}-ar

export ARCH

export CC

export CXX

export AR

c. 保存后,配置当前shell:

source configure.env

2)移植libpcap

a. 下载libpcap-1.0.0.tar.gz;

b. 解压:

tar xvf libpcap-1.0.0.tar.gz

c. 进入解压后的libpcap-1.0.0目录,配置项目:

ac_cv_linux_vers = 2.6.35 ./configure -host=arm-linux --with-pcap=linux --prefix=xxxxxx    #2.6.35为目标linux版本,xxxxxx为你想安装的位置

d.编译、安装:

make; make install

3)移植tcpdump

a.下载tcpdump-4.0.0.tar.gz;

b.解压:

tar xvf tcpdump-4.0.0.tar.gz

c.进入解压后的tcpdump-4.0.0目录,配置项目:

ac_cv_linux_vers = 2.6.35 ./configure -host=arm-linux --prefix=xxxxxx    #选项含义同上

d.编译:

make;     #此步骤会提示"undefined reference to ‘ip6_print‘"

e.注释掉print-enc.c文件中的下面这段:

case AF_INET6:

ip6_print(p, length);

break;

f.编译、安装:

make; make install    #完成后,可以安装目录的sbin中找到tcpdump

3.使用

1)使用格式如下:

命令    [无参数标志] [有参数标志] [表达式]

Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
		[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
		[ -i interface ] [ -M secret ] [ -r file ]
		[ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ]
		[ -y datalinktype ] [ -z command ] [ -Z user ]
		[ expression ]

2)常用标志:

-x    #打印数据的16进制值,每行16个字节

-X    #同上,还在每行右边显示对应的ASCII的值,如果值可显示的话

-s 0    #打印时,包括包中的数据,默认只打包的帧头(比如:tcp的帧头)

3)常用表达式

a. 单个表达式间存在空格时,要用引号包起来

b. 表达式间要用and/or/not连接起来

src/dst    #指定下一个参数(host/net/port) 作用于本地,或是远程

host/net 192.168.1.150   #指定我们关心的主机、IP等

tcp/udp    port    3333    #指定我们关心的tcp或udp端口

and or not    #表达式间的与、或、非

& || !    #表达式内部的与、或、非

c.示例

./tcpdump -X -s 0 host 192.168.1.153 and "tcp[tcpflags] & tcp-push != 0" and src port 3333

#抓住所有从192.168.1.153的3333端口发过来的tcp数据包(不要同步包、结束包等),并将包头和数据的16进制值与ASCII值打印到控制台

4)详细使用说明

标志说明:http://www.tcpdump.org/tcpdump_man.html

表达式说明:http://www.tcpdump.org/manpages/pcap-filter.7.html

来自为知笔记(Wiz)

时间: 2024-11-04 21:36:49

tcpdump移植和使用的相关文章

手机数据抓包以及wireshark技巧

本文主要讨论一种非常方便的抓取Android和iphone手机网络数据包的办法,以及介绍wireshark最常用的技巧 抓包工具介绍 (1).网页抓包工具 Chrome浏览器插件 FireBug 插件 HttpWatch Fiddler 在浏览器chrome和firefox中可以使用插件抓取网络包,httpwatch会以插件的形式安装在IE和firefox浏览器中,对web请求进行抓包.而Fiddler则是一个独立的程序,其原理是在启动之后开启对127.0.0.1:8888的端口进行监听,并将计

【Windows10 IoT开发系列】API 移植工具

原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 API? 此工具可以为你回答这些问题,并协助你将你的当前 Win32 应用程序和库迁移到 Windows IoT Core. Windows 10 IoT 核心版 API 移植工具可在 ms-iot/iot-utilities github 存储库中找到.下载存储库 zip 并将 IoTAPIPor

LEDAPS1.3.0版本移植到windows平台----HuCsm云掩膜模块

这个是2012年左右放在百度空间的,谁知百度空间关闭...转移到博客园. 最近项目用到3.1.2版本的LEDAPS,新版本的使用情况会在后续文章中慢慢丰富. HuCsm是将LEDAPS项目中的TM/ETM+大气校正流程系列算法中的云掩膜模块由linux系统移植到windows下的产物,代码本身改动不大,使用接口不变. 包含文件: HuCsm.exe hd423m.dll hm423m.dll 编译程序需要包含的静态库有: gctp.lib hdfeos.lib hd423m.lib hm423m

网络安全之tcpdump工具

引言 wireshark使用一款非常不错的抓包软件,在图形化界面占绝对统治地位:尽管其在字符界面下有些许选项可供使用,但终究不太方便,下面我再介绍一款NB的终端抓包工具 tcpdump 1.混杂模式 linux的网卡有混杂模式一说,当开启混杂模式后,网卡可以抓取所有的数据包,不管这个包是不是发给自己或自己发出的.由于随意截取别人的数据包存在一定安全问题,因此linux对于网卡默认是关闭混杂模式的,切只有root用户能够开启网卡混杂模式,开启方式: ifconfig ethX promisc 2.

学习者移植NES

http://blog.csdn.net/zerokkqq/article/details/52964249 http://bbs.eeworld.com.cn/thread-415692-1-1.html 上面这个是我移植参考他人的文件.手把手教你移植XXX,多牛逼. 作为承前启后的一件事,你要搞清楚接下来要做什么.别傻了,我们不可能知道之后每一个细节会怎样,所以这里的搞清楚也不是面面俱到,记得,不要总是急着一口气完成任务,之后我们的道路应该是一步一个脚印 1.我总是三分钟热度,希望这次不要断

tcpdump和ngrep抓不到本机数据包

本机上运行server(nginx)和client(curl),用tcpdump tcp port 80命令抓不到数据包,原因是: 本地环回不经过以太网卡,在用tcpdump加参数 -i lo 来抓本地环回数据. ngrep环回接口数据抓取方法:使用-d lo参数,注意参数的顺序:ngrep -W byline -d lo port 80 注意ngrep使用port 80 而不是tcp port 80,如果用tcp port 80 则无法抓取到数据.

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

基于tiny4412的Linux内核移植 -- PWM子系统学习(八)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

Cocos移植到Android的一些问题-SQLite3数据库移植问题

首选我们讨论一下SQLite3数据库移植问题.我们在第14章节介绍了在Win32平台使用SQLite3数据库,我们介绍了两种配置环境的方法:一种是使用Cocos2d-x提供的SQLite3库配置,另一种是从SQLite官网下载源代码拷贝的工程中.第一种方法配置起来比较麻烦,关键是Cocos2d-x提供的SQLite3库只是Win32没有其它平台的,目录结构如下所示.<游戏工程目录>\cocos2d\external\sqlite3│  Android.mk│├─include│      sq