Compartilhar via


Ativando um servidor de conexão KD

O servidor de conexão KD incluído nas Ferramentas de Depuração para Windows é chamado de KdSrv (kdsrv.exe). Para ativar um servidor de conexão KD, abra uma janela do Prompt de Comando com privilégios elevados (Executar como Administrador) e insira o comando kdsrv.

Observação Você pode ativar um servidor de conexão KD sem ter privilégios elevados e os clientes de depuração poderão se conectar ao servidor. No entanto, os clientes não poderão descobrir um servidor de conexão KD, a menos que ele tenha sido ativado com privilégios elevados. Para obter informações sobre como descobrir servidores de depuração, consulte Pesquisando servidores de conexão KD.

Importante

Há considerações de segurança importantes ao usar a depuração remota. Para obter mais informações, incluindo informações sobre como habilitar o modo seguro, consulte Segurança durante de depuração remota e considerações de segurança para ferramentas de depuração do Windows.

O KdSrv dá suporte a vários protocolos de transporte: pipe nomeado (NPIPE), TCP, porta COM, pipe seguro (SPIPE) e SSL (camada de soquete seguro).

A sintaxe da linha de comando KdSrv depende do protocolo usado. As seguintes opções existem:

métodos de conexão recomendados, com alguns de segurança adicionais

kdsrv -t spipe:proto=Protocol,{certuser=Cert|machuser=Cert},pipe=PipeName[,hidden][,password=Password] 

kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket[,hidden][,password=Password] 

kdsrv -t ssl:proto=Protocol,{certuser=Cert|machuser=Cert},port=Socket,clicon=Client[,password=Password] 

métodos de conexão não seguros

kdsrv -t npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 

kdsrv -t tcp:port=Socket[,hidden][,password=Password][,ipversion=6][,IcfEnable] 

kdsrv -t tcp:port=Socket,clicon=Client[,password=Password][,ipversion=6] 

kdsrv -t com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] 

Parâmetros

Os parâmetros nos comandos anteriores têm os seguintes valores possíveis:

pipe=PipeName
Quando o protocolo NPIPE ou SPIPE é usado, PipeName é uma cadeia de caracteres que servirá como o nome do pipe. Cada nome de pipe deve identificar um servidor de processo exclusivo. Se você tentar reutilizar um nome de pipe, receberá uma mensagem de erro. pipeName não deve conter espaços ou aspas. pipeName pode incluir um código de formato deestilo numérico, como %x ou %d. Isso será substituído pela ID do processo do KdSrv. Um segundo código desse tipo será substituído pela ID de thread do KdSrv.

porta= de soquete
Quando o protocolo TCP ou SSL é usado, soquete é o número da porta do soquete.

Também é possível especificar um intervalo de portas separadas por dois-pontos. O KdSrv verificará cada porta nesse intervalo para ver se ela é gratuita. Se encontrar uma porta gratuita e nenhum erro ocorrer, o servidor de conexão KD será criado. O cliente inteligente terá que especificar a porta real que está sendo usada para se conectar ao servidor. Para determinar a porta real, use qualquer um dos métodos descritos em Pesquisar servidores de conexão KD; quando esse servidor de conexão KD for exibido, a porta será seguida por dois números separados por dois-pontos. O primeiro número será a porta real usada; o segundo pode ser ignorado. Por exemplo, se a porta foi especificada como porta=51:60e a porta 53 foi realmente usada, os resultados da pesquisa mostrarão "port=53:60". (Se você estiver usando o parâmetro clicon para estabelecer uma conexão inversa, o cliente inteligente poderá especificar um intervalo de portas dessa maneira, enquanto o servidor de conexão KD deverá especificar a porta real usada.)

clicon=client
Quando o protocolo TCP ou SSL é usado e o parâmetro clicon é especificado, uma conexão inversa será aberta. Isso significa que o servidor de conexão KD tentará se conectar ao cliente inteligente, em vez de permitir que o cliente inicie o contato. Isso pode ser útil se você tiver um firewall que esteja impedindo uma conexão na direção usual. cliente especifica o nome da rede ou o endereço IP do computador no qual o cliente inteligente existe ou será criado. As duas barras iniciais (\) são opcionais.

Como o servidor de conexão KD está procurando um cliente específico, você não pode conectar vários clientes ao servidor se usar esse método. Se a conexão for recusada ou estiver interrompida, você precisará reiniciar o servidor de processo. Um servidor de conexão KD de conexão reversa não será exibido quando alguém usar a opção -QR linha de comando para exibir todos os servidores ativos.

Observação Quando clicon é usado, é melhor iniciar o cliente inteligente antes que o servidor de conexão KD seja criado, embora a ordem usual (servidor antes do cliente) também seja permitida.

porta= COMPort
Quando o protocolo COM é usado, COMPort especifica a porta COM a ser usada. O prefixo "COM" é opcional , por exemplo, "com2" e "2" são aceitáveis.

baud= BaudRate
Quando o protocolo COM é usado, BaudRate especifica a taxa de baud na qual a conexão será executada. Qualquer taxa de baud compatível com o hardware é permitida.

channel= COMChannel
Se o protocolo COM for usado, comChannel especificar o canal COM a ser usado na comunicação com o cliente de depuração. Isso pode ser qualquer valor entre 0 e 254, inclusive. Você pode usar uma única porta COM para várias conexões usando números de canal diferentes. (Isso é diferente do uso de portas COM para um cabo de depuração – nessa situação, você não pode usar canais dentro de uma porta COM.)

proto= de Protocolo
Se o protocolo SSL ou SPIPE for usado, Protocol especificar o protocolo S-Channel (Canal Seguro). Isso pode ser qualquer uma das cadeias de caracteres tls1, pct1, ssl2 ou ssl3.

Cert
Se o protocolo SSL ou SPIPE for usado, Cert especificar o certificado. Isso pode ser o nome do certificado ou a impressão digital do certificado (a cadeia de caracteres de dígitos hexadecimal fornecidos pelo snapin do certificado). Se a sintaxe certuser=Cert for usada, o depurador procurará o certificado no repositório do sistema (o repositório padrão). Se a sintaxe machuser=Cert for usada, o depurador procurará o certificado no repositório de máquinas. O certificado especificado deve dar suporte à autenticação do servidor.

oculto
Impede que o servidor de conexão KD apareça quando alguém usa a opção de linha de comando -QR para exibir todos os servidores ativos.

password=Password
Requer que um cliente inteligente forneça a senha especificada para se conectar ao servidor de conexão KD. de senha pode ser qualquer cadeia de caracteres alfanumérica, com até doze caracteres de comprimento.

Importante

Usar uma senha com protocolo TCP, NPIPE ou COM oferece apenas uma pequena quantidade de proteção, pois a senha não está criptografada. Quando você usa uma senha junto com um protocolo SSL ou SPIPE, a senha é criptografada. Se você quiser estabelecer uma sessão remota mais segura, deverá usar o protocolo SSL ou SPIPE.

ipversion=6
(Ferramentas de depuração para Windows 6.6.07 e somente anteriores) Força o depurador a usar o IP versão 6 em vez da versão 4 ao usar o TCP para se conectar à Internet. No Windows Vista e versões posteriores, o depurador tenta fazer o padrão automático para o IP versão 6, tornando essa opção desnecessária.

IcfEnable
Faz com que o depurador habilite as conexões de porta necessárias para a comunicação de pipe TCP ou nomeada quando o Firewall de Conexão da Internet estiver ativo. Por padrão, o Firewall de Conexão com a Internet desabilita as portas usadas por esses protocolos. Quando IcfEnable é usado com uma conexão TCP, o depurador faz com que o Windows abra a porta especificada pelo parâmetro soquete . Quando IcfEnable é usado com uma conexão de pipe nomeada, o depurador faz com que o Windows abra as portas usadas para pipes nomeados (portas 139 e 445). O depurador não fecha essas portas após o término da conexão.