У меня очень ограниченное linux с несколькими базовыми командами 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. Просматривая интернет, многие решения требуют сторонних установок или использования «xxd». И я не могу использовать.
Любые предложения?
Спасибо!
Просьба уточнить точные требования. Вам нужно установить байт в фиксированном положении на фиксированное значение ('0000006f' на' 02'), или это сложнее? Зависит ли новое значение от старого, вы ищете конкретный шаблон вместо фиксированной позиции, что-то вроде этого. – Wintermute
Без 'xxd', похоже, вам придется писать этот инструмент самостоятельно - ergo вы хотите язык программирования. Ознакомьтесь с ответами здесь: [чтение-бинарный файл-в-питоне] (http://stackoverflow.com/questions/1035340/reading-binary-file-in-python), чтобы начать. – n0741337
Позиции фиксированы. '0000006f' и' 00000070' Требование состоит в том, чтобы увеличить оба байта на 1. thx –