gpt4 book ai didi

linux - 在有限的 linux 中编辑十六进制/二进制文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:10:03 27 4
gpt4 key购买 nike

我的 linux 非常有限,只有几个基本的 linux 命令。我需要替换十六进制/二进制文件中的一些字符:

输入:

# hexdump -C block.bin
00000000 11 11 50 04 42 00 00 00 58 00 00 00 3c 0e e2 d4 |..P.B...X...<...|
00000010 50 0b 00 00 00 80 00 00 00 00 00 00 00 00 d0 d7 |P...............|
00000020 1f 09 00 00 00 00 02 00 00 00 00 04 ff ff ff ff |................|
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000040 28 31 98 5b d3 0e 05 00 00 00 00 00 00 00 00 00 |(1.[............|
00000050 00 00 00 00 00 00 00 00 64 00 00 00 00 00 10 00 |........d.......|
00000060 00 ff ff ff ff 00 00 00 00 03 01 0d 03 01 0d 01 |................|
00000070 00 00 00 00 0c 00 01 02 00 00 00 00 00 ff ff ff |................|
00000080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
00000180 00 00 20 00 00 00 ff ff ff ff 01 00 00 0c 00 00 |.. .............|
00000190 04 00 00 00 02 00 00 04 00 00 00 00 00 00 ff ff |................|
000001a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
00000200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|

我需要更改以下内容:

00000060  00 ff ff ff ff 00 00 00  00 03 01 0d 03 01 0d 01  |................|
00000070 00 00 00 00 0c 00 01 02 00 00 00 00 00 ff ff ff |................|

到(并重写回同一个文件):

00000060  00 ff ff ff ff 00 00 00  00 03 01 0d 03 01 0d 02  |................|
00000070 01 00 00 00 0c 00 01 02 00 00 00 00 00 ff ff ff |................|

正如我所说,我有一些命令:hexdump、od、vi、nano、awk、sed、python。通过互联网查看,许多解决方案需要安装第 3 方或使用“xxd”。两者我都不能使用。

有什么建议吗?

谢谢!

最佳答案

我不认为用 sed 或 awk 来尝试这个是一个明智的想法,所以我们坚持使用 python,它对于这个任务来说肯定足够强大。我的思路是这样的:

#!/usr/bin/python

# open file in binary mode for reading and writing
f = open("block.bin", "r+b")

# seek to position and read two bytes
f.seek(0x6f)
data = f.read(2)

# seek to position again
f.seek(0x6f)

# and write the transformed characters back
for d in data:
f.write(chr(ord(d) + 1))

f.close()

关于linux - 在有限的 linux 中编辑十六进制/二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28481821/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com