手元に適当なバイナリエディタが無い時のためのメモ。
まずファイルをバイナリモードで開く。
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
以上