Udostępnij przez


Przykłady klientów i serwerów

Załóżmy, że jedna osoba uruchamia aplikację na komputerze o nazwie \\BOX17. Ta aplikacja ma problemy, ale technik debugowania znajduje się w innej lokacji.

Pierwsza osoba konfiguruje serwer debugowania przy użyciu usługi CDB na \\BOX17. Aplikacja docelowa ma identyfikator procesu 122. Wybrano protokół TCP z numerem portu gniazda 1025. Serwer jest uruchamiany przez wprowadzenie następującego polecenia w oknie wiersza polecenia z podwyższonym poziomem uprawnień (Uruchom jako administrator):

E:\Debugging Tools for Windows> cdb -server tcp:port=1025 -p 122

Na innym komputerze technik decyduje się użyć WinDbg jako klienta debugowania. Można go uruchomić za pomocą tego polecenia:

G:\Debugging Tools> windbg -remote tcp:server=BOX17,port=1025

Oto kolejny przykład. W takim przypadku wybrano protokół NPIPE, a usługa CDB jest używana zamiast WinDbg. Pierwszy użytkownik wybiera nazwę potoku. Może to być dowolny ciąg alfanumeryczny — w tym przykładzie "MainPipe". Pierwszy użytkownik otwiera okno wiersza polecenia z podwyższonym poziomem uprawnień (Uruchom jako administrator) i uruchamia serwer debugowania, wprowadzając następujące polecenie:

E:\Debugging Tools for Windows> cdb -server npipe:pipe=MainPipe -v winmine.exe 

Technik jest zalogowany na komputerze klienckim przy użyciu konta, które nie ma dostępu do komputera serwera. Jednak technik zna nazwę użytkownika i hasło dla konta, które ma dostęp do komputera serwera. Nazwa użytkownika tego konta to Contoso. Technik wprowadza następujące polecenie:

net use \\BOX17\ipc$ /user:Contoso

Po wyświetleniu monitu technik wprowadza hasło dla konta contoso.

Technik nie jest pewien, jaka nazwa została użyta dla nazwanego potoku, aby wysłać zapytanie do BOX17 o dostępne serwery debugowania.

G:\Debugging Tools> cdb -QR \\BOX17
Servers on \\BOX17:
Debugger Server - npipe:Pipe=MainPipe
Remote Process Server - npipe:Pipe=AnotherPipe

Wyświetlane są dwie rury. Jednak tylko jeden jest serwerem debugowania — drugi jest serwerem przetwarzania i nie jesteśmy tym zainteresowani. Dlatego MainPipe musi być poprawną nazwą. Technik używa następującego polecenia, aby uruchomić klienta debugowania:

G:\Debugging Tools> cdb -remote npipe:server=BOX17,pipe=MyPipe 

Korzystanie z bezpiecznego serwera

Oto przykład bezpiecznego serwera. Ten serwer używa warstwy bezpiecznych gniazd z protokołem S-Channel TLS1. Debuger wyszuka certyfikat w magazynie maszyn. Certyfikat jest określany przez jego szesnastkowy odcisk.

D:\> cdb -server "ssl:proto=tls1,machuser=ab 38 f7 ae 13 20 ac da 05 14 65 60 30 83 7b 83 09 2c d2 34,port=1234" notepad.exe