问题标签 [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 投票
2 回答
2501 浏览

c++ - 如何在 C++ 中生成十六进制二进制数据的 sha256 哈希?

我需要一个 C++ 中的函数来生成与此命令在 linux 中生成的结果相似的结果。

回声-n“616161616161616”| xxd -r -p | sha256sum -b | awk '{打印 $1}'

该命令的作用是:给定一个 hexadump,将其转换为二进制文件格式,并显示二进制文件的 sha256 哈希值。xxd -r 将 hexadump 转换为二进制文件

谁能帮帮我?

0 投票
1 回答
272 浏览

vim - Vim:用系统命令替换调用 xxd 导致转换错误

背景是我有一个日志文件,其中包含我想用 xxd 转换的十六进制转储,以获得显示二进制数据中可能字符串的漂亮 ASCII 列。

日志文件格式如下所示:

直观地选择十六进制转储,xxd -r -p然后xxd -g1在结果上执行一个,这正是我的目标。但是,由于我想要转换的转储数量很多,我宁愿自动化这个过程。所以我使用以下替代命令进行转换:

该表达式匹配日志文件中的整个十六进制转储。匹配作为标准输入发送到xxd -r -p,其输出用作标准输入xxd -g1。嗯,至少是这样的想法。

问题是以上几乎可以工作。它产生以下结果:

所有00字节都神秘地变成了01. 它应该产生以下内容:

我没有得到什么?

当然,我可以使用宏和其他方法来做到这一点,但我想了解为什么我的替换命令没有达到我的预期。

编辑:

对于任何想要实现相同目标的人,我提供了适用于整个文件的替换表达式。上面的表达式仅用于使用上面的日志文件示例进行测试。下面的一个是执行正确转换的那个,根据肯特在他的回答中提供的信息进行了修改。

0 投票
2 回答
1375 浏览

python - 将十六进制转储转换为 ASCII

所以我想知道是否有可能使用 Bash 或 Python 将以下十六进制代码转换为它的 ascii 输出,就像在 xxd 中一样。因为我使用 OCR 从下图中获取文本。

在此处输入图像描述 有没有一种使用 bash 或 python 的方法可以将以下十六进制转储转换为 ascii 字符?

(十六进制转储,只是没有 ascii 的十六进制部分)

有希望的输出近似于以下内容(文本形式不是图像除外),也就是说,hexdump -C"的输出: 在此处输入图像描述

0 投票
1 回答
267 浏览

ascii - Hexdump 的最佳 OCR

我正在寻找一种可以使用 OCR 可靠地提取图像左侧(非 ascii 字符)的方法。我有许多类似格式的图像,也显示十六进制数据,我想提取它们。

有人能推荐一种从这些图像中提取文本的方法吗? 在此处输入图像描述

在此处输入图像描述

理想情况下,第一行的输出是:

0005C850 00 00 00 00 等

第四行的输出类似于:

0005C8AA ED 93 A7 8E 等

0 投票
2 回答
319 浏览

bash - bash 中的 xxd:删除行号和 ascii

所以我想知道如何在使用 xxd 输出数据时删除行号和 ascii。

编码:

哪个输出

但我希望00000000:00000006:gf.(.. and ... 从输出中删除。

至于变量的数量,这是正确且丑陋的,但这是我拥有的唯一真正可行的解决方案,因为它们每个都是代码中自己的变量。

0 投票
1 回答
320 浏览

x86 - 为什么 xxd 和 objdump 的内存地址或偏移量不同?

我有以下测试汇编程序:

我已经编译成一个名为file. 当我使用objdump反汇编时,我得到以下预期输出:

但是,当我只打印带有$ xxd file内存的二进制文件时,甚至不会达到400078

造成这种差异的原因是什么?似乎xxd只是从 0 开始偏移所有内容,但是如果您可以称它为确实objdump使用的“偏移”,那又是什么?我怎样才能调和 where400078会在xxd哪里?还是我需要为此使用另一个程序?

0 投票
1 回答
482 浏览

openssl - 如何在终端将十六进制哈希转换为二进制?

主要问题:如何使用xxd -r

次要细节。此命令输出十六进制哈希:

我想那myHashHex是一个“hexdump”,不是吗?
我以为那xxd -r < myHashHex会转换......好吧,它不起作用


笔记

测试/比较。我认为这在二进制文件中是相同的(没有标题):

所以,我预计会xxd -r < myHashHex > newHashBin生成newHashBin = myHashBin


PS:测试一下。现实生活中的问题是使用 sha256sum 维护所有内容,并且仅在一个程序中将其转换为双 sha256。

相反,我使用openssl dgst -sha256 -binary myFile| openssl dgst -sha256 > myDoubleHash
我将使用两步过程:

  1. (总是产生 myHashHex)
    openssl dgst -sha256 myFile | awk '{print $2}' > myHashHex

  2. (需要加倍时)xxd -r myHashHex | openssl dgst -sha256 > myDoubleHash

0 投票
1 回答
49 浏览

c - 二进制中点的不同表示

我在 C 中有一个代码,它只是打印 hello world,就像这样

为了在 ubuntu 中编译代码,我使用了这个命令 make filename,它给了我这样的汇编代码:

然后我使用它翻译成机器语言xxd -b hello,这给了我(输出的子集

我的问题是:为什么(点“。”)在二进制中具有不同的表示形式,就像在第一行和第四行中我们有连续的点但具有不同的表示形式一样?

我知道这是一个奇怪的问题,但这只是为了兴趣和知识,任何帮助将不胜感激

0 投票
0 回答
1430 浏览

javascript - 如何从任何 .exe 文件中取回源代码文件?


我有从 javascript 和 python 编译的 .exe 文件。我想反编译它并取回代码。
我尝试了许多 python 反编译器库,但它不起作用。
我尝试使用 `hexdump` 或 `xxd` 命令,但我是新手,所以我真的不知道如何使用它们。

谢谢(抱歉英语错误)

0 投票
1 回答
49 浏览

unix - 如何查看我的键盘发送的各种控制字符

通常我会用xxd十六进制来查看我输入的字符转换为哪些字符。例如:

但是,我将如何做同样的事情:

  • Ctrlz
  • Ctrld
  • Ctrlc

似乎当我输入这三个中的任何一个时,它在xxd程序之外“做某事”,而不是被识别为我想查看十六进制代码的键盘输入。那么如何查看键盘为所有字符组合发送的值呢?