Posso desligar um computador com apenas um pacote TCP

1

Então você pode acordar na lan, porque os cabos ethernet não são apenas para dados, eles transmitem amperagem também. Se eles estão diretamente conectados à placa-mãe, alguém pode jogar um pacote e desligar o seu PC? E é mais fácil nos hosts do Windows?

    
por user7306345 28.12.2016 / 01:32

1 resposta

1

O oposto do que você está perguntando é muito comum - Wake On LAN (WOL). Para responder à sua pergunta, será muito mais fácil explicar isso primeiro.

WOL

O WOL requer que esses recursos estejam presentes

  1. A rede no PC desligado deve ter suporte embutido em seu driver.

  2. A placa-mãe (BIOS) deve suportar um modo de baixa energia que ainda fornece uma pequena quantidade de energia para a NIC quando o PC está desligado.

  3. Um segundo dispositivo de PC / rede deve estar na LAN (para simplificar este exemplo simplificado - você pode fazer isso pela Internet) e deve ter software para gerar um pacote especial.

Quando o PC está desligado, o PC que irá comandá-lo para ligar cria um pacote mágico:

The magic packet is a broadcast frame containing anywhere within its payload 6 bytes of all 255 (FF FF FF FF FF FF in hexadecimal), followed by sixteen repetitions of the target computer's 48-bit MAC address, for a total of 102 bytes.

Este pacote é enviado para todos na LAN. Cada NIC verifica o endereço MAC e, se for uma correspondência, diz à placa-mãe para ligar o sistema.

Com um pacote UDP

Para sua pergunta, é muito mais fácil. O PC está ativo e o MB / NIC não precisa estar ciente de um pacote especial. Um programa simples, ou um script que aproveite um programa como o nc, pode ser configurado para escutar um pacote UDP em uma porta específica com conteúdo pré-definido.

Como o UDP é sem conexão, nenhuma sobrecarga (pacotes transacionais) está envolvida. Um único pacote é suficiente. O que acontece após o recebimento pode ser qualquer coisa - desligue, inicie outro programa, exclua o conteúdo do disco rígido ...

Você poderia enviar este pacote de qualquer lugar assumindo que o roteamento adequado existe - é apenas um ponto normal para apontar a mensagem UDP.

Você também pode, e na verdade DEVE, trabalhar com recursos de segurança no conteúdo do pacote para autenticar o pacote.

Na verdade, seria um projeto de introdução decente para programação de soquete.

Solução TCP

O uso de um pacote TCP requer mensagens gerais e indiretas para manter o soquete ativo, para que ele não atenda aos seus requisitos.

Mas você poderia configurar uma regra de firewall no PC usando iptables que identificaria o pacote TCP e o transformaria em algo utilizável como disparador para disparar um programa para executar a atividade desejada. Um pouco kludgey mas totalmente factível.

    
por 28.12.2016 / 07:42