问题标签 [xxd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
76 浏览

linux - 如何从纯文本自行格式化的二进制文件中获取纯文本?

像“xxd -b 文件”这样的期望输出:

..ETC

然后是

实际输出:

希望能传达我的意思。这只是我在做一个初学者 CTF 时遇到的一个小问题,但是一次只复制粘贴一行感觉非常不妥和草率,因为突出显示将我想要在右列中的实际信息视为文本数组的一部分。我用 xxd 尝试了几个不同的标志并阅读了手册页,但我还没有找到一个选项可以单独输出明文或以更易读的方式输出。我应该使用另一种工具吗,理想情况下是大多数 Linux 发行版中常见的工具?

0 投票
1 回答
541 浏览

bash - 在 Unix shell 中,如何以机器端顺序将十六进制字符串转换为标准输出字节

我想运行类似于以下的命令:

也就是说,我想输入一个十六进制字符串并将其转换为标准输出上的字节。但是,我希望它尊重我所在机器的字节顺序,即小端。这是证明:

所以,如果我的机器是大端的,我希望它能够像上面那样工作。但既然不是,我想看看:

现在,xxd 有一个用于小字节序的“-e”选项。但是 1)我想要机器字节序,因为我想要在大端或小端机器上工作的东西,并且 2)“-e”无论如何都不支持“-r”。

谢谢!

0 投票
2 回答
293 浏览

c - 如何确保将 4 个字节写入二进制文件

我想编程一个 16/32 位的 EEPROM。我正在从 C 程序编写文件,但fwrite()似乎只做 8 位?我写了一个简单的例子,并使用 xxd(和 hexdump)查看结果,但文件似乎只有 8 位。我想知道由于 hexdump 和 xxd 的限制,我是否只看到 8 位,或者问题出在fwrite()哪里?

任何人都知道我如何检查所有位是否都写入文件?

使用xxd我看到:

编辑:我试图确保有 32 位写入文件。xxd的结果是:

哪个显示有 16 位,0xFFFF但其他 16 位在哪里?0xFFFF理想情况下,对于 32 位边界,我希望看到 16 个零,然后是 16 个零。

我想知道这是否是xxd软件没有显示它的问题,而不是 C 没有写它。

(我意识到名称和文件指针没有关闭,这只是我在 2 分钟内敲出的东西以帮助显示问题,我从空中选择了 255。)

0 投票
1 回答
110 浏览

c - 将 16 位写入文件(并确保它正在发生)

更新:更新了代码和 xxd 输出。

以前问过这个问题,但我认为我解释得不够好,无法得到答案。我正在尝试生成一个文件以加载到照片中的 EPROM。在此处输入图像描述

我需要创建一个二进制文件,它将在数据引脚上输出 16 位数据。这样,例如,当我转到地址 0xFF(例如,前 8 个地址引脚上的 5 伏电压)时,它将输出 0xAD12(在数据引脚上)。在二进制中,这意味着:1111000100010010,EPROM 将在引脚 2、5、9、13、14、15、16 上输出 1(5 伏)。

但是,当我将它加载到 EPROM 上时,它似乎只将较低的 8 位值放入文件中,并且所有 MSB 都很高(当 EPROM 为空白时它们是高位)所以它似乎没有写那些位。我似乎无法使用 hexdump 或 xxd 看到 8 MSB?

我写了一个简单的例子。我试图让它尽可能接近我的实际程序。我意识到数据量很大,但它是我需要填充 EPROM 的文件大小。

xxd 仅显示 8 LSB。

所以我的问题是:

程序是否正确写出 16 位值,而我用 xxd 看不到它们(似乎不太可能,因为物理硬件在引脚 9-16 上输出 5 伏)还是我需要修改代码以使其输出 16-位值?

0 投票
1 回答
102 浏览

bash - 如何在保留不可打印字符的同时将十六进制转换为 ASCII

我今天在调试时遇到了一些奇怪的问题,我设法将其追溯到我最初忽略的问题。

看看这两个命令的输出:

第一个 xxd 命令将十六进制转换为 ASCII。第二个将 ASCII 转换回十六进制。(43 十进制 = 2b 十六进制)。

不幸的是,将十六进制转换为 ASCII 似乎不会保留不可打印的字符。例如,原始的十六进制“A”(十进制的 10 = A hex)不知何故被xxd -r -p. 因此,当我执行逆运算时,我得到一个空结果。

我想做的是将一些数据输入 minimodem。我需要通过 bit banging 有效地生成呼叫等待来电显示 (FSK)。我的 bash 脚本有正确的位,但如果我执行 hexdump,则无法打印的字符会丢失。不幸的是,minimodem 似乎只接受 ASCII 字符,我需要给它原始的十六进制,但它似乎在转换中被吃掉了。是否有可能以某种方式保留这些字符?我不认为这是任何选择,所以想知道是否有更好的方法。

0 投票
0 回答
258 浏览

python - 如何从二进制 .txt 文件创建 .bin 文件?

我想从 binary.txt 文件创建一个 binary.bin 文件。

.txt 文件仅包含 1 和 0。我找到了一种使用 xxd linux 函数将十六进制转换为 .bin 的方法,但找不到将 .txt 零和一转换为十六进制的方法,该方法可以使用 xxd 工具生成 .bin 文件。

我试图制作一个脚本,用于将 binary.txt 转换为 hexademical.txt,然后可以在 linux 中与 xxd 一起使用,但这似乎不起作用......问题是 python 脚本输出了一些其他的十六进制而不是linux 中的 xxd hexdump 函数。

简而言之...我尝试使用带有 .bin 文件的 xxd 进行此操作:

.bin > 十六进制 > .bin (有效)

我无法从以下位置制作 .bin 文件:

十六进制(python)> .bin(不起作用)

例如:二进制序列 .txt 01000110 在 xxd 中输出 4F 而在 python 中输出 0xf42ae

0 投票
0 回答
43 浏览

linux - linux中pcap文件hexdump的tshark命令

需要一个 tshark 命令,该命令可以对 pcap 文件的所有字节进行 hexdump 以增加偏移值。

目前我正在使用这个特定的命令:“tshark -x -r PcapFile.pcap”。这个命令的问题是

  1. 数据包编号增加后,偏移量不会连续增加。

  2. 每个数据包后都有一个新行。我想从 hexdump 中删除此行分隔符。

通过使用 Tshark、Hexdump、xxd 或 Tcpdump 是否有可能的命令。这些方法中的任何一种都可以。我在下面显示了上面显示的命令转储的示例。我不想在每个数据包后换行,也不想连续增加偏移值。

0 投票
1 回答
374 浏览

bash - xxd 在 Mac 上将十六进制文件转换为 32 字节的二进制文件,在繁忙的盒子上转换为 30 字节?

我正在使用 xxd 转换包含以下十六进制私钥的文件:

只需通过

此命令在 Mac OS Big Sur 上生成一个 32 字节的二进制文件,xxd V1.10 27oct98 by Juergen Weigert并在繁忙的盒子 docker 图像上生成 30 字节BusyBox v1.33.1 (2021-06-07 17:33:50 UTC)我不知道为什么?

它应该在繁忙的盒子上生成一个 32 字节的二进制文件。

更新 #1 hex(二进制文件的 hexdump)

忙箱中的二进制

Mac OS Big Sur 中的二进制文件

0 投票
1 回答
192 浏览

php - 在 php 中替代 linux 中的 xxd 命令

我需要以与 Linux 程序相同的方式将 bin 文件转换为 PHP 中的字符串。

在linux中:xxd -g 1 data.bin并输出:0000000: 02 50 45 10 02 06 54 62 43 20 05 20 11 07 21 12 .PE...TbC . ..!.

在 PHP 中,我尝试使用该bin2hex函数,但我只得到数字02 50 45 10 02 06 54 62 43 20 05 20 11 07 21 12。我还需要一个偏移量和文本表示。

偏移量是我在上面输入的字符串中的行号、第一个数字和一个冒号 ( 0000000:)。这实际上不是问题,因为我可以编写代码来计算它,但更大的问题是文本表示(.PE...TbC . ..!.)。

有人可以帮忙吗?我可以为此使用哪些功能?

0 投票
0 回答
58 浏览

xxd - xxd 如何只输出十六进制字节,没有空格

使用 xxd 命令,是否可以一次从输入读取一个字节并一次输出一个字节。没有空格,没有换行符,没有结束换行符?

我尝试了列设置,但没有得到想要的结果。