如何向嵌入式设备中添加tcpdump工具

说明:tcpdump是一个在网络设备调试中一个非常重要的工具,它并不像hexdump等工具集成在busybox里面,也不像其他的软件一样只需要依赖linux标准的库就可以实现,它需要pcap相关的库和加密的相关库。

本文主要是基于realtek 83系列的linux环境,其他的嵌入式的设备可能不通用。

一、解压下图所示的两个压缩文件,一个是库文件,一个是程序本体

二、在libpcap上打开终端,输入命令

./configure --disable-dbus

 完成后如下图所示,没有报错,因为没有用到dbus这个功能,编译后会有bug,所以就不打开了

三、到tcpdump本体目录下执行

./configure

即可

在当前目录下会生成tcpdump的文件,当然这个程序是在主机下面的,嵌入式设备是无法运行的。如下图所示,该程序就是ubuntu系统下可运行的程序。

 四、打开libpcap目录下的makefile文件,将其中的gcc和ar替换成指定的交叉编译工具链的路径,如图所示

当然现在还是有问题的,直接make去编译会出现如下的报错,当然了,如果没有报错说明你的交叉编译工具是支持对变量名进行“说明”的,这个说明是没有一点用的,如果出现下面的报错,直接删除restrict即可。

找到报错位置,如下图所示

 删除里面的restrict当然了有两个地方

还有定义的源文件位置也要删除。 

五、将这些的头文件加入到交叉编译工具中,一部分是头文件,一部分是库文件

 

 

复制它们到如下图所示的文件夹下面即可

 同样的方法复制openssl的库到交叉编译的库中,同样是一个头文件夹,和一个库文件的文件夹,而openssl的编译可以参考我以前写的文章。

六、 出现了crypto这个报错,那么是openssl那边没有这个库的文件,

复制到tcpdump的文件夹下即可,如下图所示

 --float28的问题,只需要删除tcpdump的文件夹下的makefile中的一句即可,如下图所示的标记的位置

删除后再编译,没有问题,直接通过

七、将程序复制到嵌入式设备后添加x的属性后运行,如果出现如下的问题,用ln链接一下即可。

 

最终的效果如下图所示,ctrl+c后中断程序运行,就可以看到指定的文件和包了!

将抓到的报文用wireshark打开,可以看到报文了

相关推荐

  1. Python如何列表添加元素?

    2024-01-07 18:42:01       35 阅读
  2. 如何在Matlab饼图添加图例

    2024-01-07 18:42:01       33 阅读
  3. 嵌入基于QT的开源串口调试工具

    2024-01-07 18:42:01       19 阅读
  4. 嵌入常用工具

    2024-01-07 18:42:01       9 阅读
  5. 如何在Go错误添加额外的信息

    2024-01-07 18:42:01       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-07 18:42:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-07 18:42:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-07 18:42:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-07 18:42:01       20 阅读

热门阅读

  1. Spring Security之授权

    2024-01-07 18:42:01       36 阅读
  2. socket在两个线程之间进行通信

    2024-01-07 18:42:01       37 阅读
  3. 软件工程_复习

    2024-01-07 18:42:01       30 阅读
  4. LeetCode 第379场周赛个人题解

    2024-01-07 18:42:01       36 阅读
  5. vue3 里的 ts 类型工具函数

    2024-01-07 18:42:01       40 阅读
  6. SQL注入总结

    2024-01-07 18:42:01       45 阅读
  7. 认证评价的方法

    2024-01-07 18:42:01       36 阅读
  8. 数据库开发与设计过程中的问题分析总结

    2024-01-07 18:42:01       35 阅读