Я пытаюсь найти два байта внутри двоичного файла, затем увеличить значение этих двух байтов и заменить их внутри файла. Эти два байта находятся на позициях 0x82-0x83. На данный момент я успешно извлек эти два байта, используя это:
#!/usr/bin/env bash
BYTES=$(tail -c +131 "$1" | head -c 2)
Эти байты имеют значение: 1B 1F
. Я застрял с:
- Как преобразовать байты в целое число? Это должно быть
6943
десятичным. - Как добавить / отразить двоичные данные в файл
- Как записать увеличенные байты внутри файла на позиции 0x82-0x83. Я мог бы использовать
head -c 130 original.bin >> new_file.bin && magic_command_writing_bytes_to_file >> new_file.bin && tail -c +133 original.bin
, но должен быть лучший способ.
Я мог бы сделать это в PHP, это должно быть проще, но мне интересно, как это сделать в bash.