2017-04-23 7 views
1

누군가 내 파일 조각 스크립트로 나를 도울 수 있기를 바랍니다. 원시 파일 형식 (.dd)의 이미지 파일에서 16 진수로 파일 헤더 및 해당 푸터를 찾고 싶습니다. FFD8 및 FFD9 여기서 나는 현재 그것에 접근하는 방법은 다음과 같습니다 :Bash로 조각 한 파일은 grep으로 16 진수 값 FFD8 또는 FFD9를 찾을 수 없습니다

그렙 -obUaP "\ XFF

다른 헤더에 대한

및 내 스크립트가 꽤 잘 작동하지만 JPG 파일의 머리글과 바닥 글에 대한 바닥 글이 \ xD8 "image_file.dd

검색된 문자열 머리글과 바닥 글의 뒤쪽에서 오프셋을 가져와 나중에 dd로 추출하려고합니다. grep을 사용하여 이미지 파일을 바이너리로 처리합니다.

내가 예를 들어 내가 경기를 많이 발견이 검색과 이미지의 JFIF을 찾아 내 패턴을

:

그렙을 -obaUP "\ 각각 X4a \ X46 \ X49 \ X46"image_file .dd

하지만 FFD8이 없습니다!

그래서이 간단한 16 진수 값을 찾을 수없는 이유는 누구에게 들릴 수 있습니까?

+0

나를 위해 작동합니다. 파일을 보지 않고는 대답 할 수 없지만, 문자열은 파일에 없다고 생각합니다. – 123

+0

어떤 grep 버전을 사용하고 있습니까? – Rogus

+0

grep (GNU grep) 2.25 – Nelly

답변

1

남자 그렙는 말한다 : 그래서

it can be helpful to use -a or to set LC_ALL='C' in the environment, in order to find more matches even if the matches are unsafe for direct display

, 시도 : 스크립트의

LC_ALL=C grep -obUaP "\xFF\xD9" file 

그냥 위와 같이 정확하게 LC_ALL=Cgrep 명령을 앞에 추가, 정확하게 명령 줄에서 같이 위의 사용 .

+0

현재 스크립트는 다음과 같습니다 : LC_ALL = C grep -obUaP $ {carving_footer} $ {image_file} | sort -n> $ {carving_footer_txt} 하지만 오류가 발생합니다. grep : -P 옵션에 대한 지원이 컴파일되지 않았습니다. --disable-perl-regexp 바이너리 – Nelly

+0

우분투에 있는데 생각하지 않습니다. 그것은 기본적으로 ^^ – Nelly

+1

@Nelly - hm ..'grep'에'-P'를 사용하고 싶다면 컴파일 된'-P' 옵션이있는 grep이 필요합니다. 그러나 그것은 이상합니다. grep -obaUP \ x4A \ x46 \ x49 \ x46 "이 당신을 위해 일하고'-P '도 사용했기 때문에 ... 미안합니다. 너는 무엇을하고 있는지 분명하지 않다. – jm666