QualityNet サイバーフォレンジック事業部

03-6260-9237

営業時間(9:00~17:30)定休日(土曜・日曜・祝祭日)

カタログ
ダウンロード
お問い合わせ

新バージョンのリリース

ホーム > 新バージョンのリリース > IDA Pro v9.3 リリース

IDA Pro v9.3 リリース

概要

IDA Pro v9.3 がリリースされました。

  • リリース日:2026/02/14

主な追加・修正・変更点等は、以下をご覧ください:

 

※ 記事内のURLは、予告なく変更、もしくは削除されることがあります。

機能の追加、及び拡張

  • 新型 “V850” デコンパイラー
    • IDA 9.3では、自動車用 ECU や産業用制御システムで広く採用されている 32ビット RISCプロセッサー “ルネサス V850″(別名 NEC850 / RH850)アーキテクチャー向けのデコンパイラーサポートを導入しました。最新の RH850 ABI と従来の GCC V850 ABI の両方をサポートしています。
    • 基本的な逆コンパイルに加え、V850 モジュールではコンパイラー固有のプロローグ/エピローグ補助関数の認識、パディング命令の検出と隠蔽、”callt” で呼び出されるコンパイラー補助関数の適切な処理、及びスタックフレーム解析の改善が含まれます。
      • “BSW”、”BSH”、”HSW”、”HSH”、”MAC”、”MACU”、”ABF”、”SBF”、”CLIP*”、”SAT*”、”SASF”、”SCH[01][LR]”、”SYNC*”、”EI/DI”、”HALT”、”LDSR/STSR” など、幅広いローレベル命令の逆コンパイルが可能になりました。

 

  • 統合された “IDA Teams”
    • “IDA Teams” のユーザーインターフェースは、標準のIDAに組み込まれました(別途アプリケーションを用意する必要ありません)。Teams アドオンをお持ちのユーザーは、IDA 内から直接リバースエンジニアリングプロジェクトで共同作業が可能です。
      • 新しい Teams トップレベルメニュー:主要な Teams 機能とウィジェットは全て、IDA のメニューバーから直接アクセス可能です。
      • [Quick Start] > [Open remote files]:Hex-Rays Vault Server 上のファイルを “Quick Start” ダイアログから直接開くことが出来ます。
      • HVUI の提供終了:スタンドアロンの HVUI アプリケーションは同梱されなくなりました。その中核機能は完全に IDA に統合されています。

 

  • マイクロコードビューアー
    IDA 9.2 で導入されたマイクロコードビューアーは、デコンパイラーの中間表現を表示する読み取り専用ウィンドウでしたが、9.3ではよりインタラクティブな解析ツールへと進化しました。

    • マイクロコード操作 / アサーション
      • レジスターやローカル変数の値を指定するために、命令の削除やアサーションの追加が可能になりました。これにより、逆コンパイルプロセスを直接制御できます。これは難読化されたコードの処理や、解析中の「もし~なら」シナリオの探索において非常に有用です。
    • マイクロコードグラフ
      • マイクロコードビューアーは、マイクロコードフローグラフをレンダリングして表示するため、より構造解析しやすくなりました。これらのグラフィカルな表示により、特に “デコンパイラーがネストされたループ”、”switch文”、”難読化された制御フロー” といった複雑な構造をどのように処理しているかを調査する際に、デコンパイラーの中間表現を通じた制御フローの追跡が容易になります。
    • Def-Use / Use-Def チェーンの表示
      • 新しい “Display chains” アクションは、レジスター及び変数の “Use-Def” チェーンと “Def-Use / Use-Def ” チェーン(値が定義される場所と消費される場所、及びその逆の間の接続)を可視化します。これは、デコンパイラーが基本ブロック間でデータフローを追跡する方法を理解するのに特に有用です。
    • 表示モード
      • 新たに切り替え可能な表示モードにより、逆コンパイラーの内部構造をより深く可視化します:
        • EA Prefix Display:命令番号とニーモニックの間に実効アドレスをオプションで表示します。
        • Compact / Detailed View: 凝縮されたビュー(ブロックヘッダーなし、USE / DEF / DNUアノテーションなし)と詳細を完全表示板ビューを切り替えます。
        • Value Numbers:マイクロコードオペランド間で SSA 値が等価であることを示す。 GVN 識別子を表示します。(例:rax.8{5}とr8.8{5}は同一値を共有)
        • Number Origins:定数の起源を表示します。(例:#3.8 → #3@3B0A.8 → 元のcmp rax, 3 命令を指す)
        • Display Local Types:逆コンパイル時に使用された型を表示するウィンドウを開きます。
    • その他のマイクロコードビューアーの改善点
      • 元に戻す機能(Undo)のサポート: 命令の削除とコメントを完全に元に戻します。
      • Xref のサポート: マイクロコードビューから直接 Xref に移動します。
      • Desktop save/restore: ビューアーの状態は IDA セッション間で保持されます。
      • 永続的な設定:表示切り替え(コンパクト/詳細、数値表示など)は、アプリケーション再起動後にも記憶されます。
      • タブで逆アセンブリ表示:Tabキーを押すと、擬似コードと同様に対応する逆アセンブリにジャンプします。
      • “Highest maturity level” アクション:最終最適化段階に直接ジャンプします。
      • Del ショートカット:命令の削除/復元切り替えを素早く実行します。

 

  • Objective-C パーサー
    • IDA 9.3 では、IDA 内部で Objective-C ヘッダーファイル用のパーサーを導入し、iOS および macOS のリバースエンジニアリングにおける一般的なワークフローを効率化します。”@interface”、”@protocol”、及び “@property” 宣言を入力すると、IDA は対応する C型とメソッドプロトタイプを生成します。これには自動生成されたプロパティアクセサー、プロトコルメソッドの実装、カテゴリ拡張が含まれます。これにより、Objective-C ヘッダーを IDA 互換の型定義へ手動で変換する煩雑な作業が不要になります。
    • Objective-C パーサーを有効化するには、[Options] > [Compiler] > [Source parser] -> [clang] で “llvm-backed parser” に切り替え、パーサー固有オプションで “Objective-C[++]” を選択してください。

 

  • Andes Andestar V3 (NDS32)
    • IDA 9.3 では、”Andes Andestar V3 NDS32″ アーキテクチャー向けプロセッサモジュールを導入しました。これは、電力効率とコード密度を最適化した混合 16/32ビット命令を備えた 32ビット RISC 命令セットです。IoT デバイス、マイクロコントローラー、ウェアラブル機器、ストレージコントローラー、ドローンに広く採用されている NDS32 ファームウェアを、IDAでネイティブ解析できるようになりました。
    • 主な機能は以下の通りです:
      • GP 相対アドレス指定と自動データ参照生成
      • スタックポインター追跡(”push25 / pop25″ 及び “smw / lmw”(ストア/ロード複数ワード)プロローグ/エピローグ認識)
      • 拡張命令デコード:DSP、SIMD、ZOL(ゼロオーバーヘッドループ)、FPU、コプロセッサー
      • 広範なスイッチパターン検出
      • “noreturn” 分析
      • “ex9.it$itb” システムレジスターテーブルからの命令解決(リンカー緩和)
      • エンコーディングバリアント、レジスタプレフィックス、マクロ、GP値の設定可能なオプション

 

  • ネイティブ Linux ARM64 ビルド
    • IDA 9.3 はネイティブ Linux ARM64 ビルドとして提供されました(”glibc 2.28″ 以降(Debian 10 / Ubuntu 20.04 / RHEL 8+)であることが必要です)。一方で C++ SDK には、このプラットフォームでプラグインをリンクするために必要な静的ライブラリがまだ含まれていません(これらは将来のリリースで提供予定です)。ローカルデバッガーもまだ含まれていません。

 

  • より応答性の高い表形式ビュー
    • 大規模データベースの操作では、数十万単位の関数、名前、型といった大規模リストを扱うことが頻繁にあります。IDA 9.2 では、特に大規模な選択範囲やフィルタリングを扱う際に、これらのウィジェットに対する操作が苛立たしいほど遅くなる場合がありました。IDA 9.3 では、第一弾となる対象を絞ったパフォーマンス改善を実施し、日常的な操作が明らかに軽快になりました:
      • 表形式データを表示するウィジェット(関数、名前、ローカル型、ブックマーク、インポート、ブレークポイント)は、大規模データセットでの動作が大幅に改善されました。
      • 10万件以上のエントリを含むウィジェットでの検索操作が大幅に高速化されました。
      • ソートとフィルタリング(Ctrl+F)が改善されました。

 

  • デコンパイラーの刷新
    • ストックコメント
      • デコンパイラー内で再利用可能なコメントを管理します。頻繁に使用するコメントを作成、編集し、再入力せずに擬似コードに素早く適用できます。コメントは最近使用した順に整理されます。これは、インライン化された C++ 操作(例:std::string操作)のような反復的なパターンの文書化に便利です。
    • 値範囲の最適化
      • 条件式の解析に、強化された値範囲の追跡機能が追加されました。例えば、”(unsigned int)(a2 – 1) <= 5″ のような条件式において、IDA は “a2” が “[1, 6]”の範囲内にあると判断できるようになりました。
    • “Fine-Grained Assignment Propagation” コントロール
      • デコンパイラーのコンテキストメニューから利用可能な新しい “Forbid assignment propagation” オプションにより、アナリストはデコンパイラーがインライン化を許可される代入を精密に制御できるようになり、自動伝播によって過度に複雑な式が生成される場合の可読性が向上します。
    • IDA Home 及び IDA Pro Essential における “Decompile All”
      • “Decompile All” 機能が、IDA Home および IDA Pro Essential エディションで利用可能になりました。

 

  • Type System
    • Cヘッダーファイルの作成:インライン匿名型
      • Cヘッダーファイルへの型エクスポート時、IDA は従来ハッシュベースの命名規則を用いた中間的な匿名型を生成していました。新たな “Ignore IDA anonymous types” オプションにより、これらの型は親構造体に直接インライン化され、よりクリーンで移植性の高い出力が得られます。
    • 固定構造体のサポート:インポート/エクスポートの完全な往復処理
      • IDA 9.3 では、明示的なフィールドオフセットを持つ構造体向けに “__fixed” 及び “__at” 属性を導入し、タイプのエクスポートとインポートにおける完全な往復処理を実現しました。従来、明示的なオフセットを持つタイプ(関数スタックフレームなど)は Cヘッダーへエクスポートできても再インポートは不可能でした(オフセット情報が失われていたためです)。現在では、IDA 生成ヘッダーは完全に再解析可能となっています。
    • Go 言語の型復元機能の改善
      • Go 言語の型復元機能は大幅に改善されました。復元される型の正確性と整理の両方に影響を与えます。
      • “Full package paths in type names” は、異なるパッケージに属する同一の型名を持つ型間の曖昧さを解消します。
      • “Hierarchical type library organization” では、型がGoパッケージパスに対応するフォルダに整理されるため、ナビゲーションが大幅に直感的になります。
      • その他の改善点として、FUNCINFO 及び Goバージョンの検出精度向上、内部の “BUILTIN_STRING” 型の標準 Go “string” 型への置換、多くの標準 Go 型を “struct” プレフィックスなしで正しく認識する機能、DWARF デバッグ情報における無名関数の戻り値型の処理改善などが含まれます。
    • その他の型システムの変更
      • 匿名 UDT への typedef が正しく出力されるようになり、DWARF デバッグ情報で不要なポインター (anonymous) UDT パターンが生成されなくなりました。
      • 従来の “Parse declarations” ダイアログは削除されました。IDA 9.2 以降、Local Type における “Add type” エディターでは、構文ハイライトとオートコンプリート機能を備え、複数型を一度に追加できるため、旧来のプレーンテキストダイアログは不要となりました。
      • clang ベースの型パーサーに “Print AST” 及び “Dump AST” オプションが追加されました([Options] > [Compiler] > [Parser specific options])。”Print AST” は、解析済み宣言をC言語風の整形出力形式で表示し、”Dump AST” は、生の Clang AST ツリーを出力します。解析問題の診断や、IDA が複雑な型宣言をどのように解釈しているかを理解するのに有用です。

 

  • アーキテクチャーのサポート
    • ARM64
      • Apple Silicon カーネル向け “SVE/SME” 命令
        • IDA 9.3 は、Apple の最新カーネルに存在する “Scalable Vector Extension (SVE)” 及び “Scalable Matrix Extension (SME)” 命令のデコードが可能になりました。これらの命令は、従来は生のバイト列または未定義のオペコードとして表示されていました。
      • Memory Tagging Extension (MTE) の組み込み関数
        • デコンパイラーは、”ARM Memory Tagging Extension” 命令に対して、インラインアセンブリブロックに代わるクリーンな組み込み関数呼び出しを生成するようになりました。”MTE” は、iOS 18 以降及び Android において、ハードウェアによるメモリ安全性の確保に使用されます。
      • NEON 暗号化及び 数学的組み込み関数
        • ARMv8.2 向け新規デコンパイラー組み込み関数 “AES”、”SHA1″、”SHA256″、”SHA512″、”SHA3” 及び “ARMv8.1 SQRDMX”(飽和丸め倍増乗算積算/減算)命令は、可読性の高い組み込み関数呼び出しでインラインアセンブリを置換します。命令の認識に加え、IDA は SIMD レジスターを “long double” や “double” にマッピングする代わりに、適切な NEON ベクトル型 (uint8x16_t, uint32x4_t, int16x4_t, …) を推測するようになりました。
      • Common Short Sequence Compression (CSSC) の組み込み関数
        • ARMv8.7 の “FEAT_CSSC” 拡張機能 “CTZ”、”CNT”、”ABS”、”SMAX”、”SMIN”、”UMAX”、”UMIN” 命令は、ディスアセンブラーでデコードされ、デコンパイラーにおいて対応するコンパイラー組み込み関数に変換されるようになりました。
      • MOV/MOVK アドレス構築
        • ディスアセンブラー及びデコンパイラーは、MOV / MOVK / MOVW / MOVT 命令シーケンスからの ARM64 アドレス構築を適切に最適化します。隣接しない命令に分散している場合でも、適切な相互参照を生成します。
      • ARM64 のその他の改善点
        • カスタム参照ハンドラー付き “MOVW_UABS_G[0-3] AARCH64” リロケーションのサポート
        • “__auth_stubs” セクションの認識改善(iOS PACインポートトランポリン)
        • BTI 対応 ELF PLT スタブの認識
        • iOS 及び macOS 26 の新 CSNEG ベーススイッチパターンの処理
        • Objective-C スタブパディング(brk #1命令)の検出
    • RISC-V
      • Andes V5 パフォーマンス拡張機能 (XAndesPerf、29命令) のサポートを逆アセンブラーと逆コンパイラーの両方に追加しました。この拡張機能は、GP相対ロード/ストア、ビットフィールド抽出(bfoz/bfos)、ビットテスト分岐(bbc/bbs)、定数比較分岐(beqc/bnec)、スケーリング LEA、及び文字列検索ヘルパー(ffb/ffmism/ffzmism/flmism、デコンパイラーでは組み込み関数に変換)をカバーしています。Andes 命令は “nds.” で始まります。GP 相対アクセスはシンボリック名に解決されます。
      • 32ビット RISC-V におけるデコンパイラーでの複数の div/mod パターンの認識を改善しました。
      • 構造体/列挙型のメンバーに対する一貫した Xref 計算を全ケースで追加しました。
    • ARC
      • ARCv2 解析は IDA 9.3 で改善されました。
      • 自動インクリメント/デクリメントを伴うメモリロード/ストア操作は、”push/pop” 命令として認識されるようになり、関数のプロローグとエピローグの可読性が向上し、スタックレイアウトの計算がより正確になりました。
      • ARCv2 のその他の改善点:
        • “bi/bih” 命令を使用したスイッチ構文の認識を改善しました。
        • プロローグ補助関数の検出を改善しました。
        • aex 命令のデコードと出力を修正しました。
    • V850
      • 新しい逆コンパイラーに加え、V850 逆アセンブラーには数多くの改善点があります:
        • コンパイラー固有のプロローグ/エピローグ補助関数が認識されます。
        • パディング命令の検出と非表示化ができます。
        • コンパイラー補助関数を使用する関数に対するスタックフレーム解析の改善しました。
        • callt 命令経由で呼び出されるコンパイラー補助関数が検出されます。
    • TriCore
      • クロスリファレンス検出改善のためのレジスターファインダーが改善されました(モジュールは現在、レジスタの定数実行時値を問い合わせるための “regfinder” APIをサポートしています)。
      • switch 文の検出機能が強化されました。
      • 拡張レジスター表現が簡素化されました。
    • x86/x64
      • 分析時にターゲットが既知の間接ジャンプの追跡を有効化しました。
      • VIA Padlock 命令のデコードを追加しました。
      • MPX ヒント対応NOPの処理を修正しました。
    • PowerPC
      • Golang関数(スタックカナリアチェックを含む)のLR認識を改善しました。
      • ロード/ストア後のスタックポインタ追跡を更新し、正しいスタックアドレス解決を実現しました。
    • 80196
      • “8061”、”8065″、”8096″ プロセッサータイプのサポートを追加しました。
    • Xtensa
      • 列挙型及び構造体メンバーの Xref を追加しました。

 

  • ローダー
    • CLI/.NET
      • 混合アセンブリにおいて、CLI メタデータ名がネイティブコードに適用されるようになりました。
      • 不正な形式の .NET ファイルによる複数の無限ループとクラッシュを修正しました。
      • MethodSpec トークン (0x2B) の問題を解決しました。
      • メタデータテーブルストリーム内の ExtraData フィールドの処理を追加しました。
      • fdHasFieldRVA フラグを持つフィールドの FieldRVA エントリが欠落している場合のローダー失敗を修正しました。
    • Mach-O / Dyld 共有キャッシュ
      • 共有キャッシュ内のローカルシンボルテーブルの読み込みを高速化
      • 収集したシンボルはローダー呼び出し間で保持されるようになり、追加モジュール読み込み時の冗長な作業を回避
      • 追加DSCモジュールの読み込み時に再解析をトリガーし、相互参照機能を改善

 

  • デバッガ―
    • Android 14+ ネイティブデバッグ
      • Android デバッガーは、Android 14 から 16 をターゲットとするアプリを適切に処理するようになりました。PAC が Android 環境で普及しつつあることを受け、IDA は保護された間接制御フロー転送命令(RETAA など)のステップオーバーをサポートするようになりました。
    • スタックビューの逆参照
      • デバッガーのスタックビューで自動逆参照がサポートされるようになりました。これは従来レジスターウィジェットのみで利用可能だった機能に相当します。デバッグセッション中にスタックビューで直接ポインター先の値を表示できます。コンテキストメニューの [Data format] > [Addresses with dereferencing] から有効化してください。

 

  • UI
    • 強化された Xref ツリー
      • Xref ツリーウィジェットは、レジスタートラッカーとデコンパイラーを活用し、呼び出しサイトで既知の関数引数値を表示するようになりました。これにより、各呼び出しサイトに移動することなく、渡されるパラメーターを即座に把握できます。
      • その他の改善点は、以下の通りです:
        • バッチ操作のための標準の Shift 及び Ctrl 修飾キーによる複数の選択をサポートします。
        • 検索機能:”/” で検索を開き、”F3″ で一致箇所間に移動します。
        • カラム管理:ヘッダーのコンテキストメニューからカラムの並び替え、サイズ変更、表示/非表示の切り替えが可能になりました。
        • カラムのソート機能が改善されました。
        • “N” ホットキーによる名前変更がサポートされました。
        • アクションシステム統合:”xref” ツリーアクションは他の IDA アクションと同様にマッピング及びカスタマイズが可能になりました。
        • macOS におけるダークテーマ対応が改善されました。
        • Xref ツリーは、廃止された従来の関数呼び出しウィジェットを完全に置き換えます。
    • 改良された Xref グラフ
      • IDA 9.2 で導入された Xref グラフについて、いくつかの操作性が改善されました:
        • ノードの固定:”P” キーを押すとノードを固定できます(カーソルが乗っても移動しなくなります)。
        • ダークテーマ対応
        • 容量警告:グラフの容量を超過すると警告が表示され、意図しない動作遅延を防ぎます。
        • トラックパッドのピンチ/ズーム操作対応
        • グラフ管理機能を[View] > [Graphs] > [Manage…] に移動しました。
        • GPU アクセラレーション対応 OpenGL が不要なシステムでも利用可能になりました。
    • Jump Anywhere の機能強化
      • “Jump Anywhere” は、従来の “Jump to address” 及び “Jump to type offset” ダイアログの完全な代替として改良を続けています:
        • 大規模データベースでも即時応答性を実現する非同期検索
        • デマングル処理済み名のサポート
        • 検索ランキングアルゴリズムの改善
        • ユーザー入力履歴
        • ローカル型内のオフセットへのナビゲーション
        • ジャンプメニューへの追加
    • 関数の “Move to folder…”
      • 新しい “Move to folder…” アクションにより、逆アセンブリ、擬似コード、マイクロコードビューから直接関数をフォルダーに整理できます。関数ヘッダーを右クリックして分類可能です(大規模バイナリのトリアージや分析時の関連関数グループ化に有用です)。
    • 新機能:”Setting Type Renames Target” オプション
      • [Options] > [Genrral] > [Misc] > [Setting Type Renames Target] に新オプションを追加:有効時、IDA はタイプ設定時にターゲット名を更新します(”Y” キーによるワンショットでの名前変更・タイプ再設定時)。無効時は、IDA は名前変更を無視しタイプのみを適用します。
    • Windows 7 互換性
      • “Qt 6.8” は Windows 7 のサポートを正式に終了しました。Windows 7 上で IDA を実行する必要があるユーザー向けに、互換性を再有効化するパッチ適用済み “Qt 6.8” ビルドを提供しています。DLL バンドルは My Hex-Rays ポータルからダウンロード可能です。IDA インストールディレクトリ内の “Qt DLL” を置き換えてください。

機能の追加、及び拡張

その他アップデート情報や詳細に関しては、Hex-Ray社のWebサイトをご確認ください。

 

製品についての情報は、以下のWebサイトをご確認ください。

TOP