CLI:编辑二进制字符串

CLI:编辑二进制字符串

有一个很好的 CLIbinutils实用程序,可以以类似的方式解释二进制文件并输出清晰的字符串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。

相关内容