内気なもんた君

時々日本語化してます

x64dbg の CPU 画面 解説

x64dbg の CPU 画面 解説

Windows 用のオープンソース バイナリ デバッガー。

これから使い始める人のために、CPU画面について極々簡単に説明します。


アセンブル窓 :

メインの窓で、プログラムのアセンブリコードなどなどが表示されます。

情報窓 :

現在選択されている命令や操作に関する追加情報などが表示されます。

ダンプ窓 :

メモリの内容がバイト単位で表示されます。
表示内容はカスタマイズ可能。(16進数、テキスト、整数など...)

レジスタ窓 :

CPUのレジスタの現在の値が表示されます。
FPU,フラグレジスタの状態も表示されます。

コールスタック窓 :

現在の関数呼び出しの階層が表示されます。
(x64環境では fastcall に統一されています)

スタック窓 :

プログラムのスタックの内容が表示されます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

カスタマイズ :

・逆アセンブル窓に表示する列項目はカスタマイズ可能です。
 (右クリックメニュー -> 表示列の設定)

・配色設定では多くの項目の表示色をカスタマイズできます。
 (オプション -> 外観設定 -> 配色設定)

・逆アセンブル窓の表示に関して細かく設定できます。
 (オプション -> 環境設定 -> 逆アセ)

 

- = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = -

用語 :

デバッガでは、多くの略称が使われています。
翻訳ではなるべく略称を使わないようにしています。
(使い慣れた人は逆に戸惑うかもしれません)

 

*メモリ保護と実行環境

ASLR (Address Space Layout Randomization) : アドレス空間配置のランダム化
メモリ内のプログラムデータの配置をランダム化するセキュリティ技術

PEB (Process Environment Block) : プロセス環境ブロック
プロセスに関する情報を格納するデータ構造

TEB (Thread Environment Block) : スレッド環境ブロック
スレッドに関する情報を格納するデータ構造

レジスタと命令ポインタ

EBP (Extended Base Pointer) : 拡張ベース ポインタ
32ビットシステムでのベースポインタレジスタ

EIP (Extended Instruction Pointer) : 拡張命令 ポインタ
32ビットシステムでの命令ポインタレジスタ

ESP (Extended Stack Pointer) : 拡張スタック ポインタ
32ビットシステムでのスタックポインタレジスタ

RBP (Register Base Pointer) : レジスタ ベース ポインタ
64ビットシステムでのベースポインタレジスタ

RIP (Register Instruction Pointer) : レジスタ 命令 ポインタ
64ビットシステムでの命令ポインタレジスタ

RSP (Register Stack Pointer) : レジスタ スタック ポインタ
64ビットシステムでのスタックポインタレジスタ

*その他の技術用語

FAR (Far Address) : ファーアドレス
セグメントとオフセットを含む完全なメモリアドレス

FPU (Floating Point Unit) : 浮動小数点演算ユニット
浮動小数点演算を処理するハードウェアユニット

RVA (Relative Virtual Address) : 相対仮想アドレス
モジュールのベースアドレスからの相対的な仮想アドレス

SEH (Structured Exception Handling) : 構造化例外処理
Windowsにおける例外処理メカニズム