我发现xxd对终端中二进制数据的简单操作非常方便。但是,它有一个限制,即程序输出的所有地址都限制在32位以内。例如。
root:/# xxd -s 0x5baae0000 /dev/sda
baae0000: 2d7c 6176 6976 6172 7c61 7469 7a61 720a -|avivar|atizar.注意开头的5已经消失了。这意味着直接与xxd -r一起使用它将比我想要的更早地修补超过100亿字节的区域。换句话说,我想这样做,
root:/# echo HELLO | xxd -o 0x5baae0000 | xxd -r - /dev/sdb但最后我不得不做这样的事情来解决这个问题,
root:/# echo HELLO | xxd -o 0x5baae0000 | xxd -r -seek 0x500000000 - /dev/sdb它在解析修补程序时将丢失的0x5000000字节添加回目标文件。
在任何情况下,我都想知道是否有一种未知的/聪明的方式让xxd使用64位地址,还是没有这些限制就像xxd那样操作的替代程序?
https://unix.stackexchange.com/questions/492579
复制相似问题