CreateProcess 関数を使用すると、デバッガーでプロセスを開始し、デバッグできます。 createProcess の fdwCreate パラメーター 使用して、デバッグ操作の種類を指定します。 パラメーターに DEBUG_PROCESS フラグが指定されている場合、DEBUG_PROCESS フラグなしで子孫が作成された場合、デバッガーは新しいプロセスとすべてのプロセスの子孫をデバッグします。
fdwCreate DEBUG_PROCESSフラグとDEBUG_ONLY_THIS_PROCESS フラグが指定されている場合、デバッガーは新しいプロセスをデバッグしますが、その子孫はデバッグしません。
1 つのデバッガーは、DEBUG_PROCESS フラグを使用してプロセスを作成することで、別のデバッガーをデバッグできます。 その後、新しいプロセス (デバッグ中のデバッガー) は、DEBUG_PROCESS フラグを使用してプロセスを作成する必要があります。
OpenProcess 関数を使用すると、デバッガーは既存のプロセスの識別子を取得できます。 (DebugActiveProcess 関数は、この識別子を使用してデバッガーをプロセスにアタッチします)。通常、デバッガーは、PROCESS_VM_READフラグとPROCESS_VM_WRITE フラグを使用してプロセスを開きます。 これらのフラグを使用すると、デバッガーは、ReadProcessMemory と WriteProcessMemory関数使用して、プロセスの仮想メモリの読み取りと書き込みを行うことができます。 詳細については、「プロセスとスレッドの」を参照してください。