16진수 대신 바이너리 보기

16진수 대신 바이너리 보기

데비안 jess 64

파일의 바이너리를 00101000으로 보고 편집이 가능한지 궁금합니다. 볼 수는 있는데 헥스 형태로 8자리로 보고 편집하고 싶은데 제대로 볼 수 있게 됐습니다. 편집하지 않고 양식으로만 사용할 수 있으므로 이것이 가능하다고 생각합니다.

따라서 이야기의 교훈은 16진수가 아닌 8자리 형식으로 바이너리 파일을 보고 편집해 보는 것입니다.

답변1

를 사용하면 플래그 xxd를 사용할 수 있습니다-b

echo 'hello world' | xxd -b

이것은 출력됩니다

0000000: 01101000 01100101 01101100 01101100 01101111 00100000  hello 
0000006: 01110111 01101111 01110010 01101100 01100100 00001010  world.

편집 가능한 파일로 리디렉션할 수 있습니다.

echo 'hello world' | xxd -b > dumped_bits.txt

그런 다음,열을 원래 위치에 그대로 두십시오.이 (해키이긴 하지만) 스크립트를 사용하여 다시 변환할 수 있습니다.

#!/bin/bash
# name this file something like `bits_to_binary.sh`

# strip anything that's not a bit string like `0000000:` or `world`
bits=`sed -ze 's/\w*[^ 01]\w*//g' -e 's/ //g' -e 's/\n//' $1`

# and convert the bit representation to binary
printf "obase=16;ibase=2;${bits}\n" | bc | xxd -r -p

이러한 단계를 결합하면 다음을 수행할 수 있습니다.

echo 'hello world' | xxd -b > dumped_bits.txt
# edit dumped_bits.txt
./bits_to_binary.sh dumped_bits.txt
# hooray! the binary output from the edited bits!

답변2

바이너리 모드에서 vim을 사용하세요:

vim -b filetohack.bin

관련 정보