Udostępnij za pośrednictwem


Aktywowanie serwera debugowania

Istnieją dwa sposoby aktywowania serwera debugowania. Można go aktywować po uruchomieniu debugera przy użyciu opcji -server wiersza polecenia w oknie wiersza polecenia z podwyższonym poziomem uprawnień (Uruchom jako administrator). Można go również aktywować po uruchomieniu debugera. Uruchom debuger z podwyższonym poziomem uprawnień (Uruchom jako administrator) i wprowadź polecenie .server.

Uwaga Można aktywować serwer debugowania bez podniesionych uprawnień, a debugowanie klientów będzie mogło nawiązać połączenie z serwerem. Jednak klienci nie będą mogli odnaleźć serwera debugowania, chyba że został aktywowany z podwyższonym poziomem uprawnień. Aby uzyskać informacje na temat odnajdywania serwerów debugowania, zobacz Wyszukiwanie serwerów debugowania.

Ważny

Istnieją dodatkowe ważne zagadnienia dotyczące zabezpieczeń podczas korzystania z debugowania zdalnego, aby uzyskać więcej informacji, w tym informacje na temat włączania trybu bezpiecznego, zobacz Zabezpieczenia podczas debugowania zdalnego i zagadnienia dotyczące zabezpieczeń narzędzia debugowania systemu Windows.

Debugery obsługują kilka protokołów transportowych: nazwany potok (NPIPE), TCP, port COM, bezpieczny potok (SPIPE) i secure sockets layer (SSL).

Ogólna składnia aktywowania serwera debugowania zależy od używanego protokołu.

zalecane metody połączenia z dodatkowymi zabezpieczeń

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]

Niezabezpieczone metody połączenia

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]

Inną metodą aktywowania serwera debugowania jest użycie polecenia .server (Utwórz serwer debugowania) po uruchomieniu debugera.

zalecane metody połączenia z dodatkowymi zabezpieczeń

.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] 

Niezabezpieczone metody połączenia

.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] 

Parametry

Parametry w poprzednich poleceniach mają następujące możliwe wartości:

debugera
Może to być KD, CDB, NTSD lub WinDbg.

potok =PipeName
Gdy jest używany protokół NPIPE lub SPIPE, PipeName to ciąg, który będzie służyć jako nazwa potoku. Każda nazwa potoku powinna identyfikować unikatowy serwer debugowania. Jeśli spróbujesz ponownie użyć nazwy potoku, zostanie wyświetlony komunikat o błędzie. PipeName nie może zawierać spacji ani cudzysłowów. PipeName może zawierać liczbowykod formatu stylu, taki jak %x lub %d. Debuger zastąpi to identyfikatorem procesu debugera. Drugi taki kod zostanie zastąpiony identyfikatorem wątku debugera.

Uwaga Może być konieczne włączenie udostępniania plików i drukarek na komputerze z uruchomionym serwerem debugowania. W Panelu sterowania przejdź do Network and Internet > Network and Sharing Center> Zaawansowane ustawienia udostępniania. Wybierz pozycję Włącz udostępnianie plików i drukarek.

port =Socket
Gdy jest używany protokół TCP lub SSL, Socket jest numerem portu gniazda.

Istnieje również możliwość określenia zakresu portów rozdzielonych dwukropkiem. Debuger sprawdzi każdy port w tym zakresie, aby sprawdzić, czy jest wolny. Jeśli znajdzie bezpłatny port i nie wystąpi błąd, zostanie utworzony serwer debugowania. Klient debugowania będzie musiał określić rzeczywisty port używany do nawiązywania połączenia z serwerem. Aby określić rzeczywisty port, użyj dowolnej metody opisanej w Wyszukiwanie serwerów debugowania; po wyświetleniu tego serwera debugowania port będzie po dwóch liczbach rozdzielonych dwukropkiem. Pierwsza liczba będzie rzeczywistym używanym portem; drugi można zignorować. Jeśli na przykład port został określony jako port =51:60, a faktycznie użyto portu 53, wyniki wyszukiwania będą pokazywać wartość "port=53:60". (Jeśli używasz parametru clicon w celu nawiązania połączenia odwrotnego, klient debugowania może określić zakres portów w ten sposób, podczas gdy serwer musi określić rzeczywisty używany port).

clicon=Client
Gdy jest używany protokół TCP lub SSL i clicon parametr jest określony, zostanie otwarte odwrotne połączenie. Oznacza to, że serwer debugowania spróbuje nawiązać połączenie z klientem debugowania, a nie pozwoli klientowi zainicjować kontakt. Może to być przydatne, jeśli masz zaporę, która uniemożliwia połączenie w zwykłym kierunku. Client określa nazwę sieci lub adres IP komputera, na którym istnieje lub zostanie utworzony klient debugowania. Dwa początkowe ukośniki odwrotne (\) są opcjonalne.

Ponieważ serwer szuka jednego określonego klienta, nie można połączyć wielu klientów z serwerem, jeśli używasz tej metody. Jeśli połączenie zostanie odrzucone lub zostanie przerwane, konieczne będzie ponowne uruchomienie połączenia z serwerem. Serwer odwrotnego połączenia nie będzie wyświetlany, gdy inny debuger wyświetla wszystkie aktywne serwery.

Uwaga Gdy jest używany clicon, najlepiej jest uruchomić klienta debugowania przed utworzeniem serwera debugowania, chociaż zwykle zamówienie (serwer przed klientem) jest również dozwolone.

port =COMPort
Gdy jest używany protokół COM, COMPort określa port COM do użycia. Prefiks "COM" jest opcjonalny — na przykład dopuszczalne są zarówno wartości "com2" i "2".

baud=BaudRate
Gdy jest używany protokół COM, BaudRate określa szybkość transmisji, z jaką zostanie uruchomione połączenie. Dozwolona jest szybkość transmisji obsługiwana przez sprzęt.

kanał =COMChannel
Jeśli jest używany protokół COM, COMChannel określa kanał COM, który ma być używany w komunikacji z klientem debugowania. Może to być dowolna wartość z zakresu od 0 do 254 włącznie. Można użyć jednego portu COM dla wielu połączeń przy użyciu różnych numerów kanałów. (Różni się to od użycia portów COM dla debugowania — w takiej sytuacji nie można używać kanałów w porcie COM).

proto = protokołu
Jeśli jest używany protokół SSL lub SPIPE, Protocol określa protokół Secure Channel (S-Channel). Może to być dowolny z ciągów tls1, pct1, ssl2 lub ssl3.

Cert
Jeśli jest używany protokół SSL lub SPIPE, certyfikat określa certyfikat. Może to być nazwa certyfikatu lub odcisk palca certyfikatu (ciąg cyfr szesnastkowych podanych przez przystawkę certyfikatu). Jeśli jest używana składnia certuser=Cert, debuger wyszuka certyfikat w magazynie systemowym (magazyn domyślny). Jeśli jest używana składnia machuser=Cert, debuger wyszuka certyfikat w magazynie maszyn. Określony certyfikat musi obsługiwać uwierzytelnianie serwera.

ukryte
Uniemożliwia wyświetlanie serwera, gdy inny debuger wyświetla wszystkie aktywne serwery.

password=Password
Wymaga od klienta podania określonego hasła w celu nawiązania połączenia z sesją debugowania. hasło może być dowolnym ciągiem alfanumerycznym, maksymalnie dwunastoma znakami.

Ważny

Użycie hasła z protokołem TCP, NPIPE lub COM zapewnia tylko niewielką ilość ochrony, ponieważ hasło nie jest szyfrowane. Jeśli używasz hasła razem z protokołem SSL lub SPIPE, hasło jest szyfrowane. Jeśli chcesz ustanowić bezpieczną sesję zdalną, musisz użyć protokołu SSL lub SPIPE.

ipversion=6
(Narzędzia debugowania dla systemu Windows 6.6.07 i starszych) Wymusza, aby debuger używał adresu IP w wersji 6, a nie w wersji 4 podczas nawiązywania połączenia z Internetem przy użyciu protokołu TCP. W systemie Windows Vista i nowszych wersjach debuger próbuje automatycznie domyślnie ustawić adres IP w wersji 6, co sprawia, że ta opcja jest niepotrzebna.

-noio
Jeśli serwer debugowania zostanie utworzony za pomocą opcji -noio, nie można wykonać żadnych danych wejściowych ani wyjściowych za pośrednictwem samego serwera. Debuger będzie akceptował tylko dane wejściowe od klienta debugowania (oraz dowolny początkowy skrypt polecenia lub skrypt polecenia określony przez -c opcji wiersza polecenia). Wszystkie dane wyjściowe zostaną przekierowane do klienta debugowania. Opcja -noio jest dostępna tylko w przypadku KD, CDB i NTSD. Jeśli ntSD jest używany dla serwera, żadne okno konsoli nie zostanie w ogóle utworzone.

IcfEnable
Powoduje, że debuger włącza niezbędne połączenia portów dla komunikacji TCP lub nazwanego potoku, gdy zapora połączenia internetowego jest aktywna. Domyślnie zapora połączenia internetowego wyłącza porty używane przez te protokoły. Gdy IcfEnable jest używany z połączeniem TCP, debuger powoduje otwarcie portu systemu Windows określonego przez parametr socket . Gdy IcfEnable jest używany z nazwanym połączeniem potoku, debuger powoduje otwarcie portów używanych dla nazwanych potoków (porty 139 i 445). Debuger nie zamyka tych portów po zakończeniu połączenia.

Opcje
Wszystkie dodatkowe parametry wiersza polecenia można umieścić tutaj. Aby uzyskać pełną listę, zobacz Command-Line Opcje.

Możesz użyć polecenia .server, aby uruchomić wiele serwerów przy użyciu różnych opcji protokołu. Dzięki temu klienci debugowania mogą dołączać do sesji różnego rodzaju.

Zobacz też

kontrolowanie sesji debugowania zdalnego

.endsrv (końcowy serwer debugowania)