ImHex — 🔍 リバースエンジニア、プログラマー、そして午前3時に作業するときに自分の網膜を大切にする人々のためのヘキサエディタ | Kitploit
54.4k2.4k1610時間10分前
werwolv/imhexImHex
🔍 リバースエンジニア、プログラマー、そして午前3時に作業するときに自分の網膜を大切にする人々のためのヘキサエディタ
コミュニティで最も使われているツールを見つけましょう。
サポート
私の作品を気に入っていただけましたら、GitHub Sponsors、Ko-Fi、PayPal でのサポートをご検討ください。ありがとうございます!
主なスポンサー
| |
|---|
 | JetBrains — 開発用の無料 All Products Pack ライセンスを提供してくれています |
 | SignPath — Windows ビルド用の無料コードサイニング証明書を提供してくれています |
 | Amazon — CI 用の無料 AWS クレジットを提供してくれています |
スクリーンショット
機能
多機能なヘックスビュー
- バイトのパッチ適用
- パッチ管理
- 無制限のアンドゥ/リドゥ
- 「バイトをコピー(形式指定)...」
- バイト
- 16進文字列
- C、C++、C#、Rust、Python、Java、JavaScript 配列
- ASCII アート形式のヘックスビュー
- 自己完結型の HTML div
- シンプルな文字列・16進検索
- 先頭、末尾、現在のカーソル位置への移動
- カラフルなハイライト
- 設定可能な前景ハイライトルール
- パターン、検索結果、ブックマークを使った背景ハイライト
- データをさまざまな型のリストとして表示
- 16進整数(8, 16, 32, 64 ビット)
- 符号付き・符号なし10進整数(8, 16, 32, 64 ビット)
- 浮動小数点数(16, 32, 64 ビット)
- RGBA8 カラー
- HexII
- バイナリ
- ASCII およびカスタムエンコーディングでのデータのデコード
- UTF-8、UTF-16、ShiftJIS、ほとんどの Windows エンコーディングなど、多数のエンコーディングを内蔵サポート
- ページングされたデータビュー
ファイルの内容を解析・ハイライトするためのC++に似たカスタムパターン言語
- MIME タイプとマジック値に基づく自動読み込み
- 配列、ポインタ、構造体、共用体、列挙型、ビットフィールド、名前空間、リトル/ビッグエンディアン対応、条件分岐など、さまざまな機能!
- 有益なエラーメッセージ、構文ハイライト、エラーのマーキング
- さまざまな種類のデータの可視化に対応
テーマ対応
- 深夜の作業でも目を焼かない
- デフォルトはダークモードだが、ライトモードも利用可能
- 共有可能なテーマファイルを通じて、すべての UI 要素の色とスタイルをカスタマイズ可能
- カスタムフォント対応
データのインポートとエクスポート
- Base64 ファイル
- IPS および IPS32 パッチ
- Markdown レポート
- さまざまなプログラミング言語向けのバイナリ配列
データインスペクタ
- エンディアン、10進・16進・8進対応、ビット反転を備え、データをさまざまな型として解釈
- 符号なし・符号付き整数(8, 16, 24, 32, 48, 64 ビット)
- 浮動小数点数(16, 32, 64 ビット)
- 符号付き・符号なし LEB128
- ASCII、ワイド文字、UTF-8 の文字と文字列
- time32_t、time64_t、DOS の日付と時刻
- GUID
- RGBA8 および RGB65 カラー
- インスペクタを通じたバイトのコピーと変更
- パターン言語による新しいデータ型の追加
- 未使用の行を非表示にする機能
ノードベースのデータプリプロセッサ
- ヘックスエディタに表示される前に、データの修正、復号、デコードを行う
- 元のソースに触れることなくデータを変更
- カスタムノードの追加に対応
さまざまなデータソースからのデータ読み込み
- ローカルファイル
- 高速かつ効率的な読み込みによる巨大ファイルのサポート
- RAW ディスク
- RAW ディスクやパーティションからのデータ読み込み
- GDB サーバー
- GDB を介して実行中プロセスや組み込みデバイスの RAM にアクセス
- Intel HEX および Motorola SREC データ
- Base64 エンコードされたデータ
- UDP パケット
- プロセスメモリ
- SSH/SFTP によるリモートファイル
- SSH と SFTP を使用したリモートサーバーからのファイル読み込みに対応
データ検索
- ファイル全体または選択範囲だけの検索に対応
- 文字列の抽出
- 最小長と文字セット(小文字、大文字、数字、記号)を指定するオプション
- エンコーディング(ASCII、UTF-8、UTF-16 ビッグ/リトルエンディアン)を指定するオプション
- シーケンス検索
- バイトまたは文字のシーケンスを検索
- 大文字と小文字を無視するオプション
- 正規表現検索
- バイナリパターン
- 数値検索
- 符号付き/符号なし整数および浮動小数点数を検索
- 値の範囲を検索
- サイズとエンディアンを指定するオプション
- アライメントされていない値を無視するオプション
データハッシュ機能
- さまざまなアルゴリズムが利用可能
- カスタム初期値と多項式に対応した CRC8、CRC16、CRC32
- MD5
- SHA-1, SHA-224, SHA-256, SHA-384, SHA-512
- Adler32
- AP
- BKDR
- Bernstein, Bernstein1
- DEK, DJB, ELF, FNV1, FNV1a, JS, PJW, RS, SDBM
- OneAtTime, Rotating, ShiftAndXor, SuperFast
- Murmur2_32, MurmurHash3_x86_32, MurmurHash3_x86_128, MurmurHash3_x64_128
- SipHash64, SipHash128
- XXHash32, XXHash64
- Tiger, Tiger2
- Blake2B, Blake2S
- 読み込んだデータの特定領域のハッシュ化
- 任意の文字列のハッシュ化
差分(diff)対応
- 異なるデータソースのデータを比較
- 差分のハイライト
- 差分のテーブル表示
統合ディスアセンブラ
- Capstone がサポートするすべてのアーキテクチャに対応
- ARM32 (ARM, Thumb, Cortex-M, AArch32)
- ARM64
- MIPS (MIPS32, MIPS64, MIPS32R6, Micro)
- x86 (16-bit, 32-bit, 64-bit)
- PowerPC (32-bit, 64-bit)
- SPARC
- IBM SystemZ
- xCORE
- M68K
- TMS320C64X
- M680X
- Ethereum
- RISC-V
- WebAssembly
- MOS65XX
- Berkeley Packet Filter
- 独自アーキテクチャ向けのカスタムディスアセンブラを作成するためのサポート
ブックマーク
- カスタム名と色を設定できるブックマークに対応
- ヘックスエディタでのブックマーク領域のハイライト
- ブックマークへのジャンプ
- ブックマークの内容を新しいタブで開く
- ブックマークへのコメント追加
多機能なデータアナライザ&ビジュアライザ
- ファイルマジックに基づくファイルパーサと MIME タイプデータベース
- バイトタイプ分布グラフ
- エントロピーグラフ
- 最大および平均エントロピー
- 暗号化/圧縮ファイルの検出
- ダイグラムおよびレイヤード分布グラフ
YARA ルール対応
- 公式 YARA ルールを使ってファイルの脆弱性をスキャン
- ヘックスエディタで一致箇所をハイライト
- 一致箇所へジャンプ
- 複数のルールを一度に適用
便利なツール
- LLVM ベースの Itanium、MSVC、Rust、D-Lang デマングラー
- ASCII テーブル
- 正規表現リプレーサー
- 数式評価(計算機)
- グラフ計算機
- さまざまな形式に対応した16進カラーピッカー
- 基数変換器
- バイトスワッパー
- UNIX パーミッション計算機
- Wikipedia 用語定義検索
- ファイルユーティリティ
- IEEE754 浮動小数点ビジュアライザ
- 不変乗数による除算計算機
- TCP クライアント/サーバー
- ユークリッドの互除法計算機
- HTTP リクエスト
内蔵コンテンツアップデーター
- ImHex 内から直接、データベースにあるすべてのファイルをダウンロード
- さまざまなファイル形式をデコードするためのパターンファイル
- パターン言語用ライブラリ
- ファイルタイプ検出用のマジックファイル
- カスタムデータプロセッサノード
- カスタムエンコーディング
- カスタムテーマ
- YARA ルール
モダンなインターフェース
- 複数ワークスペースのサポート
- カスタムレイアウトのサポート
- 分離可能なウィンドウ
簡単に始められる
- 多数の言語に対応
- 初心者向けの簡易モード
- 豊富なドキュメント
- データベース で多数のサンプルファイルが利用可能
- ImHex の機能を案内する実績(アチーブメント)
- インタラクティブなチュートリアル
パターン言語
パターン言語は、ImHex のために開発された完全に独自のプログラミング言語です。
C に似た構文で構造体やデータ型を定義し、それらを使ってファイルの内容を解析・ハイライトすることができます。
データベース
システム要件
ImHex を使用するには、以下の最小システム要件を満たす必要があります。
[!IMPORTANT]
ImHex は一般的に OpenGL 3.0 対応の GPU を必要とします。
ソフトウェアレンダリングで GPU を必要としない -NoGPU 接尾辞付きのリリースもありますが、GPU アクセラレーション版よりもかなり遅くなる可能性があります。
可能であれば、統合 GPU ではなくシステムの専用 GPU を ImHex が使用するようにしてください。
ImHex は通常、統合 GPU でも問題なく動作しますが、Windows の特定の Intel HD GPU ドライバーではグラフィカルなアーティファクトが発生することが知られています。
- OS:
- Windows: Windows 7 以降(Windows 10/11 推奨)
- macOS: macOS 15(Sequoia)以降
- それ以前のバージョンでも動作するはずですが、ImHex を自分でコンパイルする必要があります。GitHub には macOS 15 以下の CI ランナーがないため、リリースバイナリは動作しません。
- macOS ビルドは署名されておらず、セキュリティとプライバシーの設定で手動で許可する必要があります。
- Linux: 「モダンな」Linux。以下のディストリビューションでは公式リリースが利用可能です。それ以外のディストリビューションは AppImage、Flatpak、Snap リリースでサポートされています。
- Ubuntu および Debian
- Fedora
- RHEL/AlmaLinux
- Arch Linux
- 基本的に、ソースからコンパイルする場合は他のディストリビューションでも動作します。
- FreeBSD: FreeBSD 14.3 でテスト済み
- 他のバージョンでもおそらく動作しますが、未テストです
- CPU: 公式には x86、AMD64、ARM64 をサポートしていますが、リトルエンディアンの CPU であれば動作するはずです。
- GPU: OpenGL 3.0 以降
- 統合型 Intel HD iGPU はサポートされていますが、特に Windows では特定のドライバーがさまざまなグラフィカルアーティファクトを引き起こすことが知られています。使用は自己責任でお願いします。
- GPU がない場合は、Windows と macOS 向けにソフトウェアレンダリングのリリースがあります
- RAM: 約 50MiB。より複雑な解析にはさらに多くのメモリが必要です
- ストレージ: 約 100MiB
インストール
ImHex のインストール方法については、インストール ガイドを参照してください。
コンパイル
ImHex を任意のプラットフォームでコンパイルするには、C++23 以降をサポートするバージョンの GCC(または Clang)が必要です。
Windows と Linux のリリースは、最新の GCC を使用してビルドされています。
macOS のリリースは、最新の LLVM Clang を使用してビルドされています。
重要な点として、MSVC と AppleClang コンパイラはどちらも サポートされていません。どちらも一般的にかなり古く、GCC や LLVM Clang が持つ機能が欠けているためです。
[!NOTE]
多くの依存関係はサブモジュールを使ってリポジトリに同梱されているため、--recurse-submodules オプションを付けてクローンしてください。
同梱されていない依存関係は、/dist フォルダにある依存関係インストーラスクリプトを使用してインストールできます。
詳細については、コンパイル ガイドを参照してください。
コントリビューション
プラグイン開発
ImHex のプラグインを開発するには、以下のテンプレートプロジェクトを使って始めてください。これにより、libimhex 全体に加えて ImHex API と Content Registry にアクセスして、ImHex と連携したり新しいコンテンツを追加したりできます。
プラグインをビルドするには、ImHex SDK を使用する必要があります。
SDK をローカルで入手する
ImHex を次のようにコンパイルすると SDK をビルドできます:
cmake -G Ninja -DIMHEX_BUNDLE_PLUGIN_SDK=ON -B build
cd build
DESTDIR=install ninja install
すると SDK は install/usr/local/share/imhex/sdk で利用可能になります。変数 IMHEX_SDK_PATH をその(絶対)パスに設定する必要があります。
GitHub Actions CI で SDK を入手する
このアクション を使用すると、SDK を GitHub Runner に自動的にダウンロードできます。
クレジット
コントリビューター
- AxCut — パターンテキストエディタへの多大な貢献と、ImHex の他の多くの部分への数え切れないほどの貢献に対して
- iTrooz — ImHex を Web に移植したこと、そしてプロジェクトのあらゆる部分への数百もの貢献に対して
- jumanji144 — パターン言語と ImHex のインフラストラクチャへの多大な貢献に対して
- Mary — ImHex の macOS への移植と開発中の支援に対する計り知れない助力に対して
- Roblabla — ImHex への MSI インストーラサポートの追加に対して
- Mailaender — ImHex を Flathub に載せてくれたことに対して
- Discord や GitHub で問題を報告してくれた、素晴らしい会話をしてきたすべての人々に感謝します :)
依存関係- インターフェース全体の構築に使用されている素晴らしい Dear ImGui を提供してくれた ocornut に多大な感謝を捧げます
- さまざまな場所でデータをプロットするために使用されている ImPlot を提供してくれた epezent に感謝します
- データプロセッサのベースとして使用されている ImNodes を提供してくれた Nelarius に感謝します
- パターン言語の構文ハイライトに使用されている ImGuiColorTextEdit を提供してくれた BalazsJako に感謝します
- 設定ファイルに使用される json ライブラリを提供してくれた nlohmann に感謝します
- フォーマットとログ出力を大幅に改善してくれる libfmt ライブラリを提供してくれた vitaut に感謝します
- 全プラットフォームでのファイルダイアログの処理に使用されている nativefiledialog-extended とその素晴らしいサポートを提供してくれた btzy に感謝します
- Linuxでのフォルダパス処理に使用されている xdgpp を提供してくれた danyspin97 に感謝します
- 逆アセンブルウィンドウの基盤である capstone を提供してくれた aquynh に感謝します
- ダウンロードしたストアアセットの展開に使用されている microtar を提供してくれた rxi に感謝します
- Yaraプラグインで使用されている Yara を提供してくれた VirusTotal に感謝します
- 差分ビューでのシーケンス検索に使用されている edlib を提供してくれた Martinsos に感謝します
- ありとあらゆるハッシュアルゴリズムを実装している HashLibPlus を提供してくれた ron4fun に感謝します
- オーディオファイルの再生に使用されている miniaudio を提供してくれた mackron に感謝します
- ImHexで使用されているライブラリを提供してくれた他のすべてのグループと組織に感謝します
ライセンス
ImHexの大部分はGPLv2のみのライセンスの下にあります。
これに対する注目すべき例外は、LGPLv2.1ライセンスの下にある以下の部分です:
- /lib/libimhex: プラグインがImHexと対話できるようにするライブラリ。
- /plugins/ui: 他のプラグインが使用できる一般的なUI要素を含むUIプラグインライブラリ。
この理由は、ImHex向けのプロプライエタリなプラグインの開発を可能にするためです。
コード署名ポリシー
このプログラムは、ユーザーまたはインストール・操作する人物によって明示的に
要求されない限り、他のネットワークシステムに情報を
転送しません。
直接プッシュアクセスを持つ人々