Поделиться через


Примеры клиентов и серверов

Предположим, что один пользователь запускает приложение на компьютере с именем \\BOX17. Это приложение имеет проблемы, но специалист по отладке находится на другом сайте.

Первый пользователь настраивает сервер отладки с помощью CDB в \\BOX17. Целевое приложение имеет идентификатор процесса 122. Выбран протокол TCP с номером порта сокета 1025. Сервер запускается путем ввода следующей команды в окне командной строки с повышенными привилегиями (запуск от имени администратора):

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

На другом компьютере специалист решает использовать WinDbg в качестве клиента отладки. Его можно запустить с помощью следующей команды:

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

Вот другой пример. В этом случае выбирается протокол NPIPE, а вместо WinDbg используется CDB. Первый пользователь выбирает имя канала. Это может быть любая буквенно-цифровая строка, в данном примере —MainPipe. Первый пользователь открывает окно командной строки с повышенными привилегиями (запуск от имени администратора) и запускает сервер отладки, введя следующую команду:

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

Технический специалист войдет на клиентский компьютер с учетной записью, которая не имеет доступа к серверу. Но технический специалист знает имя пользователя и пароль для учетной записи, которая имеет доступ к компьютеру сервера. Имя пользователя для этой учетной записи — Contoso. Техник введет следующую команду:

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

При появлении запроса специалист вводит пароль для учетной записи Contoso.

Технический специалист не уверен, какое имя использовалось для именованного канала, поэтому он запрашивает BOX17 для доступных серверов отладки.

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

Показаны две трубы. Однако только один из них является сервером отладки, а другой — сервером обработки, и нас это не интересует. Поэтому MainPipe должно быть правильным именем. Технический специалист использует следующую команду для запуска клиента отладки:

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

Использование защищенного сервера

Ниже приведен пример защищенного сервера. Этот сервер использует уровень безопасных сокетов с протоколом S-Channel TLS1. Отладчик будет искать сертификат в хранилище компьютера. Сертификат задается с помощью шестнадцатеричного отпечатка.

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