![바이너리 내용을 보기 위해 "xxd -r"에 전달하기 전에 16진수 문자열을 LE 형식으로 수정하려면 어떻게 해야 합니까?](https://linux55.com/image/187089/%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC%20%EB%82%B4%EC%9A%A9%EC%9D%84%20%EB%B3%B4%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%22xxd%20-r%22%EC%97%90%20%EC%A0%84%EB%8B%AC%ED%95%98%EA%B8%B0%20%EC%A0%84%EC%97%90%2016%EC%A7%84%EC%88%98%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20LE%20%ED%98%95%EC%8B%9D%EC%9C%BC%EB%A1%9C%20%EC%88%98%EC%A0%95%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
LE 형식으로 메모리에 저장되면 16진수 문자열은 0068732f6e69622f
ASCII 문자열을 나타냅니다./bin/sh
2f62696e2f736800
16진수 문자열을 바이트( ) 로 변환하여 xxd -r -ps
표시 할 수 있는 Linux 유틸리티가 있습니까 /bin/sh
?
$ echo -n 0068732f6e69622f | xxd -r -ps
hs/nib/
조사해 보았지만 xxd -e
다음과 함께 사용할 수 없습니다 -r
.
-e little-endian dump (incompatible with -ps,-i,-r).
답변1
$ echo 0068732f6e69622f | rev | dd conv=swab 2>/dev/null | xxd -r -p
/bin/sh
rev
역방향 입력 문자열:0068732f6e69622f
->f22696e6f2378600
dd conv=swab 2>/dev/null
각 바이트 쌍을 교환하고dd
stderr에서 잡음이 있는 출력을 삭제합니다:f2
->2f
,26
->62
, ...