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です。

関連情報