コード例 #1
0
        public static void HandleAuthResponse(ref PacketReader packet, WorldClass session)
        {
            BitUnpack arg_28_0 = new BitUnpack(packet);

            packet.Skip(23);
            Globals.ClientSalt = packet.ReadBytes(16u);
            packet.ReadBytes(24u);
            arg_28_0.GetBit();
            packet.ReadBytes(AuthenticationHandler.smethod_1(packet));
            while (true)
            {
IL_921:
                uint arg_82F_0 = 2017539580u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_82F_0 ^ 973532324u)) % 57u)
                    {
                    case 0u:
                        TimeHandler.HandleSetTimezoneInformation(ref session);
                        arg_82F_0 = (num * 3644867839u ^ 4102176202u);
                        continue;

                    case 1u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        arg_82F_0 = (num * 3925958146u ^ 429357566u);
                        continue;
                    }

                    case 2u:
                    {
                        BitPack bitPack;
                        bitPack.Flush();
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        arg_82F_0 = (num * 3843609867u ^ 274333066u);
                        continue;
                    }

                    case 3u:
                    {
                        PacketWriter packetWriter;
                        byte[,] array;
                        int num2;
                        packetWriter.WriteUInt8(array[num2, 1]);
                        arg_82F_0 = (num * 2139226297u ^ 222787957u);
                        continue;
                    }

                    case 4u:
                    {
                        int num3 = 0;
                        arg_82F_0 = (num * 1275993637u ^ 3289780354u);
                        continue;
                    }

                    case 5u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        BitPack bitPack;
                        bool    flag;
                        bitPack.Write <bool>(flag);
                        bool bit;
                        bitPack.Write <bool>(bit);
                        bitPack.Flush();
                        arg_82F_0 = (num * 190331667u ^ 3544293151u);
                        continue;
                    }

                    case 6u:
                    {
                        PacketWriter packetWriter;
                        int          num3;
                        byte[,] array2;
                        packetWriter.WriteUInt8(array2[num3, 0]);
                        arg_82F_0 = 979003297u;
                        continue;
                    }

                    case 7u:
                    {
                        SHA256Managed hashAlgorithm_;
                        byte[]        array3;
                        AuthenticationHandler.smethod_4(hashAlgorithm_, array3, array3.Length >> 1, array3.Length - (array3.Length >> 1));
                        SHA256Managed hashAlgorithm_2;
                        SHA256Managed hashAlgorithm_3;
                        AuthenticationHandler.smethod_3(hashAlgorithm_2, AuthenticationHandler.smethod_5(hashAlgorithm_3), 0, 32, AuthenticationHandler.smethod_5(hashAlgorithm_3), 0);
                        arg_82F_0 = (num * 4247721102u ^ 2164875264u);
                        continue;
                    }

                    case 8u:
                        goto IL_921;

                    case 9u:
                    {
                        int num3;
                        byte[,] array2;
                        arg_82F_0 = ((num3 < AuthenticationHandler.smethod_9(array2) / 2) ? 942732371u : 402681424u);
                        continue;
                    }

                    case 10u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        arg_82F_0 = (num * 1272726928u ^ 3573012072u);
                        continue;
                    }

                    case 11u:
                    {
                        int num4;
                        arg_82F_0 = ((num4 != 32) ? 1613600137u : 94715230u);
                        continue;
                    }

                    case 12u:
                    {
                        SHA256Managed hashAlgorithm_;
                        SHA256Managed hashAlgorithm_2;
                        AuthenticationHandler.smethod_4(hashAlgorithm_2, AuthenticationHandler.smethod_5(hashAlgorithm_), 0, 32);
                        AuthenticationHandler.sha2_3_grml = AuthenticationHandler.smethod_5(hashAlgorithm_2);
                        int num4 = 0;
                        int num5 = 0;
                        arg_82F_0 = (num * 1594528258u ^ 4035022218u);
                        continue;
                    }

                    case 13u:
                        arg_82F_0 = (num * 3592674904u ^ 3437742173u);
                        continue;

                    case 14u:
                        AuthenticationHandler.HandleConnectTo(session, 3724, 1, null);
                        arg_82F_0 = (num * 4096365546u ^ 2720471261u);
                        continue;

                    case 15u:
                    {
                        bool         bit          = false;
                        PacketWriter packetWriter = new PacketWriter(ServerMessage.AuthResponse, true);
                        arg_82F_0 = (num * 1668503324u ^ 4008787019u);
                        continue;
                    }

                    case 16u:
                    {
                        int num4;
                        arg_82F_0 = ((num4 < 40) ? 1976385685u : 1159001732u);
                        continue;
                    }

                    case 17u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        arg_82F_0 = (num * 3445906520u ^ 4063066220u);
                        continue;
                    }

                    case 18u:
                    {
                        BitPack bitPack;
                        bitPack.Write <int>(0);
                        bitPack.Write <int>(0);
                        arg_82F_0 = (num * 621848300u ^ 3406194050u);
                        continue;
                    }

                    case 19u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        arg_82F_0 = (num * 3867729530u ^ 1908424397u);
                        continue;
                    }

                    case 20u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        arg_82F_0 = (num * 1394835192u ^ 145004486u);
                        continue;
                    }

                    case 21u:
                    {
                        PacketWriter packetWriter;
                        byte[,] array2;
                        packetWriter.WriteInt32(AuthenticationHandler.smethod_9(array2) / 2);
                        byte[,] array;
                        packetWriter.WriteInt32(AuthenticationHandler.smethod_9(array) / 2);
                        arg_82F_0 = (num * 3125389306u ^ 6579303u);
                        continue;
                    }

                    case 22u:
                    {
                        byte[,] array;
                        int num2;
                        arg_82F_0 = ((num2 < AuthenticationHandler.smethod_9(array) / 2) ? 248887578u : 276684735u);
                        continue;
                    }

                    case 23u:
                    {
                        int num4;
                        num4++;
                        int num5;
                        num5++;
                        arg_82F_0 = (num * 2780937424u ^ 1515612061u);
                        continue;
                    }

                    case 24u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        packetWriter.WriteUInt32(0u);
                        arg_82F_0 = (num * 192068700u ^ 4062459581u);
                        continue;
                    }

                    case 25u:
                    {
                        byte[,] expr_4C2 = new byte[12, 2];
                        AuthenticationHandler.smethod_8(expr_4C2, fieldof(< PrivateImplementationDetails >.struct7_0).FieldHandle);
                        byte[,] array    = expr_4C2;
                        byte[,] expr_4D7 = new byte[19, 2];
                        AuthenticationHandler.smethod_8(expr_4D7, fieldof(< PrivateImplementationDetails >.B1151C6C80B16E10C2CAD0E6524E20DB89985020).FieldHandle);
                        byte[,] array2 = expr_4D7;
                        arg_82F_0      = (num * 775829900u ^ 1086551519u);
                        continue;
                    }

                    case 26u:
                        Manager.WorldMgr.SendHotfixes(session);
                        arg_82F_0 = (num * 2297567052u ^ 3529457580u);
                        continue;

                    case 27u:
                    {
                        BitPack bitPack;
                        bitPack.Write <int>(0);
                        arg_82F_0 = (num * 2838081966u ^ 1401284309u);
                        continue;
                    }

                    case 28u:
                    {
                        BitPack bitPack;
                        bitPack.Write <int>(0);
                        arg_82F_0 = (num * 1276988104u ^ 1332711413u);
                        continue;
                    }

                    case 29u:
                        new PacketWriter(ServerMessage.EnableCrypt, false);
                        session.Account = new Account
                        {
                            Id               = 1,
                            Email            = Module.smethod_35 <string>(2737471542u),
                            PasswordVerifier = Module.smethod_36 <string>(1789483827u),
                            Salt             = Module.smethod_36 <string>(2533110280u),
                            IP               = "",
                            SessionKey       = "",
                            SecurityFlags    = 0,
                            OS               = Module.smethod_36 <string>(2605452825u),
                            Expansion        = 5,
                            IsOnline         = false
                        };
                        arg_82F_0 = (num * 3099364030u ^ 778753807u);
                        continue;

                    case 30u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt8(6);
                        arg_82F_0 = (num * 960037049u ^ 4251590658u);
                        continue;
                    }

                    case 31u:
                    {
                        int num3;
                        num3++;
                        arg_82F_0 = (num * 2647826660u ^ 3081572510u);
                        continue;
                    }

                    case 32u:
                    {
                        int num5 = 0;
                        arg_82F_0 = (num * 2855624283u ^ 1934999727u);
                        continue;
                    }

                    case 33u:
                    {
                        PacketWriter packetWriter;
                        session.Send(ref packetWriter);
                        arg_82F_0 = 394845639u;
                        continue;
                    }

                    case 34u:
                    {
                        PacketWriter packetWriter;
                        BitPack      bitPack = new BitPack(packetWriter, 0uL, 0uL, 0uL, 0uL);
                        arg_82F_0 = (num * 3839928679u ^ 2674270183u);
                        continue;
                    }

                    case 35u:
                    {
                        BitPack bitPack;
                        bitPack.Write <int>(0);
                        arg_82F_0 = (num * 1275983207u ^ 2624941272u);
                        continue;
                    }

                    case 36u:
                        new PacketWriter(ServerMessage.SuspendComms, true).WriteUInt32(20u);
                        arg_82F_0 = (num * 3412051023u ^ 3748987744u);
                        continue;

                    case 37u:
                    {
                        PacketWriter packetWriter;
                        byte[,] array;
                        int num2;
                        packetWriter.WriteUInt8(array[num2, 0]);
                        arg_82F_0 = 1152594217u;
                        continue;
                    }

                    case 38u:
                    {
                        BitPack bitPack;
                        bitPack.Write <int>(0);
                        arg_82F_0 = (num * 1357121348u ^ 1027085582u);
                        continue;
                    }

                    case 39u:
                    {
                        SHA256Managed hashAlgorithm_2 = AuthenticationHandler.smethod_6();
                        byte[]        array3;
                        SHA256Managed hashAlgorithm_3;
                        AuthenticationHandler.smethod_4(hashAlgorithm_3, array3, 0, array3.Length >> 1);
                        arg_82F_0 = (num * 3349724847u ^ 3826309419u);
                        continue;
                    }

                    case 40u:
                    {
                        bool flag = true;
                        arg_82F_0 = (num * 2469044217u ^ 389509509u);
                        continue;
                    }

                    case 41u:
                    {
                        int num4;
                        int num5;
                        AuthenticationHandler.sessionKey[num4] = AuthenticationHandler.sha2_3_grml[num5];
                        arg_82F_0 = 121248238u;
                        continue;
                    }

                    case 42u:
                    {
                        SHA256Managed hashAlgorithm_2;
                        AuthenticationHandler.sha2_3_grml = AuthenticationHandler.smethod_5(hashAlgorithm_2);
                        arg_82F_0 = (num * 3186781206u ^ 568291510u);
                        continue;
                    }

                    case 43u:
                    {
                        SHA256Managed hashAlgorithm_2;
                        AuthenticationHandler.smethod_7(hashAlgorithm_2);
                        SHA256Managed hashAlgorithm_3;
                        AuthenticationHandler.smethod_3(hashAlgorithm_2, AuthenticationHandler.smethod_5(hashAlgorithm_3), 0, 32, AuthenticationHandler.smethod_5(hashAlgorithm_3), 0);
                        arg_82F_0 = (num * 273351295u ^ 2423198895u);
                        continue;
                    }

                    case 44u:
                    {
                        PacketWriter packetWriter;
                        int          num3;
                        byte[,] array2;
                        packetWriter.WriteUInt8(array2[num3, 1]);
                        arg_82F_0 = (num * 3258273611u ^ 1239887723u);
                        continue;
                    }

                    case 46u:
                    {
                        HMACSHA256 expr_182 = AuthenticationHandler.smethod_2(Globals.SessionKey);
                        AuthenticationHandler.smethod_3(expr_182, Globals.ServerSalt, 0, Globals.ServerSalt.Length, Globals.ServerSalt, 0);
                        AuthenticationHandler.smethod_3(expr_182, Globals.ClientSalt, 0, Globals.ClientSalt.Length, Globals.ClientSalt, 0);
                        AuthenticationHandler.smethod_4(expr_182, AuthenticationHandler.arr1, 0, AuthenticationHandler.arr1.Length);
                        byte[]        array3          = AuthenticationHandler.smethod_5(expr_182);
                        SHA256Managed hashAlgorithm_3 = AuthenticationHandler.smethod_6();
                        SHA256Managed hashAlgorithm_  = AuthenticationHandler.smethod_6();
                        arg_82F_0 = (num * 1844584669u ^ 1891453460u);
                        continue;
                    }

                    case 47u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt32(0u);
                        arg_82F_0 = (num * 1008232628u ^ 30771472u);
                        continue;
                    }

                    case 48u:
                    {
                        int num2 = 0;
                        arg_82F_0 = (num * 1707978014u ^ 2368748458u);
                        continue;
                    }

                    case 49u:
                    {
                        SHA256Managed hashAlgorithm_2;
                        AuthenticationHandler.smethod_3(hashAlgorithm_2, AuthenticationHandler.sha2_3_grml, 0, 32, AuthenticationHandler.sha2_3_grml, 0);
                        SHA256Managed hashAlgorithm_;
                        AuthenticationHandler.smethod_4(hashAlgorithm_2, AuthenticationHandler.smethod_5(hashAlgorithm_), 0, 32);
                        arg_82F_0 = (num * 1428097193u ^ 1748239185u);
                        continue;
                    }

                    case 50u:
                    {
                        BitPack bitPack;
                        bitPack.Write <int>(0);
                        arg_82F_0 = (num * 2377469058u ^ 4212942142u);
                        continue;
                    }

                    case 51u:
                    {
                        SHA256Managed hashAlgorithm_2;
                        AuthenticationHandler.smethod_3(hashAlgorithm_2, AuthenticationHandler.sha2_3_grml, 0, 32, AuthenticationHandler.sha2_3_grml, 0);
                        arg_82F_0 = (num * 116417243u ^ 3699589835u);
                        continue;
                    }

                    case 52u:
                    {
                        bool flag;
                        arg_82F_0 = (((!flag) ? 1888186652u : 1737280166u) ^ num * 1515350310u);
                        continue;
                    }

                    case 53u:
                    {
                        PacketWriter packetWriter;
                        packetWriter.WriteUInt8(6);
                        arg_82F_0 = (num * 200448416u ^ 3957963237u);
                        continue;
                    }

                    case 54u:
                    {
                        BitPack bitPack;
                        bitPack.Flush();
                        arg_82F_0 = (num * 2761573231u ^ 325309565u);
                        continue;
                    }

                    case 55u:
                        arg_82F_0 = (num * 1571901877u ^ 4021021157u);
                        continue;

                    case 56u:
                    {
                        int num2;
                        num2++;
                        arg_82F_0 = (num * 3035465689u ^ 1114317311u);
                        continue;
                    }
                    }
                    return;
                }
            }
        }
コード例 #2
0
        public static void HandleAuthContinuedSession(ref PacketReader packet, WorldClass2 session)
        {
            AuthenticationHandler.session2 = session;
            Manager.WorldMgr.Sessions.SingleOrDefault <KeyValuePair <ulong, WorldClass> >();
            while (true)
            {
IL_1B7:
                uint arg_17D_0 = 2389353796u;
                while (true)
                {
                    uint num;
                    switch ((num = (arg_17D_0 ^ 2381408322u)) % 11u)
                    {
                    case 0u:
                        goto IL_1B7;

                    case 1u:
                    {
                        SHA1Managed expr_127 = AuthenticationHandler.smethod_18();
                        byte[]      array;
                        AuthenticationHandler.smethod_3(expr_127, array, 0, array.Length, array, 0);
                        byte[] array2;
                        AuthenticationHandler.smethod_3(expr_127, array2, 0, 40, array2, 0);
                        byte[] byte_;
                        AuthenticationHandler.smethod_4(expr_127, byte_, 0, 4);
                        AuthenticationHandler.smethod_5(expr_127);
                        new PacketWriter(ServerMessage.EnableCrypt, false);
                        PacketWriter packetWriter = new PacketWriter(ServerMessage.ResumeComms, true);
                        arg_17D_0 = (num * 3949002163u ^ 3941582883u);
                        continue;
                    }

                    case 2u:
                    {
                        PacketWriter packetWriter;
                        AuthenticationHandler.session2.Send(ref packetWriter);
                        arg_17D_0 = (num * 3904375768u ^ 568160447u);
                        continue;
                    }

                    case 3u:
                        packet.Read <ulong>();
                        packet.ReadBytes(20u);
                        arg_17D_0 = (((AuthenticationHandler.session2 != null) ? 2852424687u : 3500428177u) ^ num * 109821150u);
                        continue;

                    case 4u:
                    {
                        byte[] array2 = AuthenticationHandler.sessionKey;
                        arg_17D_0 = (num * 2163954332u ^ 1605872583u);
                        continue;
                    }

                    case 5u:
                        return;

                    case 6u:
                    {
                        byte[] byte_ = AuthenticationHandler.smethod_17(2549515048u);
                        arg_17D_0 = (num * 4131246918u ^ 2980239949u);
                        continue;
                    }

                    case 7u:
                        packet.Read <ulong>();
                        arg_17D_0 = (num * 3561050817u ^ 404291365u);
                        continue;

                    case 8u:
                        arg_17D_0 = ((Manager.WorldMgr.AddSession2(0uL, ref AuthenticationHandler.session2) ? 213636815u : 1576825925u) ^ num * 3435104658u);
                        continue;

                    case 9u:
                    {
                        byte[] array = AuthenticationHandler.smethod_12(AuthenticationHandler.smethod_16(), Module.smethod_34 <string>(1006528553u));
                        arg_17D_0 = 2341857576u;
                        continue;
                    }
                    }
                    goto Block_3;
                }
            }
            Block_3 :;
        }