我使用这个命令来生成一个字符串文件:
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 输出的人,我需要偏移量的实际原因是将分配块内容传递给另一个程序,这只是一个说明偏移量没有对齐的概念.