X-Git-Url: https://git.sesse.net/?p=rdpsrv;a=blobdiff_plain;f=rdp5.c;h=f84b8882146b14edf8b3cde385669adbef77196b;hp=1612643de0bf497390679563be8eb812b39e80fe;hb=634d61e2e7f380a8c695cc49323f975393b604c8;hpb=55a546ab6b5970438e6cca1a962ec4e7dd669d11 diff --git a/rdp5.c b/rdp5.c index 1612643..f84b888 100644 --- a/rdp5.c +++ b/rdp5.c @@ -55,7 +55,7 @@ rdp5_send(STREAM s, BOOL encryption) out_uint8(s, datalen & 0xff); if (encryption) { - datalen -= 8; + datalen -= 11; sec_sign(s->p, 8, sec_sign_key, rc4_key_len, s->p + 8, datalen); sec_encrypt(s->p + 8, datalen); @@ -88,6 +88,11 @@ rdp5_process(STREAM s, BOOL encryption) switch (type) { + case 16 ... 31: + // unknown, but looks like some sort of + // "count" of how many packets there are + printf("Unimplemented RDP5 opcode (count?) %d, skipping\n", type); + break; case 32: { // mouse listen_on_vnc = 1; uint16 device_flags, x, y; @@ -119,7 +124,7 @@ rdp5_process(STREAM s, BOOL encryption) break; } default: - printf("Unimplemented RDP5 opcode %d (len=%u)\n", type, length); + printf("Unimplemented RDP5 opcode %d\n", type); return; } }