Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Treiaron en 9 Febrero 2017, 10:04 am



Título: Ayuda sobre una creacion de un "Script"
Publicado por: Treiaron en 9 Febrero 2017, 10:04 am
Llevo ya un tiempo jugando a un juego llamado BoomBang y hace unos días me adentré a crear un script para dicho juego, el problema es que después de tenerlo ya todo no se como hacer para que envíe los packets al servidor( Las acciones que yo quiera que haga el keko )

Conexion1.cs
Código
  1.  
using System;
using System.Drawing;
using System.Net.Sockets;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using Script_Client_BB;

namespace Script_Client_BB
{
   internal class Conexion1
    {
        public static TcpClient client;
        public static TcpClient server;
        public static TcpListener listener;
        public static NetworkStream ServerStream;
        public static NetworkStream ClientStream;
        public static Form1 abc;
        public Conexion1(Form1 abcd)
        {
            Conexion1.abc = abcd;
        }
        public static void ConectarConBoomBang()
        {
            Politica.ExchangePolicies(ref Conexion1.listener, ref Conexion1.client, ref Conexion1.server);
            Conexion1.client = Conexion1.listener.AcceptTcpClient();
            Conexion1.ClientStream = Conexion1.client.GetStream();
            Conexion1.ServerStream = Conexion1.server.GetStream();
            Conexion1.abc.label4.Text = "Conectado";
            Conexion1.abc.label4.ForeColor = Color.Lime;


            Util1.UseButtons = true;
            while (Conexion1.server.Connected && Conexion1.client.Connected)
            {
                if (Conexion1.client.Available > 0)
                {
                    byte[] array = new byte[Conexion1.client.Available];
                    Conexion1.ClientStream.Read(array, 0, Conexion1.client.Available);
                    byte[] array2 = Encriptacion.Deciphe(array);
                    string @string = Encoding.Default.GetString(array2);
                    string[] array3 = Regex.Split(@string, "\0xB3B2");
                    if (!@string.Contains("\0xB1"))
                    {
                        if (Util1.ActivarS)
                        {
                            Util1.EscucharServidor(array2);
                        }
                        Util1.Servidor(@string);
                    }
                    else
                    {
                        string[] array4 = Regex.Split(@string, "\0xB1");
                        int num = array4.Length - 1;
                        for (int i = 1; i <= num; i++)
                        {
                            string text = "\0xB1" + array4;
                            byte[] bytes = Encoding.Default.GetBytes(text);
                            Util1.Servidor(text);
                            Util1.EscucharServidor(bytes);
                        }
                    }
                }
                if (Conexion1.server.Available > 0)
                {
                    byte[] array5 = new byte[Conexion1.server.Available];
                    Conexion1.ServerStream.Read(array5, 0, Conexion1.server.Available);
                    byte[] array2 = Encriptacion.Enciphe(array5, 135);
                    string @string = Encoding.Default.GetString(array2);
                    string[] array3 = Regex.Split(@string, "\0xB3B2");
                    if (!@string.Contains("\0xB1"))
                    {
                        if (Util1.ActivarC)
                        {
                            Util1.EscucharCliente(array2);
                        }
                        Util1.Cliente(@string);
                    }
                    else
                    {
                        string[] array4 = Regex.Split(@string, "\0xB1");
                        int num = array4.Length - 1;
                        for (int i = 1; i <= num; i++)
                        {
                            string text2 = "\0xB1" + array4;
                            byte[] bytes = Encoding.Default.GetBytes(text2);
                            Util1.Cliente(text2);
                            Util1.EscucharCliente(bytes);
                        }
                    }

                }

            }
        }

    }
}

Kids.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Fiddler;

namespace Script_Client_BB
{
    internal class Kids
    {//www.//bomfrank1un.esy.es
        public static void FiddlerApplicationStart()
        {
            FiddlerApplication.Startup(8877, true, true);
            FiddlerApplication.BeforeRequest += delegate(Session session)
            {
                if (session.uriContains("BoomBangKids.swf"))
                {
                    session.fullUrl = "http://bomfrank1un.esy.es/BBKids.swf";//Direcion de la BBKid
                }
            };
            FiddlerApplication.AfterSessionComplete += delegate(Session sesion)
            {
                if (sesion.uriContains("Kids.swf"))
                {
                    FiddlerApplication.Shutdown();
                }
            };
        }
    }
}

Encriptacion.cs

using System;


namespace Script_Client_BB
{
   internal class Encriptacion
    {
        private static int c1 = 135;
        private static int c2 = 135;
        private static int c3 = 135;
        private static int c4 = 135;
        private static int m1 = 0;
        private static int m2 = 0;
        private static int m3 = 0;
        private static int m4 = 0;
        private static int Rand(int RandN)
        {
            return 1103515245 * RandN + 12344;
        }
        public static byte[] Enciphe(byte[] byte_0, int Numero)
        {
            int num = byte_0.Length;
            byte[] array = new byte[num];
            int num2 = 0;
            while (num-- > 0)
            {
                int num3 = (int)byte_0[num2];
                int num4 = num3 ^ Encriptacion.c1 ^ m1;
                array[num2] = (byte)num4;
                num2++;
                Encriptacion.c1 = Encriptacion.Rand(Encriptacion.c1);
                Encriptacion.m1 = num4;
            }
            return array;
        }
        public static byte[] Deciphe(byte[] byte_0)
        {
            int num = byte_0.Length;
            byte[] array = new byte[num];
            int num2 = 0;
            while (num-- > 0)
            {
                int num3 = (int)byte_0[num2];
                int num4 = num3 ^ Encriptacion.c2 ^ m2;
                array[num2] = (byte)num4;
                num2++;
                Encriptacion.c2 = Encriptacion.Rand(Encriptacion.c2);
                Encriptacion.m2 = num4;
            }
            return array;
        }
        public static byte[] Encrypt(byte[] byte_0)
        {
            int num = byte_0.Length;
            byte[] array = new byte[num];
            int num2 = 0;
            while (num-- > 0)
            {
                int num3 = (int)byte_0[num2];
                int num4 = num3 ^ Encriptacion.c3 ^ m3;
                array[num2] = (byte)num4;
                num2++;
                Encriptacion.c3 = Encriptacion.Rand(Encriptacion.c3);
                Encriptacion.m3 = num3;
            }
            return array;
        }
        public static byte[] Encrypt2(byte[] byte_0)
        {
            int num = byte_0.Length;
            byte[] array = new byte[num];
            int num2 = 0;
            while (num-- > 0)
            {
                int num3 = (int)byte_0[num2];
                int num4 = num3 ^ Encriptacion.c4 ^ m4;
                array[num2] = (byte)num4;
                num2++;
                Encriptacion.c4 = Encriptacion.Rand(Encriptacion.c4);
                Encriptacion.m4 = num3;
            }
            return array;
        }
        public static byte[] Encryptation(byte[] byte_0)
        {
            int num = byte_0.Length;
            byte[] array = new byte[num];
            int num2 = 0;
            while (num-- > 0)
            {
                int num3 = (int)byte_0[num2];
                int num4 = num3 ^ Encriptacion.c3 ^ m3;
                array[num2] = (byte)num4;
                num2++;
                Encriptacion.c3 = Encriptacion.Rand(Encriptacion.c3);
                Encriptacion.m3 = num3;
            }
            return array;
        }
        public static byte[] Dencryptaction(byte[] byte_0)
        {
            int num = byte_0.Length;
            byte[] array = new byte[num];
            int num2 = 0;
            while (num-- > 0)
            {
                int num3 = (int)byte_0[num2];
                int num4 = num3 ^ Encriptacion.c2 ^ m2;
                array[num2] = (byte)num4;
                num2++;
                Encriptacion.c2 = Encriptacion.Rand(Encriptacion.c2);
                Encriptacion.m2 = num4;
            }
            return array;
        }
    }
}

Politica.cs
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace Script_Client_BB
{
   internal class Politica
   {
        public static void ExchangePolicies(ref TcpListener listener, ref TcpClient client, ref TcpClient server)
        {
            listener = new TcpListener(IPAddress.Any, 6923);//Puerto
            listener.Start();//www.BoomMod.esy.es /SoftGames
            client = listener.AcceptTcpClient();
            server = new TcpClient("188.165.61.115", 6923);//IP - Puerto
            while (client.Available < 1)
            {
                Thread.Sleep(10);
            }
            byte[] array = new byte[client.Available];
            client.GetStream().Read(array, 0, client.Available);
            server.GetStream().Write(array, 0, array.Length);
            server.GetStream().Flush();
            while (server.Available < 1)
            {
                Thread.Sleep(10);
            }
            array = new byte[server.Available];
            server.GetStream().Read(array, 0, server.Available);
            server.Close();
            server = new TcpClient("188.165.61.115", 6923);//IP - Puerto
            client.GetStream().Write(array, 0, array.Length);
            client.GetStream().Flush();
            client.Close();
        }
    }
}

Util1.cs

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using Script_Client_BB;

namespace Script_Client_BB
{
   internal class Util1
    {

        public static bool UseButtons = false;
        public static byte[] Server;
        public static byte[] Client;
        public static PacketLogger abc;

        public static bool ActivarS = false;
        public static bool ActivarC = false;
        private PacketLogger packetLogger;
        private Form1 form1;
        public static string Hora
        {
            get
            {
                return "[" + DateTime.Now.ToString("hh:mm:ss") + "] ";
            }
        }
        public Util1(PacketLogger abcd)
        {
            Util1.abc = abcd;
        }

        public Util1()
        {
            // TODO: Complete member initialization
        }



        public Util1(Form1 form1)
        {
            // TODO: Complete member initialization
            this.form1 = form1;
        }
        public static void EscucharCliente(byte[] byte_0)
        {
            byte b = byte_0[1];
            int num = (int)((byte_0[3] == 178) ? 0 : byte_0[3]);
            string @string = Encoding.Default.GetString(byte_0);
            if (Util1.ActivarC)
            {
                Util1.abc.richTextBox1.Text = string.Concat(new object[]
            {
               Util1.abc.richTextBox1.Text,
               "[",
               b,
               "/",
               num,
               "] Cliente: ",
               @string,
                    Environment.NewLine
            });
            }
        }
        public static void EscucharServidor(byte[] byte_0)
        {

            byte id = byte_0[1];
            byte type = byte_0[2];

            int num = (int)((byte_0[2] == 178) ? 178 : byte_0[3]);
            string @string = Encoding.Default.GetString(byte_0);
            if (Util1.ActivarS)
            {
                Util1.abc.richTextBox1.Text = string.Concat(new object[]
            {
               Util1.abc.richTextBox1.Text,
               "[",
               id,
               "/",
               num,
               "] Servidor: ",
               @string,
                    Environment.NewLine
            });
            }
            if (id == 186 && type == 178)
            {
                ////   [186/178] Paquete-> ±º³²1³²d³²2³²°
                string[] dividir = Regex.Split(@string, "³²");
                string cmd = dividir[2];
                if (cmd.StartsWith("@"))
                {
                    cmd = cmd.Replace("@", "").ToLower();
                    Comandos(cmd);
                }
            }
        }

        private static void Comandos(string cmd)
        {

            switch (cmd)
            {
                case "packetlogger":
                    Util1.Servidor("±†³²0³²3³²°");

                    break;
            }
        }

        public static void Servidor(string str)
        {
            Util1.Server = Encoding.Default.GetBytes(str);
            Util1.Server = Encriptacion.Encrypt(Util1.Server);
            Conexion1.ServerStream.Write(Util1.Server, 0, Util1.Server.Length);
            Conexion1.ServerStream.Flush();
        }
        public static object ComposeSpam(string str)
        {
            return string.Concat(new object[]
         {
            str,
            " [",
            new Random().Next(109000, 67534653),
            "]"
         });
        }
        public static void Cliente(string str)
        {
            Util1.Client = Encoding.Default.GetBytes(str);
            Util1.Client = Encriptacion.Encrypt2(Util1.Client);
            Conexion1.ClientStream.Write(Util1.Client, 0, Util1.Client.Length);
            Conexion1.ClientStream.Flush();
        }
        public static void SendUppercut()
        {
            int[] array = new int[]
         {
            431721,
            431721,
            431721
         };
            Random[] array2 = new Random[new Random().Next(array[1], array[2])];
        }
        public static string Send_Uppercuts(string str)
        {
            switch (str)
            {
                case "0":
                    Util1.Servidor("±‘³²0³²°");
                    break;
                case "1":
                    Util1.Servidor("±‘³²1³²°");
                    break;
                case "2":
                    Util1.Servidor("±‘³²2³²°");
                    break;
                case "3":
                    Util1.Servidor("±‘³²3³²°");
                    break;
                case "4":
                    Util1.Servidor("±‘³²4³²°");
                    break;
                case "5":
                    Util1.Servidor("±‘³²5³²°");
                    break;
                case "6":
                    Util1.Servidor("±‘³²6³²°");
                    break;
                case "7":
                    Util1.Servidor("±‘³²7³²°");
                    break;
                case "8":
                    Util1.Servidor("±‘³²8³²°");
                    break;
                case "9":
                    Util1.Servidor("±‘³²9³²°");
                    break;
                case "10":
                    Util1.Servidor("±‘³²10³²°");
                    break;
                case "11":
                    Util1.Servidor("±‘³²11³²°");
                    break;
            }
            return str;
        }

        public static string Color(string str)
        {
            string text = str;
            if (text != null)
            {
                if (!(text == "1"))
                {
                    if (!(text == "2"))
                    {
                        if (text == "3")
                        {
                            str = "11";
                        }
                    }
                    else
                    {
                        str = "6";
                    }
                }
                else
                {
                    str = "3";
                }
            }
            return str;
        }
    }
}

Bucles.cs

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace Script_Client_BB
{
   internal class Bucles
    {
        public static bool RepetirText = false;
        public static bool CathItemWalk = false;
        public static bool CopiarLook = false;
        public static bool Login = true;
        public static bool Teleport = false;
        public static string str_texto = string.Empty;
        public static List<string> DatoUsuario = new List<string>();
        private static string password;
        public static void ServerBucle(string str)
        {
            string[] array = Regex.Split(str, "³²");
            if (str.Contains("±x³y"))
            {
                Bucles.password = array[2];
            }
        }
        public static void ClientBucles(string str, RichTextBox richtextbox)
        {
            string[] array = Regex.Split(str, "³²");
            if (Bucles.Login)
            {
                if (str.Contains("±x³y"))
                {
                    Bucles.DatoUsuario.Add(string.Concat(new string[]
               {
                  "Nombre Keko: ",
                  array[2],
                  Environment.NewLine,
                  "Contraseña: ",
                  Bucles.password,
                  Environment.NewLine,
                  "Email: ",
                  array[5],
                  Environment.NewLine,
                  "ID: ",
                  array[10]
               }));
                }
            }
            if (Bucles.Teleport)
            {
                if (str.Contains("±º"))
                {
                    
                }
            }
        }
    }
}

Y esto es la acción que intente enviar
Util1.Servidor("±}³x³²16³²°");

Si alguien me pudiera ayudar lo agradecería bastante, creo que he llegado bastante lejos y no me quiero quedar estancado.
Código
  1.  


Título: Re: Ayuda sobre una creacion de un "Script"
Publicado por: dato000 en 9 Febrero 2017, 14:31 pm
mmm eso es c#, y sin tener idea de que es el juego, sin tener certeza del problema, ni lo que se quiere hacer, va a ser muy dificil hacerle soporte.

Porque no preguntas a los creadores del juego, al menos en el canal: https://www.youtube.com/channel/UCnqBDj86N3rbFvWwq1E_ZYQ podras encontrar algo mejor.


Título: Re: Ayuda sobre una creacion de un "Script"
Publicado por: Treiaron en 9 Febrero 2017, 21:38 pm
Lo que quiero hacer es que desde el programa ejecute una acción es decir, por ejemplo cambiar de keko ya que hay diferentes(yo soy rasta y mediante el script hacer que cambie a nerd por ejemplo) lo que pasa es que no se como ejecutar ese tipo de acciones y si alguien me pudiera ayudar a acabarlo seria genial, lo que quiero hacer es que el script haga las acciones que yo diga dentro del juego mediante este programa.

Gracias por la aportación.