-2019.04.03前回は、デコンパイラの使い方やデコンパイラを使うとどのようにコードが表示されるのかを簡単に説明しました。Proのプラグインの1つという扱いですが、プラグインは他にも様々なものがあります。Proを活用していただけるかと思います。プラグインは自分で作ることも可能です。Pro上で行いたい処理を実現させたり、いつも定型的に行っている作業を自動化させたりすることも可能になったります(プラグインの作成については、Hex-raysのホームページをご参照ください)。今回は、外部の方々が作ったプラグインをいくつかピックアップして紹介したいと思います。以下で紹介するプラグインはメーカーが開発したものではございませんので、利用される際には利用者ご自身の責任の下でご使用ください。IDA-minscLazyIDALazyIDAは、指定した範囲のデータをC++の配列やPythonのリスト形式に整形してデータを出力することが可能なプラグインとなります。解析対象の実行可能ファイル内に、別のプログラムで利用したいデータがある場合には、このプラグインを使うことで簡単に上記のデータ構造でデータをはき出すことができるため、C/C++やPythonでの開発を行う際には非常に便利なものとなります。プラグインの導入方法について。LazyIDAを導入するのは非常に簡単です。Githubのリポジトリからデータをダウンロードしておき、指定のフォルダに展開しておきます。Proで特定の実行可能ファイルを開きます。その後、画面上でC/C++の配列もしくはPythonのリスト形式ではき出したいデータの箇所をハイライトして右クリックをします。右クリックメニューで「Convert」という選択肢が増えているはずなので、こちらを展開します。すると、以下のようなリストが出てきます。window」にデータが出力されます。(DWORD)」を選択してみましょう。windowに以下のようにデータが出力されます。windowの出力部分をコピーすることでそのまま利用することが可能です。その他のデータ形式だと、それぞれ以下のようになります。Talosという脅威インテリジェンス組織が作成したIDAのプラグインになります。メモリ上に格納されているデータや関数などをデータベース化し、Pythonのコマンドでデータベースからすばやく見つけ出したい関数やデータを検索することができます。こちらについても、導入方法はGithubのリポジトリからデータをダウンロードして指定のフォルダに展開し、Pythonのコマンドを叩くだけになります。Proで実行可能ファイルを開いた際に、以下のようなプログレスバーが表示されます。このとき「関数名や変数名をデータベースに格納している」処理を行っています。処理が完了するといつもの画面になります。windowにてPythonのコマンドを入力していきます。実行可能ファイルの中に含まれている関数のうち、_strから始まるものの一覧を表示してみます。実行する際のコマンドと出力結果は以下のとおりです。実行可能ファイル内のインポート関数の一覧なども、コマンドで確認することができます。IDA-minscに関するより詳しい内容については、以下のURLにドキュメントがありますのでそちらを参照してください。https://arizvisa.github.io/ida-minsc/上記の他にもさまざまなプラグインがあり、ググってみるとGithubなどで公開されているかと思います。Hex-raysではプラグインコンテストも開催しています。いくつかプラグインを試してみたい場合には、プラグインコンテストで入賞したものをまずみてみるというのも1つの手かと思います。プラグインコンテストで各年度に入賞したプラグインについては、以下のURLからご覧になれます。Proちょっと使ってみたいなぁ」と思った方は、まずデモ版もしくはフリー版を使ってみてください。デモ版またはフリー版は以下のURLからダウンロードすることができます。https://www.hex-rays.com/products/ida/support/download.shtmlデモ版では、製品版とほぼ同じように使用することができますが、ちょっとした制限がかかっています。デモ版でかかる制限の詳しい内容については、以下のURLを参照していただければと思います。https://out7.hex-rays.com/demo/request主には、以下ような制限がかかっております。Demoを起動すると、最初に出てくる画面で機能制限に関する説明が書いてあります。次にフリー版について。フリー版では、利用目的などで制限等がかります(商用目的での利用が禁止など)。(フリー版では、v7.0になってからデバッグ機能が無効化されていましたが、現在は有効化されているようです)こちらも、起動時に制限の内容が記載されています。Freeを使って、IDAで表示される各画面上でどのようなデータが確認できるのかや、どういった機能が搭載されているかを確認したい場合には、予めこれらの制限を知っておくといいと思います。Proについてかるくではありますが触れていきました。記事では紹介しきれていない機能などもまだまだたくさんありますし、プラグインについても様々な人が様々な種類のものを公開しています。プラグインは自分でも作ることができるので、独自のプラグインを作って解析するのも良しです。Proを使って解析作業をさらに効率的に行っていただければと思います。