
| | | | | ___ \ / __ \ | | \ \ / / | |
| || | _____ | |/ /__ _ _ _ | / / ___ | | ___ \ V / _ __ | | ___ _ __ ___ _ __
| _ |/ _ \ / / // | | | / __| | / _ \ / _ |/ _ / | ' | |/ _ | '/ _ \ '|
| | | | __/> <| |\ \ (| | || __ \ _/\ () | (| | __/ /^\ \ |) | | () | | | __/ |
_| |/_//__| __,|_, |/_/_/ _,|_/ / ./||___/|| ___||
/ | | |
|/ |_|
============================================================================
Hex-Rays逆コンパイラプラグイン。リバースエンジニアリングプロセスにおけるコードナビゲーションを向上させます。CodeXplorerは、C++アプリケーションやStuxnet、Flame、Equation、Animal Farmなどの最新マルウェアのコード再構築を自動化します。:octocat:
CodeXplorerプラグインは、最初に公開された Hex-Rays逆コンパイラプラグインの1つです。このプロジェクトは2013年夏以来更新を続けており、新しい機能を頻繁に追加しています。また、CodeXplorerの最も興味深い機能は、REcon、ZeroNights、H2HC、NSEC、BHUSなど数多くのセキュリティカンファレンスで発表されています。👾
コントリビューター:
Alex Matrosov (@matrosov)
Eugene Rodionov (@rodionov)
Rodrigo Branco (@rrbranco)
Gabriel Barbosa (@gabrielnb)
対応Hex-Rays製品バージョン: 新しいSDKリリースの興味深い機能を活用するため、常に最新バージョンのIDAおよび逆コンパイラに焦点を当てています。つまり、最新のHex-Rays製品でのみテストしており、以前のバージョンでの安定動作は保証されません。
なぜIdaPythonではないのか: すべてのコードはC/C++で開発されています。これは、Hex-Rays逆コンパイラ向けの複雑なプラグインを安定してサポートするための方法だからです。
対応プラットフォーム: Win、Linux、Mac向けx86/x64。
HexRaysCodeXplorer - コードナビゲーションを容易にするHex-Rays逆コンパイラプラグイン。疑似コードウィンドウの右クリックコンテキストメニューにCodeXplorerプラグインコマンドが表示されます:

💎 CodeXplorerプラグインの主な機能: 💎

再構築された構造体は「出力ウィンドウ」に表示されます。型再構築機能の詳細はブログ記事「HexRaysCodeXplorerにおける型再構築」で提供されています。
また、CodeXplorerプラグインは、再構築した型をIDAのローカル型ストレージに自動的に保存することもサポートしています。

struct_local_data_storageを再構築する際に2つの仮想関数テーブルが識別され、その結果、struct_local_data_storage_VTABLE_0とstruct_local_data_storage_VTABLE_4の2つの対応する構造体が生成されました。



型をファイルに抽出 - すべての型情報(再構築された型を含む)をファイルにダンプします。
仮想関数呼び出しのナビゲーション(HexRays疑似コードウィンドウ内)。C++オブジェクトをC構造体で表現した後、この機能により、仮想関数呼び出しを構造体フィールドとしてマウスクリックでナビゲートできるようになります:



Object Explorerは以下の機能をサポートしています:
VTBL用の自動構造体生成をIDAローカル型に
仮想テーブルリスト内のナビゲーションと、クリックによるVTBLアドレスへの「IDA View」ウィンドウ内へのジャンプ
仮想テーブルリスト内の現在位置のヒント表示
メニュー内の「Show XREFS to VTBL」をクリックして相互参照リストを表示


バッチモードには以下の機能が含まれています:
例(関数名のプレフィックスが"crypto_"の関数に対して型とctreeをダンプ):
idaq.exe -OHexRaysCodeXplorer:dump_types:dump_ctrees:CRYPTOcrypto_path_to_idb
コンパイル:
Windows:
src/HexRaysCodeXplorer/PropertySheet.propsファイルをメモ帳(++)で開き、IDADIRとIDASDKのパスをそれぞれIDAのインストールパスとIDA7 SDKパスに更新します。HexRays SDKは$IDADIR\plugins\hexrays_sdkにある必要があります(デフォルトのまま)Release | x64およびRelease x64 | x64構成をビルドLinux:
Mac:
.pmcファイル拡張子は.dylibにする必要がありますexport IDA_DIR="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS" && export IDA_SDK="/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/idasdk" && make -f makefile7.macHexRaysCodeXplorer.xcodeprojを開くCMakeを使用:
============================================================================
CodeXplorerプラグインに関するカンファレンス講演: