Enviando um array de strings com escape para um processo canalizado

0

Eu tenho um script bash linux:

echo -e '\x55\x55\xaa\xaa\x00\x00\x00\x00\x00\x00\x00\x50' | netcat -w 2 192.168.10.187 8000

Agora, estou tentando convertê-lo para o PowerShell, mas não tenho certeza de qual é a sintaxe do eco para essa linha de caracteres.

Quando acabei de fazer: echo '\x55\x55\xaa\xaa\x00\x00\x00\x00\x00\x00\x00\x50' | & .\nc -w 2 192.168.10.187 8000

Não obtenho resultado, mas não tenho certeza se a string de caracteres é canalizada para nc ou se é a string de caracteres errada.

    
por YesMan85 21.06.2017 / 15:50

2 respostas

1

Para verificar os bytes, use o cmdlet Format-Hex.

PS > $bytes = [Byte[]] (0x55,0x55,0xaa,0xaa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50)
PS > $bytes | Format-Hex
           Path:
           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000   55 55 AA AA 00 00 00 00 00 00 00 50              UUªª.......P
    
por 21.06.2017 / 19:34
0

Parece que isso não pode ser feito com o Powershell devido a limitações de saída, então eu escrevi um minúsculo aplicativo C #:

        using (var stdout = Console.OpenStandardOutput())
        {
            var buffer = new Byte[]
            {
                0x55,
                0x55,
                0xaa,
                0xaa,
                0x00,
                0x00,
                0x00,
                0x00,
                0x00,
                0x00,
                0x00,
                0x50
            };
            stdout.Write(buffer, 0, buffer.Length);
        } 
    
por 22.06.2017 / 04:35

Tags