hexdump——linux系统的二进制文件查看工具

hexdump——linux系统的二进制文件查看工具

在Linux系统中,我们经常会遇到需要查看二进制文件内容的情况,如查看可执行文件的二进制代码、查看网络数据包的二进制内容等。此时,一个非常有用的工具是hexdumphexdump是Linux系统下的一个十六进制查看工具,用于查看二进制文件的内容。下面,我们来介绍一下如何使用hexdump来查看二进制文件。

安装hexdump

在大多数Linux系统中,hexdump会默认安装。如果您的系统没有安装hexdump,可以通过以下命令进行安装:

# Ubuntu/Debian系统
sudo apt-get install hexdump

# CentOS/Fedora系统
sudo yum install hexdump

# Arch Linux系统
sudo pacman -S hexdump

使用hexdump查看二进制文件

hexdump命令可以查看二进制文件的十六进制内容、以ASCII码显示的字符、八进制和二进制表示。以下是hexdump的使用方法:

$ hexdump [选项] 文件名

下面列出一些主要选项:

  • -C:以十六进制和ASCII码混合的形式显示内容,方便阅读。
  • -n 数字:只显示前面指定的字节数。
  • -s 数字:跳过文件的前面指定字节数,从指定位置开始显示。

例如,以下是查看/bin/bash二进制文件的命令:

$ hexdump -C /bin/bash

输出结果为

00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|
00000010  02 00 3e 00 01 00 00 00  90 7e 40 00 00 00 00 00  |..>......~@.....|
00000020  40 00 00 00 00 00 00 00  38 01 00 00 00 00 00 00  |@.......8.......|
00000030  00 00 00 00 40 00 38 00  09 00 40 00 1d 00 1c 00  |....@.8...@.....|
00000040  06 00 00 00 05 00 00 00  40 00 00 00 00 00 00 00  |........@.......|
00000050  40 00 40 00 00 00 00 00  40 00 40 00 00 00 00 00  |@.@......@.@....|
00000060  08 00 00 00 03 00 00 00  40 00 00 00 00 00 00 00  |........@.......|
...
...

可以看到输出以十六进制的形式显示了文件的所有字节,每十六个字节一行。行的前面会显示行号,以便于对二进制码的定位。除此之外,行的右侧也会显示每个字节对应的ASCII码字符,方便识别文件的内容。

除了使用-C选项以外,还可以通过-b-o选项查看内容的八进制或二进制表示。

使用hexdump查看网络数据包

在Linux系统中,可以使用tcpdump命令来抓取网络数据包。而与此同时,我们也可以使用hexdump命令来查看抓取到的数据包的内容。例如,以下是对eth0网卡进行数据包抓取并使用hexdump查看数据包内容的命令:

$ sudo tcpdump -i eth0 -c 1 | hexdump -C

以上命令将抓取eth0网卡上的一个数据包,并利用hexdump展示它的内容。输出结果如下:

00000000  00 0c 29 39 33 85 00 50  56 23 93 78 08 00 45 00  |..)93..PV#.x..E.|
00000010  00 28 d8 6d 40 00 40 06  ca 4b c0 a8 01 0d c0 a8  |.(.m@.@..K......|
00000020  01 01 bb 51 00 7b 09 53  8d eb 27 1f 6c 60 12 40  |...Q.{.S..'l`.@|
00000030  08 00 18 a0 ac 00 00 01  01 08 0a 00 17 1c e8 00  |................|
00000040  d0 ef 00 00 19 00 00 00  01 03 03 07              |............|
0000004d

通过以上的输出可以查看到该数据包的十六进制码,并且同样也可以看到每个字节对应的ASCII码,以方便我们了解数据包的内容。

总结

hexdump命令是一个非常有用的在Linux系统中查看二进制文件内容的命令。通过对命令中不同的选项的选择,可以在不同的场景中得到不同类型的输出结果。它同样可以与其他命令相结合,如tcpdump命令,方便我们查看网络数据包的内容。在我们对二进制文件的调试、调查时,hexdump是必不可少的工具之一。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:hexdump——linux系统的二进制文件查看工具 - Python技术站

(0)
上一篇 2023年3月28日
下一篇 2023年3月28日

相关文章

  • MySQL设置global变量和session变量的两种方法详解

    MySQL设置global变量和session变量的两种方法详解 MySQL提供了两种方法来设置全局变量(global variables)和会话变量(session variables)。全局变量是在MySQL服务器启动时设置的,对所有连接和会话都有效。会话变量是在连接到MySQL服务器后设置的,只对当前会话有效。 方法一:使用SET语句设置变量 使用SE…

    other 2023年7月29日
    00
  • valorant无法初始化怎么办 无畏契约无法初始化解决方法

    首先需要明确一点,出现“valorant无法初始化怎么办 无畏契约无法初始化解决方法”提示可能是由于多种原因引起的。我们需要逐一排查问题,才能找到最适合的解决方法。 以下是可能导致问题的原因及解决方案: 1. 确认系统环境是否符合游戏要求 游戏需要的系统要求,游戏官网会有详细说明。我们需要确认自己的系统是否符合要求。如果系统不符合要求,可能会导致游戏无法正常…

    other 2023年6月20日
    00
  • C语言新建临时文件和临时文件名的方法

    C语言新建临时文件和临时文件名的方法 在C语言中,新建临时文件或获取临时文件名是非常常见的操作。本文将介绍如何在C语言中进行这些操作。 新建临时文件 新建临时文件可以使用标准库函数tmpfile()。该函数会在临时目录下创建一个新文件,并用读写模式打开文件。在程序结束后,文件会自动删除。 以下是一个使用tmpfile()函数创建临时文件的示例: #inclu…

    other 2023年6月26日
    00
  • 百度网盘下载文件提示”系统限制,无法下载”的解决方法

    标题:解决百度网盘下载文件提示”系统限制,无法下载”的方法 在使用百度网盘下载文件的过程中,有时会出现“系统限制,无法下载”的提示,这是因为百度网盘为了保护用户的数据安全,设置了一些下载限制。下面介绍几种解决此问题的方法: 方法一:更换IP地址 可能是由于你的IP地址被限制了下载,导致出现下载限制,因此可以通过更换IP地址的方法来解决这个问题。 1.使用网络…

    other 2023年6月28日
    00
  • excel怎么制作报价表? 用 Excel 快速制作产品报价表的教程

    Excel制作报价表攻略 1. 准备数据 在制作报价表之前,首先需要准备好相关的数据。这些数据可以包括产品名称、价格、数量、折扣等信息。可以将这些数据整理在一个Excel工作表中,每一列代表一个数据字段,每一行代表一个产品。 以下是一个示例的数据表: 产品名称 价格 数量 折扣 产品A 100 10 0.9 产品B 200 5 0.8 2. 创建报价表 接下…

    other 2023年8月5日
    00
  • C语言字符串旋转问题的深入讲解

    C语言字符串旋转问题的深入讲解 背景 字符串旋转指的是在不改变字符串的字母顺序的情况下,将字符串中的某几个字符移动到字符串的开头或结尾。字符串旋转问题是一种高频面试题,考查了面试者对于数组操作、数据结构算法、指针运算等多方面知识的掌握程度。 问题描述 给定一个字符串 s 和一个非负整数 n,将字符串中的前 n 个字符移到尾部。 解决方案 1. 暴力枚举 暴力…

    other 2023年6月20日
    00
  • 微信小程序 数组(增,删,改,查)等操作实例详解

    微信小程序 数组(增,删,改,查)等操作实例详解 1. 数组的创建和基本操作 1.1 创建一个数组 在 JavaScript 中,可以通过如下方式创建一个数组: let arr = [1, 2, 3]; 这个数组里包含了 1,2,3 三个元素。 1.2 获取数组长度 可以使用 .length 属性获取数组长度,例如: let arr = [1, 2, 3];…

    other 2023年6月25日
    00
  • qt_mainwindow简介

    以下是Qt中的QMainWindow简介的完整攻略,包括两个示例说明。 1. QMainWindow简介 QMainWindow是Qt中的一个主窗口类,用于创建具有菜单栏、工具栏、状态栏等标准界面元素的应用程序窗口。QMainWindow可以包含其他窗口小部件,例如QTextEdit、QListView等,以实现应用程序的主要功能。 2. QMainWind…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部