IDAの操作メモ - メニュー編(その2) - | reverse-eg-mal-memoのブログ

reverse-eg-mal-memoのブログ

サイバーセキュリティに関して、あれこれとメモするという、チラシの裏的存在。
medium(英語):https://sachiel-archangel.medium.com/

●「Search」メニュー

IDA View画面上やバイナリデータのパラメータを検索する機能です。

IDA View上に書いたラベルやコメントも検索できるので、解析でメモった場所にジャンプする場合は便利かもしれません。

Strings解析で気になった文字列や、解析の途中で見つかった意味ありげなデータの塊を元に検索する場合もありますが、それぞれのケースでもアドレスが分かっているので、私の場合はそこからのリファレンスを追ったりするためそちらでの用途ではあまり使ってないです。ただし、検索する起因は色々あるので、しっかり押さえておくべき機能です。

 

 

 

IDA View上の文字列を検索する場合、メニューの「text...」でダイアログが表示されます。

ダイアログに、検索したい文字列を入力します。注意として、(slow!)とかかれているとおり、View上の文字を全て対象にしているため、それなりに時間がかかります。「next text」で、見つかった文字列の次の文字列を続けて検索することも可能です。

 

 

 

検体上の値を検索する場合、メニューの「immediate value...」でダイアログが表示されます。

ダイアログに検索したい値を直接入力します。「0x」を付けると16進数と判定され、付けない場合は10進数と判定され16進数に自動的に置き換えられて検索します。値は、「0xnnnnnn」など、数バイト分でも検索ができます。

 

 

 

検体上の値や文字列を検索する場合、メニューの「Sequence of bytes...」でダイアログが表示されます。

8進数、10進数、16進数のパラメータでの検索ができるほか、ダブルクォーテーション(")でくくることで、文字列検索を行うことができます。

10進数、16進数のパラメータの検索が、immediate valueと被る気がするっちゃするんですが・・・(汗)。複数バイトの値の場合に、リトルエンディアンの場合でのバイトごとの値の反転を気にしなくていいとか、そういう理由なのかな?といったところです(あんまり使ってないので、実はよく分からない)。

 

 

 

検体上の文字列を検索した例です。

日本語のようなマルチバイト文字列にも、ある程度対応しています。shift-jis、UTF-8のほか、UTF-16LE、UTF-32LEにも対応しているので、通常のマルウェア解析では十分カバーできると思います。これ以外の文字コードの場合は、仕方ないので一度その文字コードでバイナリ値を求めてその値で検索することになります。

 

 

 

●「View」メニュー

各ウィンドウの表示を追加したり、制御したりするメニューです。

IDAでは、色んな観点からパラメータを参照できる、多くの画面があります。もっとも、頻繁に使う画面はデフォルトで表示されますが。それでは足りない、もしくは画面を追加したい場合に使用します。

非常に多くの画面があるので、それぞれの紹介は省略します。概ね、名前を見ればわかると思いますので、メニューとサブメニューの画面だけ紹介しておきます。気になる画面は、フリー版などで試しに見てみるほうが早いと思います。

 

「View」のメニュー

 

 

「View」の「Open subviews」

しょっちゅうお世話になります。Hex dumpのウィンドウ追加は、ほぼ毎回やっていますね。

 

 

「View」の「Graphs」

グラフィカルにチャートやリファレンスを表示してくれます。たまに使いますね。

 

「View」の「Toolbars」

メニューの下に表示されているツールバーの編集です。各人のお好みで。私はデフォルトから変えてないですが。本当によく使う機能は、ショートカットキーを憶えて使うことをおススメします。ショートカットを憶えてしまえば、そちらを使うほうが、ストレスも少なく、解析速度も上がります。