管理されていないプロセスをデバッグしていると仮定します...
「すべてをデバッグ/中断」するときは、次の手順に従います。
「Debug/Windows/Modules」を選択して、ロードされたすべてのモジュールのリストを取得します。[モジュール] ウィンドウの [アドレス] 列の下に、そのモジュールのメモリ範囲があります。逆アセンブリ ウィンドウの [アドレス:] ボックスに、モジュールの開始アドレスを入力します (番号の前に必ず 0x を追加してください)。
これで、操作したいモジュールの先頭にいるはずです。関数のアドレスがわかっている場合は、そのアドレスにジャンプできます。
次に例を示します。
sol.exe を実行し、プロセスにアタッチし、すべてを中断します。モジュールを見て、「cards.dll」を見つけてください。6fc10000 にロードされていることがわかります (私のマシンでは)。
そのアドレス (0x6fc10000) を逆アセンブリ ウィンドウに入力すると、モジュールの先頭に移動します。
ここで、実際に関数にジャンプしたいとします。Dependency Walker (depends.exe) で DLL を開き、関数のオフセットを取得します。私の例では、関数「cdInit」にブレークポイントを設定したいと考えています。Dependecny Walker では、エクスポートされた関数 cdInit へのオフセットが 0x000013e6 であることを示しています。したがって、その関数を取得するには、モジュールの開始アドレス (0x6fc10000) をオフセット (0x000013e6) に追加して 0x6fc113e6 を取得します。
このアドレスを分解ボックスに入力すると、実際にその関数の最初にジャンプします。