Aktivieren eines Debugservers
Es gibt zwei Möglichkeiten zum Aktivieren des Debugservers. Sie kann aktiviert werden, wenn der Debugger gestartet wird, indem sie die Befehlszeilenoption -server in einem Eingabeaufforderungsfenster mit erhöhten Rechten (als Administrator ausführen) verwenden. Sie kann auch aktiviert werden, nachdem der Debugger ausgeführt wurde. Starten Sie den Debugger mit erhöhten Rechten (als Administrator ausführen), und geben Sie den Befehl .server ein.
Hinweis Sie können einen Debugserver aktivieren, ohne erhöhte Berechtigungen zu haben, und Debugclients können eine Verbindung mit dem Server herstellen. Clients können jedoch keinen Debugserver ermitteln, es sei denn, sie wurde mit erhöhten Rechten aktiviert. Informationen zum Ermitteln von Debugservern finden Sie unter Suchen nach Debugservern.
Wichtig
Es gibt zusätzliche wichtige Sicherheitsaspekte bei der Verwendung von Remotedebugging, weitere Informationen, einschließlich Informationen zum Aktivieren des sicheren Modus, finden Sie unter Sicherheit während des Remotedebuggings und Sicherheitsüberlegungen für Windows-Debuggingtools.
Die Debugger unterstützen mehrere Transportprotokolle: named pipe (NPIPE), TCP, COM-Port, secure pipe (SPIPE) und secure sockets layer (SSL).
Die allgemeine Syntax für die Aktivierung eines Debugservers hängt vom verwendeten Protokoll ab.
Empfohlenen Verbindungsmethoden mit einigen zusätzlichen Sicherheits-
Debugger -server spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] [-noio] [Options]
Debugger -server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] [-noio] [Options]
Debugger -server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] [-noio] [Options]
unsicheren Verbindungsmethoden
Debugger -server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] [-noio] [Options]
Debugger -server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] [-noio] [Options]
Debugger -server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] [-noio] [Options]
Debugger -server com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] [-noio] [Options]
Eine weitere Methode zum Aktivieren eines Debugservers ist die Verwendung des .server (Create Debugging Server) Befehl, nachdem der Debugger bereits gestartet wurde.
Empfohlenen Verbindungsmethoden mit einigen zusätzlichen Sicherheits-
.server spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password]
.server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password]
.server ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password]
unsicheren Verbindungsmethoden
.server npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable]
.server tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable]
.server tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6]
.server com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password]
Parameter
Die Parameter in den vorherigen Befehlen weisen die folgenden möglichen Werte auf:
Debugger-
Kann KD, CDB, NTSD oder WinDbg sein.
pipe=PipeName
Wenn NPIPE- oder SPIPE-Protokoll verwendet wird, ist PipeName- eine Zeichenfolge, die als Name der Pipe dient. Jeder Pipename sollte einen eindeutigen Debugserver identifizieren. Wenn Sie versuchen, einen Pipenamen wiederzuverwenden, wird eine Fehlermeldung angezeigt.
PipeName- dürfen keine Leerzeichen oder Anführungszeichen enthalten.
PipeName- kann einen numerischen printf-style formatcode enthalten, z. B. %x oder %d. Der Debugger ersetzt dies durch die Prozess-ID des Debuggers. Ein zweiter solcher Code wird durch die Thread-ID des Debuggers ersetzt.
Hinweis Möglicherweise müssen Sie die Datei- und Druckerfreigabe auf dem Computer aktivieren, auf dem der Debugserver ausgeführt wird. Navigieren Sie in der Systemsteuerung zu Netzwerk- und Internet-> Netzwerk- und Freigabecenter> Erweiterte Freigabeeinstellungen. Wählen Sie Datei- und Druckerfreigabeaktivieren.
Port=Socket-
Wenn TCP- oder SSL-Protokoll verwendet wird, ist Socket- die Nummer des Socketports.
Es ist auch möglich, einen durch einen Doppelpunkt getrennten Portbereich anzugeben. Der Debugger überprüft jeden Port in diesem Bereich, um festzustellen, ob er kostenlos ist. Wenn ein kostenloser Port gefunden wird und kein Fehler auftritt, wird der Debugserver erstellt. Der Debugclient muss den tatsächlichen Port angeben, der zum Herstellen einer Verbindung mit dem Server verwendet wird. Um den tatsächlichen Port zu ermitteln, verwenden Sie eine der in Suchen nach Debugservernbeschriebenen Methoden; Wenn dieser Debugserver angezeigt wird, folgt der Port zwei Nummern, die durch einen Doppelpunkt getrennt sind. Die erste Nummer wird als tatsächlicher Port verwendet; die zweite kann ignoriert werden. Wenn der Port beispielsweise als port=51:60angegeben wurde und Port 53 tatsächlich verwendet wurde, werden in den Suchergebnissen "port=53:60" angezeigt. (Wenn Sie den parameter clicon verwenden, um eine Reverseverbindung herzustellen, kann der Debugclient einen Bereich von Ports auf diese Weise angeben, während der Server den tatsächlich verwendeten Port angeben muss.)
clicon=Client-
Wenn TCP- oder SSL-Protokoll verwendet wird und der clicon Parameter angegeben wird, wird eine reverse connection geöffnet. Dies bedeutet, dass der Debugserver versucht, eine Verbindung mit dem Debugclient herzustellen, anstatt den Client den Kontakt initiieren zu lassen. Dies kann hilfreich sein, wenn Sie über eine Firewall verfügen, die eine Verbindung in die übliche Richtung verhindert.
Client- gibt den Netzwerknamen oder die IP-Adresse des Computers an, auf dem der Debugclient vorhanden ist oder erstellt wird. Die beiden anfänglichen Schrägstriche (\) sind optional.
Da der Server nach einem bestimmten Client sucht, können Sie nicht mehrere Clients mit dem Server verbinden, wenn Sie diese Methode verwenden. Wenn die Verbindung verweigert oder unterbrochen wird, müssen Sie die Serververbindung neu starten. Ein Reverseverbindungsserver wird nicht angezeigt, wenn ein anderer Debugger alle aktiven Server anzeigt.
Hinweis Wenn clicon- verwendet wird, empfiehlt es sich, den Debugclient zu starten, bevor der Debugserver erstellt wird, obwohl auch die übliche Reihenfolge (Server vor Client) zulässig ist.
port=COMPort-
Wenn COM-Protokoll verwendet wird, gibt COMPort- den zu verwendenden COM-Port an. Das Präfix "COM" ist optional , z. B. sind sowohl "com2" als auch "2" zulässig.
baud=BaudRate
Wenn das COM-Protokoll verwendet wird, gibt BaudRate die Baudrate an, mit der die Verbindung ausgeführt wird. Jede Baudrate, die von der Hardware unterstützt wird, ist zulässig.
Channel=COMChannel
Wenn COM-Protokoll verwendet wird, gibt COMChannel- den COM-Kanal an, der bei der Kommunikation mit dem Debugclient verwendet werden soll. Dies kann ein beliebiger Wert zwischen 0 und 254 (einschließlich) sein. Sie können einen einzelnen COM-Port für mehrere Verbindungen mit unterschiedlichen Kanalnummern verwenden. (Dies unterscheidet sich von der Verwendung eines COM-Ports für ein Debugkabel - in dieser Situation können Sie keine Kanäle innerhalb eines COM-Ports verwenden.)
proto=Protocol
Wenn SSL- oder SPIPE-Protokoll verwendet wird, gibt Protocol das Secure Channel (S-Channel)-Protokoll an. Dies kann eine der Zeichenfolgen tls1, pct1, ssl2 oder ssl3 sein.
Cert-
Wenn SSL- oder SPIPE-Protokoll verwendet wird, gibt Cert das Zertifikat an. Dies kann entweder der Zertifikatname oder der Fingerabdruck des Zertifikats sein (die Zeichenfolge der hexadezimalen Ziffern, die vom Snapin des Zertifikats angegeben werden). Wenn die Syntax certuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Systemspeicher (standardspeicher). Wenn die Syntax machuser=Cert verwendet wird, sucht der Debugger das Zertifikat im Computerspeicher. Das angegebene Zertifikat muss die Serverauthentifizierung unterstützen.
ausgeblendeten
Verhindert, dass der Server angezeigt wird, wenn ein anderer Debugger alle aktiven Server anzeigt.
password=Password
Erfordert, dass ein Client das angegebene Kennwort angeben muss, um eine Verbindung mit der Debugsitzung herzustellen.
Kennwort- kann eine beliebige alphanumerische Zeichenfolge sein, bis zu zwölf Zeichen lang.
Wichtig
Die Verwendung eines Kennworts mit TCP, NPIPE oder COM-Protokoll bietet nur einen geringen Schutz, da das Kennwort nicht verschlüsselt ist. Wenn Sie ein Kennwort zusammen mit einem SSL- oder SPIPE-Protokoll verwenden, wird das Kennwort verschlüsselt. Wenn Sie eine sicherere Remotesitzung einrichten möchten, müssen Sie das SSL- oder SPIPE-Protokoll verwenden.
ipversion=6
(Nur Debugtools für Windows 6.6.07 und frühere Versionen) Erzwingt, dass der Debugger IP-Version 6 anstelle von Version 4 verwendet, wenn TCP zum Herstellen einer Internetverbindung verwendet wird. In Windows Vista und höheren Versionen versucht der Debugger, die IP-Standardversion 6 automatisch zu verwenden, wodurch diese Option unnötig ist.
-noio
Wenn der Debugserver mit der Option -noio erstellt wird, kann keine Eingabe oder Ausgabe über den Server selbst erfolgen. Der Debugger akzeptiert nur Eingaben vom Debugclient (sowie alle anfänglichen Befehle oder Befehlsskripts, die durch die -c Befehlszeilenoption angegeben wurden). Alle Ausgaben werden an den Debugclient weitergeleitet. Die option -noio ist nur mit KD, CDB und NTSD verfügbar. Wenn NTSD für den Server verwendet wird, wird überhaupt kein Konsolenfenster erstellt.
IcfEnable
Bewirkt, dass der Debugger die erforderlichen Portverbindungen für DIE TCP- oder benannte Pipe-Kommunikation aktiviert, wenn die Internetverbindungsfirewall aktiv ist. Standardmäßig deaktiviert die Internetverbindungsfirewall die ports, die von diesen Protokollen verwendet werden. Wenn IcfEnable mit einer TCP-Verbindung verwendet wird, bewirkt der Debugger, dass Windows den durch den parameter Socket angegebenen Port öffnet. Wenn IcfEnable mit einer benannten Pipeverbindung verwendet wird, öffnet der Debugger Windows die Ports für benannte Rohre (Ports 139 und 445). Der Debugger schließt diese Ports nicht, nachdem die Verbindung beendet wurde.
Optionen
Hier können alle zusätzlichen Befehlszeilenparameter platziert werden. Eine vollständige Liste finden Sie unter Command-Line Optionen.
Sie können den Befehl .server verwenden, um mehrere Server mit unterschiedlichen Protokolloptionen zu starten. Dadurch können verschiedene Arten von Debuggingclients an der Sitzung teilnehmen.