0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Binary NinjaでTTD

Posted at

概要

タイトルの通りです。Binja 5.2からTTDが強化されました。なんとFreeでも使えます。

TTDは通常のデバッグと違い、事前に取得したDebug Traceの再生をするものです。

  • 過去に戻れる
  • Trace再生時ホストへの影響はない
    • マルウェアの動的解析のように実行前のスナップショットに戻る...などの手間がない

なぜBinjaか?

  • Ghidraでも一応TTDは試したが動作が不安定
  • BinjaはDecompilerを見ながらデバッグできる
  • IDAはidbとの連携が悪く、ttd trace単体をIDAで開いて解析になる

こちらドキュメントになります

setup

image.png
Debugger → Install WinDbg/TTDを選択

image.png
放置するとインストールが終わる。Binjaを再起動

使い方

Traceの取得

image.png
Debugger → Record TTD Traceを選択

ASLRを切ることを推奨。
ランサムとかのTraceはTraceファイルのサイズが大きくなりすぎるので必要に応じてtaskkill推奨

image.png

トレースを取得したら左のDebugger Icon → DBGENG_TTDを選択しDebug開始。Trace Pathに.runファイルを指定。

image.png
ASLRを切り忘れるとImageBaseがこうなります(n敗)。

image.png

TTDを開始するとTTD Memory, TTD Calls, TTD Eventsが右のメニューが追加されます。

基本的なショートカット

  • F4 現在のカーソル位置まで実行
  • F7 step into
  • F8 step over
  • F9 Resume
  • Ctrl + F9 Step Return

上記ショートカットにShiftを付けると戻れる

  • G 指定した関数・アドレス・レジスタに移動
  • Shift + G 指定したTTD Positionに移動

TTD Memory

指定した領域のread, write, execを探せる。
このbool値どこでセットされたの?ってときなどに使えます。

TTD Calls

image.png

API呼び出しを探せる。ランタイムリンクで呼び出されたものも探せるので便利。
現在のTTD Position次第で検知できない場合もあるので注意。

TTD Events

DLLの呼び出し、例外処理の発生、Threadの作成が見られる。

TTD Analysis

どこが実際に実行されたか分析してくれる機能
image.png
Debugger → TTD Analysisを選択

image.png
例えばmain関数が140001000から14000141bまでの場合Start AddressとEnd Addressに値をセットしRun Analysis

image.png
Render Layers → TTD Coverageをオンにする

image.png
実行した箇所は赤くハイライトされる。
image.png
CFGでもハイライト可能(ハイライト薄いのでもう少し強くしてほしい)
TTD Analysisは広いアドレス範囲で実行するとメモリを滅茶苦茶使うので注意。関数単位での範囲指定を推奨。

Debug Console

image.png
下部にConsoleがありここでttdコマンドを動かせる。図はrsp付近にある値を出力したもの

その他

  • 右クリックメニューにAdd Cross Reference Toがあるので関節呼び出しcall raxを見つけたら追加してあげるといいかも

課金勢

BinjaのAPIにTTDがあります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?