終わりが来る日を待っている

終わりが来る日を待っている

1年1回更新を目指す.

IDA Pro 使い方メモ

まずはIDA Proのショートカットなどについてまとめておく。

足りていなかったり、こうしたらいいよって言うのがあったら教えて欲しい。

参考にした資料

最初に設定する項目

はじめにチェックを入れるべき設定

  • optionタブ
    • General -> Disassembly -> Display disassembly line parts

f:id:rancha:20180203114919p:plain:w300

項目としては、5つある

  • Line prefix
    • グラフビューでそれぞれの命令にPrefixを表示する
  • Stack pointer
    • データが積まれたときにどの位置に積まれたのかを表示
  • Comments
    • コメント
  • Repeatable comments
    • 同じ関数などが別の場所で呼ばれているとき、その場所にもコメントを挿入する
  • Auto comments
    • いろいろな場所にcommentが自動でつけられる

この5つの項目のうち、Auto Comments以外の4つの項目にチェックを入れておく。Auto Commentsにつけない理由は、あまりにコメントがつけられすぎて邪魔に感じたから。

これらの項目のうち、特に重要なのがLine Prefix。

これにチェックを入れると、IDA View-Aでグラフビューモードにしたときもアドレスが表示される。そうすると、テキストとグラフを入れ替えたときにどのアドレスの命令か分かりやすくなるので、分岐・ジャンプ先のアドレスがどのくらい離れているのか分かりやすい。

(そもそもテキストビューなら、分岐・ジャンプしたときにどのくらい離れているのかすぐ分かるが...)

チェック前

f:id:rancha:20180203115058p:plain:w300

チェック後

f:id:rancha:20180203115103p:plain:w300

分かりやすい!!

ショートカット

よく使う基本的なショートカット

キー 内容
x 関数や文字列などがどこで参照されているのか、その一覧を表示する
Enter その関数や文字列のアドレスに移動する
esc 前のところに戻る
スペース IDA View-A のテキストビューとグラフビューの入れ替え

Enterとescを使い関数の階層を移動しながら解析をすすめるかんじ。 基本、上4つを抑えておけばいい。

"x"は参照されている場所を知りたいときに行う。 無料版では項目一個分の幅でウィンドウが表示されるため、複数箇所で参照されている場合、2つめ以降の参照箇所見逃しや"x"を押すたびにウィンドウの調整が必要になる。 有料版ではきちんと大きめのウィンドウで表示される。

IDAの表示変更

IDAはデータがどういう意図のものなのか識別できないため、ときどき表示を間違える。そのときは、ユーザ側で表示を変えてやる必要がある。また、解析を行ったときには、コメントを残すことで、次回解析するときに続きからできるようにする。

  • 怪しい部分を見つけたとき

    • とりあえず以下をいろいろ試してみる
    • だいたい使うのは、文字列の"A"と関数にする"P"
    キー 内容
    U 選択した部分を「未定義」にする
    C 選択した部分を「コード」にする
    D 選択した部分を「データ」にする
    P 選択した部分データを「関数」にする
    A 選択した部分を「文字列」にする
    * 選択したデータを「配列」にする
  • IDAで読んだコードにコメントを残すための機能

    キー 内容
    N 関数や変数の名前を再定義する
    : コメントをつけられる
    ; リピータブルコメントをつけられる(他に同じコードを参照している場合、その場所にも反映される)
    Y 関数にプロトタイプ宣言をつける(引数名を自動的にコメントしてくれる)
  • movなどで怪しい16進数があったときに使う

    • だいたい"H"と"R"を使う
    • 分からないときは、該当箇所を選択した後に右クリック
    キー 内容
    B 16進数表示と2進数表示の切り替え
    H 16進数表示と10進数表示の切り替え
    R 16新数表示とASCII文字表示の切り替え

タブ

よく失敗するのが、タブのバツを押してウィンドウを閉じてしまうこと。 再度タブを開くには、Windowを選べばいい。もしくはショートカットキーから。

  • Output window
    • ログ出力結果
    • Alt + 0
  • Function window
    • 関数一覧
    • Alt + 1
  • IDA View-A window
    • メインとなるウインドウ
    • テキストビューとグラフビューが存在する
      • 解析者の間では、どちらが見やすいかで議論になる(らしい
    • Alt + 2
  • Strings window
    • 解析対象ファイルに含まれる文字列一覧
    • Alt + 3
  • Hex View-1
    • 解析対象ファイルの16進数表示とそのascii表示
    • Alt + 4
  • Structures
    • Alt + 5
  • Enums
    • Alt + 6
  • Imports
    • Importされている関数一覧
    • Alt + 7
  • Exports
    • Exportされている関数一覧
    • Alt + 8

追記

こんなんあった

https://www.hex-rays.com/products/ida/support/freefiles/IDA_Pro_Shortcuts.pdf