binary editorの調査
自作OS入門でBinaryEditorが出てきたのですが、日常的に使うために何が良いのだろうか適当に調べてみました。
vim
この辺に色々書いてありました。
基本的には以下の手順でやるようなのですが若干面倒くさいです。
vim -b file # 16進ダンプ形式へ %!xxd # テキスト表示へ %!xxd -r
でこれをbinaryで開いたらやってくれる設定がこちらのようです。
augroup BinaryXXD autocmd! autocmd BufReadPre *.bin let &binary =1 autocmd BufReadPost * if &binary | silent %!xxd -g 1 autocmd BufReadPost * set ft=xxd | endif autocmd BufWritePre * if &binary | %!xxd -r | endif autocmd BufWritePost * if &binary | silent %!xxd -g 1 autocmd BufWritePost * set nomod | endif augroup END
試しにgolint
を開いてみました。
1 00000000: cf fa ed fe 07 00 00 01 03 00 00 00 02 00 00 00 ................ 2 00000010: 0b 00 00 00 80 09 00 00 00 00 00 00 00 00 00 00 ................ 3 00000020: 19 00 00 00 48 00 00 00 5f 5f 50 41 47 45 5a 45 ....H...__PAGEZE 4 00000030: 52 4f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 RO.............. 5 00000040: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 ................ 6 00000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 7 00000060: 00 00 00 00 00 00 00 00 19 00 00 00 78 02 00 00 ............x... 8 00000070: 5f 5f 54 45 58 54 00 00 00 00 00 00 00 00 00 00 __TEXT..........
バッチリです。
hexedit
brew install hexedit
- 使い方は、fileをopenして編集後Ctrl+xで保存。
- 保存したく無い場合はCtrl+c
hexedit filename
開いた感じ
00000000 CF FA ED FE 07 00 00 01 03 00 00 00 02 00 00 00 0D 00 00 00 48 0A 00 00 00 00 00 00 00 00 00 00 ....................H........... 00000020 19 00 00 00 48 00 00 00 5F 5F 50 41 47 45 5A 45 52 4F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....H...__PAGEZERO.............. 00000040 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00000060 00 00 00 00 00 00 00 00 19 00 00 00 78 02 00 00 5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00 ............x...__TEXT.......... 00000080 00 00 00 01 00 00 00 00 00 80 B4 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 B4 00 00 00 00 00 ................................ 000000A0 07 00 00 00 05 00 00 00 07 00 00 00 00 00 00 00 5F 5F 74 65 78 74 00 00 00 00 00 00 00 00 00 00 ................__text.......... 000000C0 5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00 00 10 00 01 00 00 00 00 25 BD 52 00 00 00 00 00 __TEXT..................%.R..... 000000E0 00 10 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 04 00 80 00 00 00 00 00 00 00 00 00 00 00 00 ................................ 00000100 5F 5F 72 6F 64 61 74 61 00 00 00 00 00 00 00 00 5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00 __rodata........__TEXT.......... 00000120 40 CD 52 01 00 00 00 00 60 18 29 00 00 00 00 00 40 CD 52 00 05 00 00 00 00 00 00 00 00 00 00 00 @.R.....`.).....@.R............. 00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5F 5F 73 79 6D 62 6F 6C 5F 73 74 75 62 31 00 00 ................__symbol_stub1.. 00000160 5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00 A0 E5 7B 01 00 00 00 00 C8 01 00 00 00 00 00 00 __TEXT............{............. 00000180 A0 E5 7B 00 05 00 00 00 00 00 00 00 00 00 00 00 08 04 00 80 00 00 00 00 06 00 00 00 00 00 00 00 ..{............................. 000001A0 5F 5F 74 79 70 65 6C 69 6E 6B 00 00 00 00 00 00 5F 5F 54 45 58 54 00 00 00 00 00 00 00 00 00 00 __typelink......__TEXT.......... 000001C0 80 E7 7B 01 00 00 00 00 04 4C 00 00 00 00 00 00 80 E7 7B 00 05 00 00 00 00 00 00 00 00 00 00 00 ..{......L........{............. 000001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5F 5F 69 74 61 62 6C 69 6E 6B 00 00 00 00 00 00 ................__itablink......
Goland
- DeltaHex Editor
- https://plugins.jetbrains.com/plugin/9339-deltahex-editor
このPluginをinstallすれば編集できる。 画面右に現在編集中のデータが表示されるので分かりやすい