Well in most of them they just look for the 1st byte and ignore the rest.
Taken From Nushi's Dos Chat
if(Sock.Recv(Buff, 1, 5) != 1){ // Recv Timeout
puts("Negotiation Failed !");
return 0;
}
if(Buff[0] != 0x31){ // Recv Except 0x31
puts("Negotiation Failed !");
return 0;
}
// Make Key Block
CreateCryptKeyID(0x0057, (BYTE *)Buff); // Chat Client Key ID is 0x0057
/End Take
See it only looks for the 1. I dont get why the server sends those.