Binary

查看二進製而不是十六進制

  • December 20, 2018

Debian 傑斯 64

我想知道是否可以以 00101000 形式查看文件的二進製文件並對其進行編輯,我可以查看它,但以十六進制形式查看,我希望以 8 位形式查看和編輯它,我已經能夠以正確的形式查看它只是沒有編輯它所以我相信這是可能的,

這個故事的寓意是試圖以 8 位數字形式查看二進製文件並對其進行編輯而不是十六進制。

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

然後,*將 coumns 留在原處,*您可以使用此(albiet hacky)腳本進行轉換

#!/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!

引用自:https://unix.stackexchange.com/questions/223443