
DLLirant is a tool to automatize the DLL Hijacking researches on a specified binary.
DLLirantは、指定されたバイナリに対するDLLハイジャックおよびDLLプロキシングの調査を自動化するツールです。



対象のPEファイルを選択します。.exeの場合、アプリケーションは現在DLL検索順序ハイジャック(DLL Search Order Hijacking)を検索します。DLLを選択した場合、アプリケーションはそのDLLをプロキシすることを提案します。
2番目のオプションでは、プロキシDLLのパスを指定する必要があります。このパスは2つの方法で指定できます:
名前を指定する場合、プロキシDLLが生成され、選択したDLLの名前にリネームされます。また、アプリケーションは選択した(元の)DLLをコピーし、指定した名前にリネームします。
パスを指定する場合、このオプションは単一のファイル(プロキシDLL)を生成します。このプロキシDLLは、テキストボックスで指定されたDLLからエクスポートされた関数を呼び出します。
必要に応じて、importディレクトリを作成し、アプリケーションが必要とする不足しているDLLファイルを配置することもできます(DLLファイルは対象のバイナリとともにoutputディレクトリに自動的にコピーされます)。
重要
対象アプリケーションのエラーメッセージについて:私はエラーメッセージを回避しようとしましたが、実際には回避できません。メッセージボックスは対象アプリケーション経由ではなく、csrss.exeを介してシステムによって生成されるためです。スレッドや子ウィンドウを強制終了したり、SetErrorModeなどを使用したりしても機能しません。
スクリプトはDLLirantと同じディレクトリに出力ディレクトリを作成し、対象のバイナリを出力ディレクトリにコピーします。
PeNetライブラリを介して、スクリプトはバイナリが必要とするDLL名を抽出し、必要なエクスポート関数を持つカスタムDLLをコンパイルして、利用可能な各インポート関数を1つずつテストします。
バイナリが必要とする関数が実行された場合、カスタムDLLはC:\DLLirant\output.txtを作成し、DLLハイジャックが可能であることを確認します。
DLLハイジャックのPoCもDLLirant/dll-hijacksディレクトリに作成されます。