[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: DD или другие альтернативы, заменить область файла



25.12.2013 16:12, Dmitriy Sirant пишет:
Добрый день

Казалось бы простая нужда, но сделать не удалось.

Есть бинарный файл, в котором произвольные данные в диапазоне 0x00040000
-> 0x0017FFFF необходимо заменить на 0xFF

Берем dd и делаем следующее:
printа 0xFF | dd bs=1 seek=0x00040000 count 1310719 conv=notrunc
if=source.bin of=dest.bin

Получаем практически то что нам надо, но все 0xFF которые были до в
исходном файле до оффсета 0x00040000 стали 0x00, те что в нужном мне
диапазоне остались как и были. Возможно поменяло и после диапазона, не
проверял. В исходном файле присутствуют как 0xFF так и 0x00

Игрался с разными conv=?

Причем есть еще одна проблема, но с ней не разбирался, т.к. нужен файл с
0xFF а не 0x00. Файл до операции имеет размер 2097152 а после 1572863

Нашел пакет srecord, с утилитой srec_cat. Почитал описание, решил, что
мне должно помочь:
srec_cat source.bin -Binary -fill 0xFF 0x00040000 0x0017FFFF -o
dest.file -Binary

Но dest.bin после процедуры идентичен source.bin

Чем еще можно сделать необходимые действия ?

Спасибо


Возможно предложение дурацкое и есть более простые способы, но:

1. Скопировать часть файла до адреса замены в file1.bin (через dd)
2. С генерировать блок с 0xFF в файл file2.bin
3. Скопировать часть файла после замены в file3.bin (через dd)
4. Слить все в 1 файл


Reply to: