« 深刻な脆弱性を修正した WordPress 4.2.2 リリース | トップページ | 誤って削除したファイルを簡単に復元する方法(削除データの復旧方法) »

簡単便利!おすすめ Linux バイナリエディタ - vi で手軽にバイナリ編集

更新日: 2016-01-26

おすすめ Linux バイナリエディタ - vi で手軽にバイナリ編集


キーワード: Linux、バイナリエディタ、vi

このエントリーをはてなブックマークに追加

概要

Linux のテキストエディタである vi を使ってバイナリファイルを編集する方法です。vi から外部コマンド呼び出しで、xxd を使って編集します。vi のバイナリモードである b オプションを使ってバイナリファイルを開き、外部コマンド呼び出しから xxd を使って 16進数表示に変換します(:%!xxd)。必要な個所を vi コマンドで編集したら xxd コマンドでテキストに戻します(:%!xxd -r)。vi コマンドで保存すれば編集完了です。

0. 編集に使ったバイナリファイル

# file sample.bin
sample.bin: ELF 64-bit LSB  shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0f7ff287cf26eba9a6643b1226089eea57cb7e44, stripped

1. vi でバイナリファイル sample.bin を開く

# vi -b sample.bin
^?ELF^B^A^A^@^@^@^@^@^@^@^@^@^C^@>^@^A^@^@^@2N^@^@^@^@^@^@@^@^@^@^@^@^@^@øÒ^A^@^@^@^@^@^@^@^@^@@^@8^@   ^@@^@^[^@^Z^@^F^@^@^@^E^@^@^@@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@ø^A^@^@^@^@^@^@ø^A^@^@^@^@^@^@^H^@^@^@^@^@^@^@^C^@^@^@^D^@^@^@8^B^@^@^@^@^@^@8^B^@^@^@^@^@^@8^B^@^@^@^@^@^@^\^@^@^@^@^@^@^@^\^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^A^@^@^@^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@l¸^A^@^@^@^@^@l¸^A^@^@^@^@^@^@^@ ^@^@^@^@^@^A^@^@^@^F^@^@^@¨½^A^@^@^@^@^@¨½!^@^@^@^@^@¨½!^@^@^@^@^@X^T^@^@^@^@^@^@@@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^B^@^@^@^F^@^@^@<88>Ê^A^@^@^@^@^@<88>Ê!^@^@^@^@^@<88>Ê!^@^@^@^@^@ð^A^@^@^@^@^@^@ð^A^@^@^@^@^@^@^H^@^@^@^@^@^@^@^D^@^@^@^D^@^@^@T^B^@^@^@^@^@^@T^B^@^@^@^@^@^@T^B^@^@^@^@^@^@D^@^@^@^@^@^@^@D^@^@^@^@^@^@^@^D^@^@^@^@^@^@^@Påtd^D^@^@^@dy^A^@^@^@^@^@dy^A^@^@^@^@^@dy^A^@^@^@^@^@ô^G^@^@^@^@^@^@ô^G^@^@^@^@^@^@^D^@^@^@^@^@^@^@Qåtd^F^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^P^@^@^@^@^@^@^@Råtd^D^@^@^@¨½^A^@^@^@^@^@¨½!^@^@^@^@^@¨½!^@^@^@^@^@X^R^@^@^@^@^@^@X^R^@^@^@^@^@^@^A^@^@^@^@^@^@^@/lib64/ld-linux-x86-64.so.2^@^D^@^@^@^P^@^@^@^A^@^@^@GNU^@^@^@^@^@^B^@^@^@^F^@^@^@^X^@^@^@^D^@^@^@^T^@^@^@^C^@^@^@GNU^@^O^?ò<87>Ï&멦d;^R&^H<9e>êWË~DC^@^@^@i^@^@^@^H^@^@^@     ^@^@^@)^P ,^@^@^A <86>^GX^@^PÅ<8c> ^FÈH£HÀ'^P^Hq^U%áP^F^@^\^@ <9e><95>XY^D<88>^Mh^CÄtÐ*^X^@Ã<80>rh^C^L8ü ^W×<81>)^Qi^@^@^@k^@^@^@l^@^@^@m^@^@^@n^@^@^@q^@^@^@u^@^@^@x^@^@^@^@^@^@^@^@^@^@^@z^@^@^@}^@^@^@^@^@^@^@^@^@^@^@~^@^@^@<80>^@^@^@<82>^@^@^@<84>^@^@^@<85>^@^@^@^@^@^@^@<86>^@^@^@<88>^@^@^@<89>^@^@^@<8a>^@^@^@^@^@^@^@<8c>^@^@^@<8e>^@^@^@^@^@^@^@^@^@^@^@<8f>^@^@^@<91>^@^@^@<92>^@^@^@<93>^@^@^@<94>^@^@^@<95>^@^@^@<96>^@^@^@<98>^@^@^@^@^@^@^@<9b>^@^@^@<9d>^@^@^@<9f>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@¢^@^@^@¤^@^@^@¦^@^@^@©^@^@^@«^@^@^@^@^@^@^@­^@^@^@®^@^@^@¯^@^@^@°^@^@^@²^@^@^@´^@^@^@^@^@^@^@·^@^@^@¹^@^@^@^@^@^@^@»^@^@^@½^@^@^@¾^@^@^@¿^@^@^@^@^@^@^@6õÏ<9a>«C<8a>^\¥?C^\ÙÅ#^\<9f>`ÊP<8e>äZ^P´0c<9a>oî<9b>|^XÉÊÚd<94>^Ainî<9b>|Å<9f>ì<9b>HP¦^Q^Bé1^Gá¹Szl<97>/g<83>b¦ià_z^V¬KãÀC<8e><9c>©kæ.9òÊô(1<80>kuÎâ÷^RÙÑ^P0V§<94>óÃÌ^Nóåç+^W<9f>F85<82>õ<98><Y{F¯w]R^S¯<96><94>^LÔÜñqiú<86>l Y<8d>Èá$^WÎÉ4DòV&_m§`Çû^W<98>¦ÚyÕ^N<93>½,gW<97>/y^V{Õ<8a>âfo5V^_WI=<80>dìÔ<92><9e>BBu<91><9b>^^T¯VÛ§     ê*æ °^V^[6z3à  ñ~®2<94>|Õ°Ë^M^Tºlò±ÝǬô<97>þ^T^[aÿFÚÅ<84>^E^Bz=EI<82>ݬÔá)h¡£)öBEÕì/9
:%!xxd

2. xxd を呼び出して 16 進数ダンプ表示する(:%!xxd)

0000000: 7f45 4c46 0201 0100 0000 0000 0000 0000  .ELF............
0000010: 0300 3e00 0100 0000 324e 0000 0000 0000  ..>.....2N......
0000020: 4000 0000 0000 0000 c3b8 c392 0100 0000  @...............
0000030: 0000 0000 0000 4000 3800 0900 4000 1b00  ......@.8...@...
0000040: 1a00 0600 0000 0500 0000 4000 0000 0000  ..........@.....
0000050: 0000 4000 0000 0000 0000 4000 0000 0000  ..@.......@.....
0000060: 0000 c3b8 0100 0000 0000 00c3 b801 0000  ................
0000070: 0000 0000 0800 0000 0000 0000 0300 0000  ................
0000080: 0400 0000 3802 0000 0000 0000 3802 0000  ....8.......8...
0000090: 0000 0000 3802 0000 0000 0000 1c00 0000  ....8...........
00000a0: 0000 0000 1c00 0000 0000 0000 0100 0000  ................
00000b0: 0000 0000 0100 0000 0500 0000 0000 0000  ................
00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d0: 0000 0000 6cc2 b801 0000 0000 006c c2b8  ....l........l..
00000e0: 0100 0000 0000 0000 2000 0000 0000 0100  ........ .......
00000f0: 0000 0600 0000 c2a8 c2bd 0100 0000 0000  ................
0000100: c2a8 c2bd 2100 0000 0000 c2a8 c2bd 2100  ....!.........!.
0000110: 0000 0000 5814 0000 0000 0000 4040 0000  ....X.......@@..

3. 16進数ダンプを編集

4. xxd -r で戻す(%!xxd -r)

0000000: 7f45 4c48 0201 0100 0000 0000 0000 0000  .ELF............
0000010: 0300 3e00 0100 0000 324e 0000 0000 0000  ..>.....2N......
0000020: 4000 0000 0000 0000 c3b8 c392 0100 0000  @...............
0000030: 0000 0000 0000 4000 3800 0900 4000 1b00  ......@.8...@...
0000040: 1a00 0600 0000 0500 0000 4000 0000 0000  ..........@.....
0000050: 0000 4000 0000 0000 0000 4000 0000 0000  ..@.......@.....
0000060: 0000 c3b8 0100 0000 0000 00c3 b801 0000  ................
0000070: 0000 0000 0800 0000 0000 0000 0300 0000  ................
0000080: 0400 0000 3802 0000 0000 0000 3802 0000  ....8.......8...
0000090: 0000 0000 3802 0000 0000 0000 1c00 0000  ....8...........
00000a0: 0000 0000 1c00 0000 0000 0000 0100 0000  ................
00000b0: 0000 0000 0100 0000 0500 0000 0000 0000  ................
00000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d0: 0000 0000 6cc2 b801 0000 0000 006c c2b8  ....l........l..
00000e0: 0100 0000 0000 0000 2000 0000 0000 0100  ........ .......
00000f0: 0000 0600 0000 c2a8 c2bd 0100 0000 0000  ................
0000100: c2a8 c2bd 2100 0000 0000 c2a8 c2bd 2100  ....!.........!.
0000110: 0000 0000 5814 0000 0000 0000 4040 0000  ....X.......@@..
:%!xxd -r

5. 変更した内容を保存して終了(:wq)

^?ELH^B^A^A^@^@^@^@^@^@^@^@^@^C^@>^@^A^@^@^@2N^@^@^@^@^@^@@^@^@^@^@^@^@^@øÒ^A^@^@^@^@^@^@^@^@^@@^@8^@   ^@@^@^[^@^Z^@^F^@^@^@^E^@^@^@@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@@^@^@^@^@^@^@^@ø^A^@^@^@^@^@^@ø^A^@^@^@^@^@^@^H^@^@^@^@^@^@^@^C^@^@^@^D^@^@^@8^B^@^@^@^@^@^@8^B^@^@^@^@^@^@8^B^@^@^@^@^@^@^\^@^@^@^@^@^@^@^\^@^@^@^@^@^@^@^A^@^@^@^@^@^@^@^A^@^@^@^E^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@l¸^A^@^@^@^@^@l¸^A^@^@^@^@^@^@^@ ^@^@^@^@^@^A^@^@^@^F^@^@^@¨½^A^@^@^@^@^@¨½!^@^@^@^@^@¨½!^@^@^@^@^@X^T^@^@^@^@^@^@@@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^B^@^@^@^F^@^@^@<88>Ê^A^@^@^@^@^@<88>Ê!^@^@^@^@^@<88>Ê!^@^@^@^@^@ð^A^@^@^@^@^@^@ð^A^@^@^@^@^@^@^H^@^@^@^@^@^@^@^D^@^@^@^D^@^@^@T^B^@^@^@^@^@^@T^B^@^@^@^@^@^@T^B^@^@^@^@^@^@D^@^@^@^@^@^@^@D^@^@^@^@^@^@^@^D^@^@^@^@^@^@^@Påtd^D^@^@^@dy^A^@^@^@^@^@dy^A^@^@^@^@^@dy^A^@^@^@^@^@ô^G^@^@^@^@^@^@ô^G^@^@^@^@^@^@^D^@^@^@^@^@^@^@Qåtd^F^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^P^@^@^@^@^@^@^@Råtd^D^@^@^@¨½^A^@^@^@^@^@¨½!^@^@^@^@^@¨½!^@^@^@^@^@X^R^@^@^@^@^@^@X^R^@^@^@^@^@^@^A^@^@^@^@^@^@^@/lib64/ld-linux-x86-64.so.2^@^D^@^@^@^P^@^@^@^A^@^@^@GNU^@^@^@^@^@^B^@^@^@^F^@^@^@^X^@^@^@^D^@^@^@^T^@^@^@^C^@^@^@GNU^@^O^?ò<87>Ï&멦d;^R&^H<9e>êWË~DC^@^@^@i^@^@^@^H^@^@^@     ^@^@^@)^P ,^@^@^A <86>^GX^@^PÅ<8c> ^FÈH£HÀ'^P^Hq^U%áP^F^@^\^@ <9e><95>XY^D<88>^Mh^CÄtÐ*^X^@Ã<80>rh^C^L8ü ^W×<81>)^Qi^@^@^@k^@^@^@l^@^@^@m^@^@^@n^@^@^@q^@^@^@u^@^@^@x^@^@^@^@^@^@^@^@^@^@^@z^@^@^@}^@^@^@^@^@^@^@^@^@^@^@~^@^@^@<80>^@^@^@<82>^@^@^@<84>^@^@^@<85>^@^@^@^@^@^@^@<86>^@^@^@<88>^@^@^@<89>^@^@^@<8a>^@^@^@^@^@^@^@<8c>^@^@^@<8e>^@^@^@^@^@^@^@^@^@^@^@<8f>^@^@^@<91>^@^@^@<92>^@^@^@<93>^@^@^@<94>^@^@^@<95>^@^@^@<96>^@^@^@<98>^@^@^@^@^@^@^@<9b>^@^@^@<9d>^@^@^@<9f>^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@¢^@^@^@¤^@^@^@¦^@^@^@©^@^@^@«^@^@^@^@^@^@^@­^@^@^@®^@^@^@¯^@^@^@°^@^@^@²^@^@^@´^@^@^@^@^@^@^@·^@^@^@¹^@^@^@^@^@^@^@»^@^@^@½^@^@^@¾^@^@^@¿^@^@^@^@^@^@^@6õÏ<9a>«C<8a>^\¥?C^\ÙÅ#^\<9f>`ÊP<8e>äZ^P´0c<9a>oî<9b>|^XÉÊÚd<94>^Ainî<9b>|Å<9f>ì<9b>HP¦^Q^Bé1^Gá¹Szl<97>/g<83>b¦ià_z^V¬KãÀC<8e><9c>©kæ.9òÊô(1<80>kuÎâ÷^RÙÑ^P0V§<94>óÃÌ^Nóåç+^W<9f>F85<82>õ<98><Y{F¯w]R^S¯<96><94>^LÔÜñqiú<86>l Y<8d>Èá$^WÎÉ4DòV&_m§`Çû^W<98>¦ÚyÕ^N<93>½,gW<97>/y^V{Õ<8a>âfo5V^_WI=<80>dìÔ<92><9e>BBu<91><9b>^^T¯VÛ§     ê*æ °^V^[6z3à  ñ~®2<94>|Õ°Ë^M^Tºlò±ÝǬô<97>þ^T^[aÿFÚÅ<84>^E^Bz=EI<82>ݬÔá)h¡£)öBEÕì/9å
:wq



« 深刻な脆弱性を修正した WordPress 4.2.2 リリース | トップページ | 誤って削除したファイルを簡単に復元する方法(削除データの復旧方法) »

Linux」カテゴリの記事

技術一般」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/503138/61562885

この記事へのトラックバック一覧です: 簡単便利!おすすめ Linux バイナリエディタ - vi で手軽にバイナリ編集:

« 深刻な脆弱性を修正した WordPress 4.2.2 リリース | トップページ | 誤って削除したファイルを簡単に復元する方法(削除データの復旧方法) »

記事一覧

スポンサードリンク


Twitter


無料ブログはココログ

ブログ検索