示例#1
0
        public void Send(byte[] buffer)
        {
            if (buffer[0] == 0x7F) //HACK IF we change the Twofish key this needs to be changed
            {
                mysocket.Close();
                mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
                IPAddress serverip = IPAddress.Parse(ip);
                mysocket.Connect(new IPEndPoint(serverip, port));
                mysocket.ReceiveBufferSize = 32768;
                display("Reconnect!");
                //GameServerLogin();
            }

            //    StateObject newstate = new StateObject();
            //mysocket.BeginSend(newstate, 0, Data.Length, Sockets.SocketFlags.None, EndSend, newstate);
            //mysocket.BeginSend(buffer,0,buffer.Length,SocketFlags.None,EndSend,newstate);
            if (!mysocket.Connected)
            {
                display("Dissconnected!!"); Dissconnect();
            }

            if ((bLoginCrypt == true) & ((buffer[0] == 0x80) | (buffer[0] == 0xA0) | (buffer[0] == 0xD9)))
            {
                display("PreCrypt: " + BitConverter.ToString(buffer));
                UOEncryption.LoginCryptObj loginobj = new UOEncryption.LoginCryptObj();

                buffer = LoginEncryption.clientDecrypt(buffer);
                display("Login Crypted: " + BitConverter.ToString(buffer));
            }
            if ((bTwofishcrypt) & (buffer[0] != 0x7F)) // ox75 is the start of the key you use on reconnect. HACK should be linked to twofishkeyint
            {
                display("PreCrypt: " + BitConverter.ToString(buffer));
                // Twofish.serverEncrypt(ref buffer, buffer.Length);
                Twofish.clientEncryptData(ref buffer, buffer.Length);
                display("TwoFished!" + BitConverter.ToString(buffer));
            }
            mysocket.Send(buffer);

            if (bDebug)
            {
                display("Sent >>" + BitConverter.ToString(buffer));
            }
        }
示例#2
0
        public void Send(byte[] buffer)
        {
            if (buffer[0] == 0x7F) //HACK IF we change the Twofish key this needs to be changed
            {
                mysocket.Close();
                mysocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
                IPAddress serverip = IPAddress.Parse(ip);
                mysocket.Connect(new IPEndPoint(serverip, port));
                mysocket.ReceiveBufferSize = 32768;
                display("Reconnect!");
                //GameServerLogin();
            }

                //    StateObject newstate = new StateObject();
            //mysocket.BeginSend(newstate, 0, Data.Length, Sockets.SocketFlags.None, EndSend, newstate);
            //mysocket.BeginSend(buffer,0,buffer.Length,SocketFlags.None,EndSend,newstate);
            if (!mysocket.Connected) { display("Dissconnected!!"); Dissconnect(); }

            if ((bLoginCrypt == true) & ((buffer[0] == 0x80) | (buffer[0] == 0xA0) | (buffer[0] == 0xD9)))
            {
                display("PreCrypt: " + BitConverter.ToString(buffer));
                UOEncryption.LoginCryptObj loginobj = new UOEncryption.LoginCryptObj();

                    buffer = LoginEncryption.clientDecrypt(buffer);
                    display("Login Crypted: " + BitConverter.ToString(buffer));
            }
            if ((bTwofishcrypt) & (buffer[0] != 0x7F)) // ox75 is the start of the key you use on reconnect. HACK should be linked to twofishkeyint
            {
                display("PreCrypt: " + BitConverter.ToString(buffer));
               // Twofish.serverEncrypt(ref buffer, buffer.Length);
                Twofish.clientEncryptData(ref buffer, buffer.Length);
                display("TwoFished!" + BitConverter.ToString(buffer));
            }
            mysocket.Send(buffer);

            if(bDebug) { display("Sent >>" + BitConverter.ToString(buffer)); }
        }