CLI: 바이너리 문자열 편집

CLI: 바이너리 문자열 편집

binutils비슷한 방식으로 바이너리 파일을 해석하고 일반 문자열을 출력할 수 있는 좋은 CLI 유틸리티가 있습니다 cat. 그것은 알려져 있습니다 strings.

바이너리 파일을 사용하려고 하면 cat횡설수설하는 텍스트와 외국 기호가 많이 표시됩니다. reset쉘이 필요할 수도 있습니다 . 이것은 때로는 불가능할 때도 있다

그와 마찬가지로 cat기본 사용법은 간단합니다.

strings ./example.bin

개인적으로 빠른 읽기를 위해 다음을 좋아합니다.

strings -aws ' ' ./example.bin | fold -sw $COLUMNS ; echo

실제 파일에서 테스트하려면 디렉토리에서 다음 /bin과 같은 작업을 시도할 수 있습니다.

strings -aws ' ' /bin/true | fold -sw $COLUMNS ; echo

내 질문: 이러한 문자열을 편집하는 유사하고 빠르고 쉬운 방법이 있습니까?

답변1

예. vim -b filename. -b바이너리 파일을 나타냅니다 . vim의 매뉴얼 페이지를 참조하세요.

   -b          Binary mode.  A few options will be set that makes it
               possible to  edit  a  binary  or  executable file.

bvi또한 적합합니다.

$ bvi /bin/ls
00000000  7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 02 00 3E 00 01 00 00 00 .ELF..............>.....
00000018  A0 49 40 00 00 00 00 00 40 00 00 00 00 00 00 00 38 E7 01 00 00 00 00 00 .I@[email protected].......
00000030  00 00 00 00 40 00 38 00 09 00 40 00 1D 00 1C 00 06 00 00 00 05 00 00 00 [email protected]...@.............
00000048  40 00 00 00 00 00 00 00 40 00 40 00 00 00 00 00 40 00 40 00 00 00 00 00 @.......@.@.....@.@.....
00000060  F8 01 00 00 00 00 00 00 F8 01 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ........................

답변2

나는 바이너리 데이터 조작에 관한 다음과 같은 훌륭한 기사를 우연히 발견했습니다. Bash에서 바이너리 데이터 조작

기본적으로 다음과 같은 매우 편리한 도구를 설명합니다.xxd

예를 들어, ASCII 형식의 바이너리 파일을 덤프하려면 다음을 수행합니다.

xxd -b myfile.bin

짧은 문자열을 변환하려면 이전 문자열을 사용할 수 있습니다 bc.

$ echo "obase=16; ibase=2; 1010" | bc
A

고려해야 할 또 다른 접근 방식은 다음과 같습니다.

$ base64 < binary.file > text.file

데이터 베이스그리고비만입력 및 출력 숫자의 변환 기준을 정의합니다. 입력과 출력 모두의 기본 기수는 10입니다.

관련 정보