대형 바이너리 파일(grep, sed)에서 시작 위치부터 정의된 바이트 수까지 16진수 시퀀스를 검색합니다.

대형 바이너리 파일(grep, sed)에서 시작 위치부터 정의된 바이트 수까지 16진수 시퀀스를 검색합니다.

/dev/disk0s1내 Mac에는 이 바이너리 "파일" ( 512GB실제로 AFPS에 따른 드라이브 또는 볼륨 ) 이 있고 이 16진수 시퀀스(ASCII로 표시됨 ) macOS를 찾아야 합니다 .0x41, 0x50, 0x53, 0x42APSB

와 마찬가지로 hexdump분석할 이동(시작점)과 바이트 수를 제어하고 싶습니다.

다음은 몇 가지 관련 질문입니다.질문질문. 어쩌면 작동할 수도 grep있지만 그것을 내 질문으로 사용하는 방법을 모르겠습니다.sedmacOS

sh-3.2# hexdump -n 4096 -Cv /dev/disk0s1 -s 0
00000000  8d 1c 09 48 65 8c 3c 6e  01 00 00 00 00 00 00 00  |...He.<n........|
00000010  bd 04 00 00 00 00 00 00  01 00 00 80 00 00 00 00  |................|
00000020  4e 58 53 42 00 10 00 00  00 f4 01 00 00 00 00 00  |NXSB............|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  02 00 00 00 00 00 00 00  a8 8d 96 da 5a 95 46 e6  |............Z.F.|
00000050  82 3e fb 1e 40 7d 3e 79  16 04 00 00 00 00 00 00  |.>..@}>y........|
00000060  be 04 00 00 00 00 00 00  10 00 00 00 84 04 00 00  |................|
00000070  01 00 00 00 00 00 00 00  11 00 00 00 00 00 00 00  |................|
00000080  0a 00 00 00 e2 00 00 00  00 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00  00 04 00 00 00 00 00 00  |................|
000000a0  34 1e 00 00 00 00 00 00  01 04 00 00 00 00 00 00  |4...............|
000000b0  00 00 00 00 04 00 00 00  02 04 00 00 00 00 00 00  |................|
000000c0  06 04 00 00 00 00 00 00  08 04 00 00 00 00 00 00  |................|
000000d0  0a 04 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

패턴이 일치하면 파일 시작 부분의 오프셋(16진수)을 알고 싶습니다. 첫 번째 일치 후에 검색이 중지되어야 합니다.

미리 감사드립니다

답변1

"grep"이 작동해야 합니다. 내 Linux 배포판은 바이너리를 지원합니다. 값은 8진수로 표현되며 앞에 백슬래시와 0이 붙습니다.

훌륭한. POSIX에서는 "-b offset" 지정을 허용하지 않습니다. grep을 사용하려면 grep을 설치해야 합니다. 이것은 "unix.stackexchange.com"이므로 내 지시가 합법적이고 이의 제기는 매뉴얼 페이지에 대한 항의라고 가정합니다. 나(그리고 다른 사람들)는 다른 걱정거리가 있습니다.

관련 정보