grayich |
|
Темы:
216
Сообщения:
1984
Участник с: 08 января 2009
|
чем проще всего вырезать кусок из бинарного файл? к примеру с 0x10200 по 0x1021E отрезать кусок? |
vasek |
|
Темы:
48
Сообщения:
11340
Участник с: 17 февраля 2013
|
bless - будешь видеть, что удаляешь, а потом можешь выполнить для перестраховки сохранить как UPD - можно и ручками, как то уже описывал, но для начала лучше bless
Ошибки не исчезают с опытом - они просто умнеют
|
grayich |
|
Темы:
216
Сообщения:
1984
Участник с: 08 января 2009
|
пока пользую такой вариант но он не самый удобныйможет есть всётаки что-то более более? |
vinc |
|
Темы:
12
Сообщения:
180
Участник с: 13 июня 2015
|
How do I extract a single chunk of bytes from within a file?version of the dd command that is better-suited for large chunks of bytes:where $offset and $bytes are numbers in byte units. |
vasek |
|
Темы:
48
Сообщения:
11340
Участник с: 17 февраля 2013
|
Если ручками, то лучше использовать следующий простой и понятный способ Пример - в файле test нужно удалить 4-ый и 5-ый байты (пишу без указания смещения/offset) hexdump -C test 00000000 23 21 2f 62 69 6e 2f 62 61 73 68 |#!/bin/bash| Выполняем в 2 этапа 1. Читаем нужный файл test и копируем только байты до начала удаления, то есть до 3 байта включительно - dd if=test of=test_rm bs=3 count=1 2. Читаем нужный файл test, пропускаем 5 байт и копируем то, что идет дальше - dd if=test of=test_rm bs=1 skip=5 3. Объединяем и получаем команду dd if=test of=test_rm bs=3 count=1 | dd if=test of=test_rm bs=1 seek=3 skip=5 4. Проверяем hexdump -C test_rm 00000000 23 21 2f 6e 2f 62 61 73 68 |#!/n/bash| EDIT 1 - я похоже слишком усложнил задачу, так как понял, что нужно из исходного файла удалить блок. Но если нужен только отдельный вырезанный блок, то это намного проще и способов много, один из них описал vinc
Ошибки не исчезают с опытом - они просто умнеют
|