xxd에 의해 생성 된 16 진 덤프에 오프셋을 추가하는 쉬운 방법이 있습니까? 대신xxd를 사용하여 hexdump에 오프셋을 삽입하는 방법은 무엇입니까?
0000: <data>
0004: <data>
0008: <data>
의
즉 나는
Offset+0000: <data>
Offset+0004: <data>
Offset+0008: <data>
xxd에 의해 생성 된 16 진 덤프에 오프셋을 추가하는 쉬운 방법이 있습니까? 대신xxd를 사용하여 hexdump에 오프셋을 삽입하는 방법은 무엇입니까?
0000: <data>
0004: <data>
0008: <data>
의
즉 나는
Offset+0000: <data>
Offset+0004: <data>
Offset+0008: <data>
이것은 내가 무엇을 now..It를하고있는 중이 야하는 것은 완벽하게 작동하지만 단지 추가 절름발이 방법의 종류입니다 오프셋 : 당신이 AWK 살 수 있다면
xxd file.bin | xxd -r -s 0x2e00000 | xxd -s 0x2e00000 > file.hex
은 아래에 코멘트를 읽기 얻어야한다 :
내가 이진 파일의 첫 번째 바이트 오프셋 존재가되고 싶어요. 즉 탐색하지 않고 오프셋을 추가하십시오.
이렇게하면 출력을 구문 분석하고 원하는 오프셋을 추가하기 위해 수정할 수있는 유일한 방법이라고 생각합니다.
이 작업을 쉽게 처리 할 수있는 문서를 찾지 못했습니다. :(
여기 개념의 증거 :
$ xxd random.bin | gawk --non-decimal-data ' # <-- treat 0x123 like numbers
> {
> offset = 0x1000 # <-- your offset, may be hex of dec
>
> colon = index($0, ":") - 1
> x = "0x" substr($0, 1, colon) # <-- add 0x prefix to original offset ...
> sub(/^[^:]*/, "") # <-- ... and remove it from line
>
> new = x + offset # <-- possible thanks to --non-decimal-data
> printf("%0"colon"x", new) # <-- print updated offset ...
> print # <-- ... and the rest of line
> }'
0001000: ac48 df8c 2dbe a80c cd03 06c9 7c9d fe06 .H..-.......|...
0001010: bd9b 02a1 cf00 a5ae ba0c 8942 0c9e 580d ...........B..X.
0001020: 6f4b 25a6 6c72 1010 8d5e ffe0 17b5 8f39 oK%.lr...^.....9
0001030: 34a3 6aef b5c9 5be0 ef44 aa41 ae98 44b1 4.j...[..D.A..D.
^^^^
updated offsets (+0x1000)
내가 그것을 펄이나 파이썬에서 짧은 것 내기하지만, AWK 그냥 더 "스크립트 틱"을 느낀다 :-)
xxd
지금를 사용하여, 오프셋 지원을 제공하기 위해 나타납니다 예를 들면
: xxd -o 0x07d20000 file.bin
젠투 리눅스에 xxd
의 내 버전을 가지고,하지만 난 다른 배포판에 사람들을 도울 깊이를 파고 :
xxd V1.10 27oct98 by Juergen Weigert
- xxd 버전을 사용하지 마십시오 - I 오프셋 지원없이이 소스 코드를 발견했습니다 !! 따라서 내 바이너리가 어디서 왔는지 추적했습니다 :
app-editors/vim-core-7.4.769
- 현대 VIM이 설치되어있는 한 추가 오프셋 지원의 이점을 얻을 수 있습니다. 적어도 Gentoo에서,하지만 나는 올바른 방향으로 여러분을 안내 할 것입니다.
배포판에 오래된 xxd가 계속 제공되는 경우 확인한 최신 VIM을 수동으로 컴파일하는 것을 고려하면 오프셋이 지원됩니다.
fwiw, 믿을만한 Ubuntu에서 xxd (vim 7.4.052)는 xenial (vim 7.4.1689)에서 -o를 지원하지 않습니다. 당신이 그것을 믿을만한 원한다면 https://launchpad.net/~pkg-vim/+archive/ubuntu/vim-daily의 PPA는 충분히 새로운 vim 7.4.826을 설치합니다. –
바이너리 입력 파일을 검색하고 입력 파일에서 오프셋 바이트를 건너 뜁니다. 바이너리 파일의 첫 번째 바이트가 오프셋에 있어야합니다. 즉 탐색하지 않고 오프셋을 추가하십시오. – Jean
확인을 클릭하십시오. 내가 아는 한, 불가능합니다. – karlphillip