대용량 파일의 바이너리 블록 교체

대용량 파일의 바이너리 블록 교체

무작위 데이터로 채워진 1MB 파일이 포함된 파티션 이미지가 있고 해당 파일의 내용을 다른 무작위 데이터로 채워진 다른 1MB 파일로 바꾸고 싶습니다.

나는 알려진 고유 문자열로 파일을 생성하고 sed를 사용하여 이를 바꾸는 방식으로 이전에 비슷한 작업을 수행한 적이 있습니다.sed -i 's/foobar_corruptiontest/barfoo_corruptiontest/' partition.img

해결책을 위해 나는 다음을 상상했습니다.

head -c 1M </dev/urandom >fileA
head -c 1M </dev/urandom >fileB
binary_sed -i 's/<fileA/<fileB/' partition.img

도구를 찾았어요베이베이sed와 유사한 바이너리 파일 편집기라고 주장하지만 매뉴얼 페이지를 잘못 읽지 않는 한 파일 입력을 지원하지 않는 것 같나요?

참고 사항: 누군가가 왜 이 작업을 원하는지 매우 혼란스럽다면, 맥락은 내가 테스트 중이라는 것입니다.확실성예측 가능한 방식으로 파일을 손상시키지만 문제와 관련되어서는 안 됩니다. 실제로 답변에서 고려하지 마십시오.

답변1

좋은 해결책을 찾았지만 안타깝게도 파일 오프셋을 검색하려면 비표준 도구가 필요합니다. 누군가 표준 도구만 사용하여 더 나은 답변을 얻을 수 있기를 바랍니다.

설치 도구검색 창.

head -c 1M </dev/urandom >fileA
head -c 1M </dev/urandom >fileB
OFFSET=$(searchbin -f fileA -m 1 partition.img | head -1 | awk '{print $4}')
dd if=fileB of=paritition.img bs=1 seek=${OFFSET} conv=notrunc

관련 정보