ソフトウェア開発者のための OSS、まとめてみました!

ソフトウェア開発を行なっている自分が、個人的に面白いと思ったプログラムの最新技術や、オープンソースソフトウェア(OSS)をまとめています!

MENU

午前 3 時に作業をするリバースエンジニア・プログラマーの方向けバイナリエディタ!「ImHex」

概要

今回は面白いコンセプトのエディタを発見したのでご紹介いたします!

今回紹介する OSS は、午前 3 時に作業をするときに網膜を重視するリバースエンジニア・プログラマーのためのバイナリエディタImHex」になります。

ImHex」が初めて公開されたのは 2020 年 12 月ということで比較的新しいエディタになります。

まずは簡単に特徴などを紹介していこうと思います。

特徴

README に記載されている特徴を日本語に翻訳して、こちらに転記しています。

かなりたくさんの機能があることが分かりますね!

  • 特徴的な Hex ビュー
    • Byte パッチ
    • パッチ管理
    • 以下の文字列のコピー
    • 文字列および 16 進検索
    • カラフルなハイライト
    • 開始、終了、現在のカーソル位置から移動
  • ファイルのコンテンツを強調表示する解析用の C++ に似たカスタム パターン言語
    • MIME タイプに基づく自動読み込み
    • 配列、ポインター、構造体、共用体、列挙型、ビットフィールド、名前空間、リトルエンディアンとビッグ エンディアンのサポート、条件文などなど
    • 便利なエラー メッセージ、構文の強調表示、およびエラー マーキング
  • 深夜のセッションで使用しても網膜を保護
    • デフォルトではダークモード(ライトモードも利用可能)
  • データのインポート
    • Base64 ファイル
    • IPS および IPS32 パッチ
  • データのエクスポート
    • IPS および IPS32 パッチ
  • データをさまざまなタイプ (リトルエンディアンとビッグ エンディアン) として解釈可能
  • 高速で効率的な読み込みによる巨大ファイルのサポート
  • 文字列検索
    • 文字列のコピー
    • デマングル文字列のコピー
  • ファイルハッシュのサポート
    • カスタムの初期値と多項式を使用した CRC16 および CRC32
    • MD4、MD5
    • SHA-1、SHA-224、SHA-256、SHA-384、SHA-512
  • 多くのアーキテクチャをサポートする逆アセンブラー (Capstone のフロントエンド)
    • ARM32 (ARM、親指、Cortex-M、AArch32)
    • ARM64
    • MIPS (MIPS32、MIPS64、MIPS32R6、マイクロ)
    • x86 (16 ビット、32 ビット、64 ビット)
    • PowerPC (32 ビット、64 ビット)
    • スパーク
    • IBM SystemZ
    • xCORE
    • M68K
    • TMS320C64X
    • M680X
    • イーサリアム
    • RISC-V
    • WebAssembly
    • MOS65XX
    • バークレー パケット フィルタ
  • ブックマーク
    • 領域の強調表示
    • コメント
  • データ アナライザー
    • ファイル マジック ベースのファイル パーサーと MIME タイプ データベース
    • バイト分布グラフ
    • エントロピーグラフ
    • 最高および平均エントロピー
    • 暗号化/圧縮ファイルの検出
  • ビルトインコンテンツストア
    • データベースで見つかったすべてのファイルを ImHex 内から直接ダウンロードします
  • Yara のサポート
    • 公式の Yara を使用してファイルの脆弱性をすばやくスキャン
  • 便利なツール

利用手順

ImHex」をインストールする方法について見ていきましょう。

以下の公式ページに利用 OS ごとにインストールパッケージが用意されています。

各自利用している端末にあったファイルをダウンロードし、インストールしてください。

imhex.werwolv.net

ちなみに、私の利用端末は Windows のため、「Download for Windows」からインストールをしました。

使用感

実際に私も端末にインストールして利用してみました!

バイナリエディタを触れるのは初めてなのですが、初心者でも操作性には困りませんでした。

ImHex」を少し触ってみた感想ですが、見た目や UI がきれいなので使っていて気持ちが良いですね。

自分はまだまだ使いこなせそうにはないですが、少しずつバイナリエディタを利用して、バイナリも扱えるプログラマーになりたいと思います。

冒頭で述べた通りたくさんの機能があるので、いろいろな機能を試してみたい場合はぜひ以下のドキュメントをご覧になってみてください!

imhex.werwolv.net

まとめ

今回は、午前 3 時に作業をするときに網膜を重視するリバースエンジニア・プログラマーを応援するバイナリエディタImHex」を紹介しました。

リバースエンジニアリングをされている方やバイナリを扱っているプログラマーの方、または網膜に優しくて機能がたくさんあるバイナリエディタを利用してみたいと思っている開発者の皆さん、ぜひ一度こちらの「ImHex」をご検討されてみてはいかがでしょうか。

ライセンス

GNU General Public License v2.0

リンク

imhex.werwolv.net

imhex.werwolv.net

github.com