IDAの使い方に関するメモ
随時更新予定
IDAのショートカットキーの一覧はここ
エントリー・ポイントにジャンプする
Ctrl + Eキーを押す
特定のアドレスにジャンプする
1. 逆アセンブル画面にてGキーを押す
2. ポップアップしたウィンドウにアドレス番号を入力してOKを押す
逆アセンブル・コードをデータに変換する
対象のコード行をハイライトしてDキーを押す
データを逆アセンブル・コードに変換する
対象の行をハイライトしてCキーを押す
関数の呼び出し元の一覧を表示する
対象の関数をハイライトしてXキーを押す
関数の親子関係を確認する
1. 対象の関数をハイライト
2. View > Open Subviews > Function Calls
3. 上半分のウィンドウで親関数(関数を呼び出している関数)を、下半分のウィンドウで子関数(関数の中で呼び出されている関数)を確認できる
アドレスとオペコードを表示させる
1. OptionsからGeneral
2. DisassemblyタブよりLine prefixes (graph)にチェックを入れる
3. Number of opcode bytes (graph)に任意の数字を入力する。自分の場合は8を入れる。
テキスト・ビューとグラフ・ビューの切り替え
スペースキーを押して切り替える
グラフ・ビューのズームイン・ズーム・アウト
Ctrl + マウスのホイール・ボタン
関数の冒頭に複数行のコメントを入れる
関数名をハイライトして : (コロン)を押す。ポップアップしたウィンドウにコメントを入力する。
変数と引数を確認する
関数冒頭に列挙されているスタック・フレームのデータを確認する。負の値 (マイナスの値)が設定されているものが変数、正の値が設定されているものが引数。(ローカル変数へのアクセスはEBPからオフセットを引くことによって行われる。関数の引数へのアクセスはEBPにオフセットを加算することによって行われる。詳しくはこちら。)
オペコードを検索する
Searchからsequence of bytesを選択して検索したいデータを入力する。
ファイルをロードする際にベースアドレスを指定する
IDAにファイルをロードする際にManual load のチェックボックスにチェックを入れて、ベースアドレスを指定する。
Named Constant (名前付き定数)表示に切り替える
Windows APIなどの関数に渡される値をNamed Constant表示に切り替えたい場合は値をハイライトして右クリックし、Symbolic constantを選択、該当するSymbol nameを選んでOKをクリックする。
プログラムをパッチする
書き換えたいコード行を選択し、Edit -> Patch program よりChange byte、Change word、Assembleのいずれかを選択してコードを書き換える。パッチ後のファイルを保存する場合は、Edit -> Patch program よりApply patches to input fileを選択。Create backupにチェックを入れるとパッチ前のファイルのバックアップが作成される。