viでバイナリファイルを編集するには

手元に適当なバイナリエディタが無い時のためのメモ。

まずファイルをバイナリモードで開く。

vi -b sample.png (あるいはvim -b sample.png)


こんな感じで表示されます。

<89>PNG^M
^Z
^@^@^@^MIHDR^@^@^C.^@^@^B<d6>^H^@^@^@^@/gP<^@^@^@^AsRGB^@<ae><ce>^\<e9>^@^@^@^DgAMA^@^@<b1><8f>^K<fc>a^E^@^@^@ pHYs^@^@^N<c3>^@^@^N<c3>^A<c7>o<a8>d^@^@B<99>IDATx^<ed><dd>A<92><e3>:<d2>&<da>Z<c8>^[<be>U<dc>^E<e5>zr?x<a3><dc>K?<f6><a8><cdd
><da><de>^R<aa>#<a4><cf># <88><94><a8>^H<8a><a4><c8>s<cc><cd><fe><9b>^N^P^@E^Bt<cb>[^?<d5>^?<fe>^K^@<c0>F<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^@lF)^F^@<b0>^Y<a5>^X^@<c0>f<94>b^@^@<9b>Q<8a>^A^


次にxxdコマンドを適用。

:%!xxd


こんな感じで16進数で表示され、編集できるようになります。

0000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452 .PNG........IHDR
0000010: 0000 032e 0000 02d6 0800 0000 002f 6750 ............./gP
0000020: 3c00 0000 0173 5247 4200 aece 1ce9 0000 <....sRGB.......
0000030: 0004 6741 4d41 0000 b18f 0bfc 6105 0000 ..gAMA......a...
0000040: 0009 7048 5973 0000 0ec3 0000 0ec3 01c7 ..pHYs..........
0000050: 6fa8 6400 0042 9949 4441 5478 5eed dd41 o.d..B.IDATx^..A


編集が完了したら、下記で16進数表示からバイナリ表示に戻します。

:%!xxd -r


rオプションは16進数表示からバイナリ表示に変更するオプションになります。
最後に保存。

:wq



以上

この記事へのComments:

管理人のみ通知 :

Trackbacks:


プロフィール

トニヒコ

Author:トニヒコ
趣味は旅行と読書とマンガ。
将来の夢はコスモポリタン!

リンク・フリーです。

My hobby is traveling and reading(include manga).
My dream is to become cosmopolitan!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
スポンサード リンク
マクロミルへ登録
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR