추가 데이터가 추가된 이미지를 어떻게 식별합니까?

추가 데이터가 추가된 이미지를 어떻게 식별합니까?

복잡한 파일에서 이미지를 추출하려고 합니다. 파일을 여러 부분으로 나누고 모두 다른 파일로 추출할 수 있습니다.

file각 부분의 유형을 감지하고 사진인 부분(JPEG, PNG, BMP...)만 선택하는 것이 아이디어였습니다 . 이러한 부분에 순수하고 순수한 이미지 데이터가 포함되어 있으면 효과적으로 감지할 수 있습니다.

예를 들어:

$ file Section_Raw_7BB28B99-61BB-11D5-9A5D-0090273FC14D_body.raw
Section_Raw_7BB28B99-61BB-11D5-9A5D-0090273FC14D_body.bmp: PC bitmap, Windows 3.x format, 193 x 58 x 8, image size 11368, 256 important colors, cbSize 12446, bits offset 1078

다만 아직 어떤 정크 데이터나 메타데이터가 있는지는 잘 모르겠지만 어쨌든 파일 자체의 파일 시그니처 앞에 X바이트를 추가해도 이미지로 인식이 되지 않습니다(역시 1개의 이미지는 아닙니다) ) 이미지 자체).

$ file Section_Raw_4B2E0988-9E44-49AE-8B77-F544B1CAF03F_body.raw
Section_Raw_4B2E0988-9E44-49AE-8B77-F544B1CAF03F_body.raw: data

파일에 첫 번째 일치 항목( )을 삭제하지 말라고 지시하면 문제가 되지 않는 것 같습니다 -k. 내부에 JPEG가 표시되지 않지만 16진수 편집기로 파일을 검사한 후 시작 부분 근처에 일반적인 매직 코드가 있음을 발견했습니다. JPEG:

JPEG는 시작 부분 근처에서 시작됩니다.

어떻게 진행하나요? 이와 같은 파일을 식별할 수 있는 방법이 있습니까? 아니면 이 작업을 file수행하려면 먼저 시작 부분에서 추가 바이트를 제거해야 합니까?

메타데이터 바이트의 길이가 항상 같은지 평가해야 하지만, 그렇다면 파일에서 이를 초과하는 파일을 찾기 시작하도록 지시할 수 있는 방법이 있습니까? 아니면 파일의 처음 X바이트를 제거하고 다른 유효한 이미지를 생성할 수도 있나요?

다른 옵션은 파일의 시작과 끝( grep16진수에 대한 ing?)과 dd길이에 대한 ing을 수동으로 찾기에는 너무 어려운 것 같습니다. 물론 작동하지만 경험이 풍부한 작은 Linux 유틸리티가 제안한 것처럼 간단하거나 읽기 쉽지는 않습니다.

시간 내주셔서 감사합니다!

추신. 테스트해야 할 경우를 대비해 여기에 파일을 업로드했습니다.http://s000.tinyupload.com/index.php?file_id=71511465902538158650

관련 정보