OD-V

OD-V

1GBの大きなファイルを777のイベントを含むファイルに分割するときは、バイナリデータを16進数/オクターブ/任意の適切な形式に変換してからバイナリに変換する必要があります。各ファイルのサイズは異なるため、各イベントはfafafafa文字列で区切られます。 hexdump形式で(ただし、この区切り文字はTelnetの例にはない可能性があるため、練習のために任意の文字列を選択できます)。この答えからインスピレーションを得て、どのコマンドがそれに適しているかを理解しようとしています。ここ

以下のデータソースはTelnetバイナリであり、単なる例です。私は出力について説明するときにヘッダーとその部分の完全な文書を持っているのではなく、意図的に疑似レベルを使用します。ただし、この作業では理解する必要はありません。

OD-V

od -v /usr/bin/telnet | head
0000000 042577 043114 000402 000001 000000 000000 000000 000000
0000020 000003 000076 000001 000000 054700 000000 000000 000000
0000040 000100 000000 000000 000000 073210 000001 000000 000000
0000060 000000 000000 000100 000070 000010 000100 000034 000033
0000100 000006 000000 000005 000000 000100 000000 000000 000000
0000120 000100 000000 000000 000000 000100 000000 000000 000000
0000140 000700 000000 000000 000000 000700 000000 000000 000000
0000160 000010 000000 000000 000000 000003 000000 000004 000000
0000200 001000 000000 000000 000000 001000 000000 000000 000000
0000220 001000 000000 000000 000000 000034 000000 000000 000000

コメント

  • 最初の文字列はヘッダーでなければなりません。

16進ダンプ-v

hexdump -v /usr/bin/telnet | head
0000000 457f 464c 0102 0001 0000 0000 0000 0000
0000010 0003 003e 0001 0000 59c0 0000 0000 0000
0000020 0040 0000 0000 0000 7688 0001 0000 0000
0000030 0000 0000 0040 0038 0008 0040 001c 001b
0000040 0006 0000 0005 0000 0040 0000 0000 0000
0000050 0040 0000 0000 0000 0040 0000 0000 0000
0000060 01c0 0000 0000 0000 01c0 0000 0000 0000
0000070 0008 0000 0000 0000 0003 0000 0004 0000
0000080 0200 0000 0000 0000 0200 0000 0000 0000
0000090 0200 0000 0000 0000 001c 0000 0000 0000

コメント

  • 最初の文字列の番号が決まります
  • so 間の一部の文字は、後で読みやすくなる可能性があります。
  • 最初の文字列のサイズは、次の4文字の組み合わせのサイズとは異なります。

16進ダンプ-vb

hexdump -vb /usr/bin/telnet | head
0000000 177 105 114 106 002 001 001 000 000 000 000 000 000 000 000 000
0000010 003 000 076 000 001 000 000 000 300 131 000 000 000 000 000 000
0000020 100 000 000 000 000 000 000 000 210 166 001 000 000 000 000 000
0000030 000 000 000 000 100 000 070 000 010 000 100 000 034 000 033 000
0000040 006 000 000 000 005 000 000 000 100 000 000 000 000 000 000 000
0000050 100 000 000 000 000 000 000 000 100 000 000 000 000 000 000 000
0000060 300 001 000 000 000 000 000 000 300 001 000 000 000 000 000 000
0000070 010 000 000 000 000 000 000 000 003 000 000 000 004 000 000 000
0000080 000 002 000 000 000 000 000 000 000 002 000 000 000 000 000 000
0000090 000 002 000 000 000 000 000 000 034 000 000 000 000 000 000 000

このコマンドは、オクターブ形式であると仮定するod -v6桁の文字列を提供します。000000 042577別のコマンドはhexdump -v. のような 4 つの文字列を提供しますが、457f 464cいくつかのオクターブオプションを使用すると .hexdump -voのような3つの文字の単語が提供されます000000 177 105 ...

次のうち分割を簡単にするなど、バイナリデータのデータ操作に適したコマンドは何ですか?

ベストアンサー1

バイナリテストデータ1GB、議論ここ、作成者:

dd if=/dev/urandom of=sample.bin bs=64M count=16

バイト位置に分割

これについてのトピックを参照してくださいここ。バイトオフセットが固定されている場合は、分割を実行する最も適切な方法だと思います。最初の2つのイベントヘッダーの位置を決定し、イベントサイズを計算する必要があります。また、分割を終了するタイミングを知るために、最後のイベントヘッダーの尾も考慮してください。

xxd

答えはFloHimselfのコメントにあります。

xxd -ps sample.bin | process | xxd -ps -r

OD-V

では、od -vStephenKittのコメントに従って、出力形式を次のように指定する必要があります。

od -v -t x1 sample.bin

与える

0334260    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334300    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334320    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334340    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334360    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334400    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334420    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334440    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334460    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334500    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334520    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
0334540

これは処理が簡単です。

Hex/Octaveチャネルの代わりにAsciiチャネルを介した配信の説明

私はバイナリから16進数に変換して再びバイナリに変換するだけで十分だと思いますxxd -ps。これで私はbase64 sample.bin | less -s -M +Gg以下のように処理と出力がかなり遅くなることを確認しました。

CGGUAMA0GCSQGSIB3DQEBAQUBIBIIBIIBR2EFJ76bigPn+JZLGVK9G3ryRHIPKNIPGPRJMAB91ATT6GC0RS3XYBZM8NVCXMNR+2CHTO/OSH85EXUH4LK8MELHO Izleau8 K18BDVUCT 15PT2FBLUVJFJ7HTWCDY0EWM+EU2Lijgkrik8aAARQJJK/CIHFGLQUT ResflgdogCPTZEWJUWX31/8mrven5hcpzhq+NMI1D6NYJZGHN08 //OBF3B SYFW0/VVMZYDT5KG1J1 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAああああああ

おすすめ記事