У меня очень ограниченный 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
), или это более сложно? Зависит ли новое значение от старого, ищете ли вы конкретный шаблон вместо фиксированной позиции и тому подобное. - person Wintermute   schedule 12.02.2015xxd
, похоже, вам придется написать этот инструмент самостоятельно - значит, вам нужен язык программирования. Ознакомьтесь с ответами здесь: чтение-двоичный-файл-в-питоне, чтобы начать . - person n0741337   schedule 12.02.20150000006f
и00000070
Требуется увеличить оба байта на 1. thx - person Maxim_united   schedule 12.02.2015