Senden eines maskierten Zeichenfolgenarrays an einen Pipe-Prozess

Senden eines maskierten Zeichenfolgenarrays an einen Pipe-Prozess

Ich habe ein Bash-Linux-Skript:

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

Jetzt versuche ich, es in PowerShell zu konvertieren, bin mir aber nicht sicher, wie die Echo-Syntax für diese Zeichenfolge lautet.

Wenn ich einfach Folgendes mache: echo '\x55\x55\xaa\xaa\x00\x00\x00\x00\x00\x00\x00\x50' | & .\nc -w 2 192.168.10.187 8000

Ich erhalte kein Ergebnis, bin mir aber nicht sicher, ob die Zeichenfolge überhaupt weitergeleitet wird ncoder ob es die falsche Zeichenfolge ist.

Antwort1

Verwenden Sie zum Überprüfen der Bytes das 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

Antwort2

Es sieht so aus, als ob es aufgrund von Ausgabebeschränkungen mit Powershell nicht möglich ist, also habe ich eine kleine C#-App geschrieben:

        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);
        } 

verwandte Informationen