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

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

1年1回更新を目指す.

Ghidraまとめ

国家安全保障局(NSA)がRSA Conferenceでソフトウェアリバースエンジニアリングツール 「Ghidra」を公開しました。

昨年、IDA Proを購入した後にIDA Free version7.0が発表され、
今年、IDA Proの更新をした後にGhidraが公開される。
まぁ、IDA Proには、Debugger機能があるので今後も使っていくと思いますが....
※ 追記 : IDA Free版でDebugger機能が開放されました....


Ghidraのインストール方法や詳細については、誰かが書いた記事があると思うので、そちらを参照してください。
以降は、自分用のまとめ
※ 自分用のため、あまり当てにしないでください
※ 環境はMacです。Windowsの場合は異なるかもしれません
※ Ghidraに関するtwitterや記事をまとめただけです

設定

  • Debugポートを念の為閉じる
//support/launch.sh 150行目
VMARG_LIST+=" -Xrunjdwp:transport=dt_socket,server=y,suspend=${SUSPEND},address=*:${DEBUG_PORT}"
↓
VMARG_LIST+=" -Xrunjdwp:transport=dt_socket,server=y,suspend=${SUSPEND},address=127.0.0.1:${DEBUG_PORT}"



  • Function Graphの表示が移動した後に縮小表示される
    • Edit -> Tool Options -> Function Graphで View Settingsを「Start Fully Zoomed In」に変更
    • Function Graphの表示が移動した後、対象の領域が拡大されて表示される


  • 特定の命令やレジスタなどをドラッグして選択したときに、ドラッグしたものと同じ命令やレジスタを強調表示させる
    • Edit -> Tool Options -> Listing Fields -> Cursor Text Highlight
    • Mouse Button To Activateを"Left"に変更する


ショートカットの変更

Macだと、Command+shift+Fに「Compare Two Functions」と「Find Reference To」の2つが割り当てられている。
使いにくいので、「Find Reference To」をXに変更(IDA Proと同じ設定)

また、「戻る」にAlt + ← が割り当てられているが、ESCAPEに変更
(ESCAPEを割り当てられているショートカットがもともとあるので、そいつを削除する)

Edit -> Tool Options -> Key BIndings

  1. ESCAPEが割り当てられているショートカットを削除
  2. Previous in History Buffer -> ESCAPEに変更
  3. Find References To -> x
  4. Find References To -> x


さらに、値の変換について、ショートカットが設定されていないため、CharやHexの変換が面倒くさい。
上と同様に設定を行う。

Key BindingsのFilterで"convert"と入力

f:id:rancha:20190319021758p:plain

適当に自分の好きなショートカットを入れていく
※ いろいろショートカットを設定しすぎると覚えきれないので、同じショートカットを設定してウィンドウで選択する方式もあり。↓は、いくつか同じショートカットを当てはめて、選択できるようにしたもの

f:id:rancha:20190319022702p:plain

tips

  • Dark Modeに変更
    • メインウィンドウ -> Edit -> Tool Options -> Tool -> Use inverted colors
      ※ Code Browserではないので注意。起動直後のプロジェクトとかPEファイルを表示しているウィンドウのEditから行う


  • Function Graphでコードブロックの表示が切れている
    • Function Graphウィンドウの右上に「Edit Code Block Fields」があり、そこをクリックするとレイアウトをいじることができる


  • Function Graph ウィンドウをCode Browserの画面の中に入れる


  • Analysis項目のEmbedded Mediaを有効化することで、ファイルに含まれる画像などを表示することができる(未確認)


  • Function Graphにコメントを表示させる
    • Function Graphウィンドウの右上「Edit Code Block Fields」
    • Instruction/Data を選択し、その後、カラム上で右クリック -> Add Field -> Post Comment



  • Switchの解釈がバグっている
    1. From Window -> Script Manager でSwitchOverride.javaを選択
    2. CodeBrowser画面でjumpを目印にswitch文の始まりを選択
    3. scriptを実行する


解析記事など



  • Stuxnetの解析

www.youtube.com


  • メイプルストーリの解析?

www.youtube.com

情報元

twitter.com

twitter.com

ghidra-sre.org