バイナリエディタ比較

バイナリエディタを検討したので、メモを残しておきます。

世の中には実に多くのバイナリエディタが存在しますが、今回検討したのは、Windows で動作する構造体編集機能を持つものです。目的としては、動的構造体定義が行えるかどうかという検証で、今回取り上げたすべてのバイナリエディタで静的構造体編集機能は備わっています。

動的構造体といのはどういうものかというと、以下のようなものです。

struct Data {
    int length;
    char bytes[length];
};

こういう構造は実際のところ割と多用されていて、それをバイナリエディタで気軽に確認・編集したいというのが動機です。

xedit

上図は xedit でビットマップの構造体を表示させてみたものです。

Luaスクリプトが書けるので期待したのですが、動的構造体の定義は行えませんでした。

TSXBIN

上図は TSXBIN でビットマップの構造体を表示させてみたものです。

TSXBIN は C 言語っぽい独自言語で構造体定義をプログラミングすることができ、動的構造体をサポートしている数少ないバイナリエディタです。

これで構造体定義ファイルを作成していたところ、期待した動作をしてくれないため、作者に定義ファイルと再現データを送付して報告したのですが、連絡がつかないので、継続使用を断念しました。

Stirling

上図は Stirling でビットマップの構造体を表示させてみたものです。

愛用者が多いと思われる Stirling は、私も常用しているバイナリエディタなのですが、構造体定義は静的なもののみのサポートです。

Hex Editor Neo

上図は Hex Editor Neo でビットマップの構造体を表示させてみたものです。

Hex Editor Neo は無償で利用可能な Free Edition、有償の Standard Edition、Professional Edition、Ultimate Edition とあり、構造体編集は Professional Edition 以上で可能です。

今回評価した中では構造体編集もさることながらバイナリエディタとしてのポテンシャルも最も強力でした。最初に例示した構造体定義がそのまま使用できます。

機能が多すぎる、日本語をサポートしていない、ショートカットキーなどの細かい部分が洗練されていない、構造体定義は C 言語なのにスクリプトJavaScript という一貫性のなさ、構造体定義ファイルのデバッグがかなり大変であることなどの不満はありますが、買っても損をしない*1バイナリエディタではないかと思います。購入前に 14 日間の評価が行えるので、その間でじっくり評価をするとよいでしょう。

*1:本体7000円、メジャーアップグレード優待3500円ぐらいで、合計1万円を超えるため、損をしないとは言い切れない