问题标签 [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.
c++ - 我怎样才能以编程方式将 `__attribute__ ((unused))` 应用于这些自动生成的对象?
在我的makefile
我有以下目标,它unsigned char
使用xxd -i
.
我将结果包装在匿名名称空间和标题保护中,以确保翻译单元内部和之间的多重包含安全。
如果我只有一个这样的资源,输出看起来像这样(实际内容已编辑):
以编程方式将 GCC__attribute__ ((unused))
应用于这些字符数组的最佳方法是什么?我不希望 GCC 警告我最终未在任何给定 TU 中使用的任何资源,但我也不希望完全关闭“未使用变量”警告。
linux - hexdump 和 xxd 在 red hat 和 ubuntu/mint 上产生不同的输出
首先,我要提到我的 linux mint/ubuntu 系统上发生的任何事情......
现在,当我在 red hat 上尝试相同的事情时,正在发生一些奇怪的行为。
我无法找出为什么 red hat 和 linux mint/ubuntu 的输出之间会出现这种差异。
如果可能的话,告诉我一些 awk/shell 来代替xxd -r -p
请帮帮我!
编辑:
在 linux mint/ubuntu 系统上..
在红帽机上..
parsing - 在 UNIX 中创建二进制文件
这个问题已经存在了一段时间,我想如果我能让它发挥作用,我应该提供一些奖励积分。
我做了什么……</h1>
最近在工作中,我编写了一个解析器,可以将二进制文件转换为可读格式。二进制文件不是带有10101010
字符的 Ascii 文件。它已被编码为二进制。因此,如果我cat
对文件执行操作,我会得到以下信息 -
所以我使用hexdump
实用程序使文件显示以下内容并将其重定向到文件。现在我有了我的输出文件,它是一个包含十六进制值的文本文件。
在大量awk
,sed
和之后cut
,脚本将十六进制值转换为可读文本。为此,我使用了偏移定位来标记每个转换参数的开始和结束位置。所有转换后的结果文件如下所示
我为什么这样做
我是一名测试工程师,手动验证二进制文件是一件很痛苦的事情。我必须手动解析偏移量并使用计算器转换它们并针对 Wireshark 和 GUI 进行验证。
现在是问题部分
我希望做与我所做的相反的事情。这是我的计划——
- 有一个易于阅读的输入文本文件,其中包含
Parameters : Values
. - 用户可以简单地将值放在它们旁边(例如,日期将是一个参数,用户可以给出他们希望数据文件具有的日期)。
- 该脚本将从输入文本文件中删除所有相关信息(用户提供的信息)并将它们转换为十六进制值。
- 将文件转换为十六进制值后,我希望将其编码回二进制。
前三步完成
问题
一旦我的脚本将输入文本文件转换为具有十六进制值的文本文件,我就会得到一个如下所示的文件(注意我可以这样做cat
)。
我的意图是将这个转换后的文件编码为二进制文件,这样当我cat
对文件进行处理时,我会得到一堆垃圾值。
所以问题是这样的。我如何以这种形式对其进行编码?
我为什么要这样做?
我们在生产中没有很多 GTP(GPRS 隧道协议)消息。我想如果我对此进行逆向工程,我可以有效地创建一个数据生成器并制作我自己的数据。
总结一下
那里可能有复杂的工具,但我不想花太多时间学习它们。大约 2 个月了,我已经开始在 *nix 平台上工作,并且刚刚开始使用它的电动工具,比如sed
和awk
.
我想要的是一些帮助和指导来实现这一点。
再次感谢阅读!200 分等待能够引导我走向正确方向的人。:)
示例文件
这是原始二进制文件的示例
这是一个允许用户输入值的输入文本文件示例
这是我的脚本在输入文本文件的所有转换完成后创建的文件示例。
如何更改File 3
to的编码File 1
?
vim - 如果与 xxd 一起使用,Vim 会修改文件
我试图了解 ID3 标签的工作原理,因此,在阅读了一些文档之后,我开始查看一些 mp3 的原始数据。Vim 通常是我选择的编辑器,所以,经过一番谷歌搜索后,我发现我可以使用 xxd 通过调用来查看我的文件的十六进制表示
一切正常,但是当我把一切都放回原处时
然后退出,我发现文件被修改了;vlc 无法再播放它,并且 diff 告诉我文件不同。我以为我无意中修改了一些东西,但进一步的实验表明,即使打开文件并使用 xxd 然后 xxd -r 会以某种方式更改文件。
这是为什么?我怎样才能防止它发生?难道我做错了什么?
linux - 如何使用 xxd 向 hexdump 插入偏移量?
有没有一种简单的方法可以向 xxd 生成的十六进制转储添加偏移量?
即代替
我应该得到
hex - xxd -r 不带 xxd
我在 CentOS 5.5 的缩小版本上运行,没有很多可用的工具。没有 xxd、bc 或 hd。不幸的是,我无法安装任何其他实用程序。我确实有 od、dd、awk 和 bourne shell(不是 bash)。我正在尝试做的事情在正常环境中相对简单。基本上,我有一个数字,比如 100,000,我需要将它的二进制表示形式存储在一个文件中。通常,我会做类似...
如果您查看文件的十六进制转储,您会正确看到表示为 186A0 的数字。
有没有我可以使用我可用的有限工具拼凑起来的等价物?我尝试过的几乎所有东西都存储了数字的 ascii 值。
compiler-construction - qmake:额外的编译器(处理步骤)?
在我基于 qmake 的项目中,我想在编译之前对某些文件运行“xxd”。按照文档,我的 pro 文件中的相关部分如下所示:
Qmake 没有抱怨,但它也根本不运行 xxd。我是否必须为要预处理的每个文件创建特殊目标?(生成的 *.xxd 文件我以后不会编译,只包含在其他 cpp 文件中)
编辑:在 smokris 的帮助下,这就是我在 pro 文件中修复该部分的方式:
bash - 计算存储在变量中的字段数
我正在研究一个基本的文件雕刻器,我目前一直在计算文件的字节位置。
我发现我需要一段代码来执行以下步骤;
- 在变量中找到 $searchQuery
- 找到 $searchQuery 后删除字符串的其余部分
- 计算变量中现在存在的字段数
- 将此变量减去 2 以考虑十六进制偏移量和 $searchQuery 本身
- 然后将答案乘以 2 得到正确的字节数
这方面的一个例子是;
- 在“00052a0: b4f1 559c ffd8 ffe0 0010 4a46 4946 0001”中找到“ffd8”
- 变量更新为“00052a0: b4f1 559c ffd8”
- $fieldCount 被赋值为“4”
- $fieldCount=((fieldCount-2))
- $byteCount=((fieldCount*2))
除了计算变量中的字段数之外,我对如何做所有事情都有一个基本的想法。例如,在找到 $searchQuery 之前,如何计算变量中有多少字段?同样,删除字符串中不必要的部分后,如何计算字段数?
用 grep 找到 $searchString 后,我不知道如何继续。我当前的代码如下所示;
谢谢您的帮助!
bash - 使用 awk 或 xxd 或其他东西解析包含十六进制字符代码的日志
我有一个看起来像这样的文件:
串口通信的嗅探器日志。
如何自动将十六进制字符代码转换为字符串?
我试图使用这样的东西:
但它只取得了非常部分的成功,我想我把管道弄乱了。
问题是我如何转换
变成可读的东西?
debian - 如何从文本文件中删除组分隔符
我有一个在 Windows PC 上创建的文本文件,然后我在 debian 机器上打开它。我在 nano 中打开它,在底部显示(从 DOS 格式转换)。
当我从文件中取出一行并使用以下方法查看它的二进制表示时:
它显示两个 00001101 字符已添加到该行。我正在尝试使用 tr 删除它们,如下所示:
但这似乎不起作用。
知道如何解决这个问题吗?要创建 ^] 我正在做 shift + ^ 然后 ] 我需要做其他事情来生成组分隔符控制字符吗?