3

我使用这个命令来生成一个字符串文件:

strings -a -t d image.dd

这应该在每行之前以十进制显示基数偏移。然后我用 grep 搜索有趣的搜索结果。然后我想在十六进制视图中查看每个搜索命中的特定偏移量,这是我使用 dd 命令完成的(感兴趣的偏移量是 32203):

dd if=image.dd skip=32203 count=1 | xxd

我尝试查看此偏移量的直接上下文无济于事 - 它不包含相同的数据。我搜索了通过管道传输到 xxd 输出的 dd 并在偏移量 \x7e00 处找到了相同的数据(十进制 32256 - 与基数偏移量相同,仅在相关行中进一步 53 个字节),但是即使这似乎也没有对齐就在我回去查看通过 xxd 管道传输的 dd 中时。为什么会出现差异?如何将字符串基数十进制偏移量与 dd 图像中的字节偏移量匹配?xxd是罪魁祸首吗?

对于那些想知道为什么我不只是通过 xxd 搜索 dd 输出的人,我需要偏移量的实际原因是将分配块内容传递给另一个程序,这只是一个说明偏移量没有对齐的概念.

4

1 回答 1

3

你的问题是dd skip=参数。skip=32203文件的块(默认块大小为 512)。您可以指定ibs=1设置默认输入块大小。

于 2013-06-12T17:26:46.677 回答