3

私はwindbgを初めて使用します。通常、ollydbgなどのデバッガーまたはida proなどの逆アセンブラーを使用します。ただし、64 ビットのアセンブリ コードをデバッグしたいと考えています。

ollydbg と ida pro のインターフェイスでは、いくつかの命令が一度に表示されます。

push esi
push ecx
mov esi, [esp + 0Ch]
xor ecx, ecx
sub eax, 2
@@:
    add ecx, 2
    mov word ax, [esi + ecx]
    test ax, ax
    jnz @b
mov eax, ecx
pop ecx
pop esi
retn 4

ただし、windbg に関する私の問題は、$exentry にブレークポイントを設定してデバッグを開始すると、一度に 1 つの命令しか表示されないことです。

そのような

プッシュesi

それから私はそれをまたぐとそれが表示されます

ecxをプッシュ

ollydbg のようなインターフェイスを持たせて、実際にすべてのコードを表示し、何らかの構文の強調表示を使用して、それをステップオーバーできるようにする方法はありますか?

これを行わない場合、ollydbg のようなインターフェイスを持つ 64 ビット アプリケーションをデバッグできるデバッガはありますか?

4

3 に答える 3

4

次のオプションがあります。

  1. コマンド コンソールを使用している場合は、u(unassembly) コマンドを使用します。引数を受け入れます。u .現在の EIP から印刷されます。u出品を続けます。uf関数u . l300をアンアセンブルします。現在の EIP 300 アセンブリ命令からアンアセンブルします。等

  2. 逆アセンブル ウィンドウを開くことができます (View -> Disassembly)。

ちなみに、Visual Studio での組み立て説明書も見ることができます。

于 2013-05-29T11:06:11.810 に答える
0

なんらかの理由で分解ウィンドウを使用するのが煩わしいが、それでも両側にいくつかのコマンドを表示したい場合は、この方法を試すことができます

ub eip l4;u eip l4;p;r p を使用する代わりに Enter キーを押して、最初に実行し、次にシングル ステップを実行します。

上記のコマンドは、eip の前に 4 つの命令、eip の後に 4 つの命令を表示します。

使用してenter repeats the earlier command

于 2013-06-02T19:40:55.080 に答える