[SOLUCIONADO] Ocultar la ip ante Cb0t

Iniciado por Abraham20, Marzo 08, 2016, 05:57:46 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 08, 2016, 05:57:46 PM Ultima modificación: Marzo 19, 2016, 12:40:48 AM por Gabriela
Hola,
Tengo windows 10
Me voy a Inicio; despues a Ajustes; luego a Redes e internet; luego me voy a Proxy;
En Configuración de proxy manual prendo la opcion: Usar un servidor proxy;

Luego me voy a esta pagina: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En el filtro solo cambio la opcion de tipos; ahi le pongo high anonymity;

Pero cuando me conecto a un servidor Sb0t, este sabe todavia de que pais soy.
Porque? Como puedo hacer para que no lo sepa?

Gracias y saludos :)

En mi Windows no veo ese archivo por ningún lado, de todos modos tampoco he entendido tu pregunta, quieres asignar una dirección IP estática?  ???

Saludos

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En mi Windows no veo ese archivo por ningún lado, de todos modos tampoco he entendido tu pregunta, quieres asignar una dirección IP estática?  ???

Saludos

Porque no tienes Cb0t.

Igualmente desconozco como funciona.

Saludos.



Hola Stiuvert,
si tienes Cb0t 2.70 instalado, haz esto:

Hagz clic en el botón Inicio, en Panel de control, en Apariencia y personalización y, por último, en Opciones de carpeta.


Haz clic en la ficha Ver.


En Configuración avanzada, haz clic en Mostrar archivos, carpetas y unidades ocultos y, a continuación, haga clic en Aceptar.

Si no lo tienes instalado lo puedes descargar de aqui: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Una vez hecho esto, anda a C:\Users\""\AppData\Local\cb0t\data
Ahi estara ese archivo.

Yo queria agregarle a este documento XML la funcion <ip> </ip>. Osea yo escribo un ip. Y que esa ip la vea la sala a la que me conecte cuando esta pregunte por mi ip.

Gracias y saludos :)


Ah, no tenía ni idea.

Me parece que poca ayuda puedo brindarte.


Buenas.

Estuve viendo muy por encima (muy de reojo) el programa, ya que actualmente no puedo verlo bien, por lo que veo es como un cliente de chat para Ares, ahí está la cuestión.

Si es solo un cliente, no hay forma aparente de "falsear" una dirección IP por el método que decís, ya que calculo que el servidor de chat obtiene la IP del request y no obtiene algún valor del XML.

A lo que me refiero, si querés tener otra IP en el chat, realmente tendrías que tener otra IP, como un VPN, digamos.

Ahora, si se pudiera controla el código del servidor y el cliente, ahí sería mejor, ya que se puede modificar el servidor para obtener los valores de IP del XML.

Lamento si me equivoqué en algo o no es la respuesta que esperabas, nuevamente quiero decir que no pude ver muy bien el programa, no me dan los tiempos.

¡Saludos!
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Marzo 09, 2016, 09:51:56 AM #7 Ultima modificación: Marzo 09, 2016, 10:05:56 AM por Abraham20
Hola Nobody,
muchisisisimas gracias por ver el programa; te lo agradezco de verdad;

A que te refieres con request?
Y otra cosa: Yo crei que yo le mandaba un paquete al servidor y el servidor pregunta por mi ip mediante el paquete que yo le mande. No es asi?

gracias de nuevo :)

Buenas.

Básicamente lo que quise decir es que el programa hace una petición de conexión con el servidor, el servidor la recibe y la permite/rechaza. Uno de los identificadores de la conexión es la dirección IP de donde proviene.

Emm, para expicarme mejor (disculpá, no se explicar bien xD), es como funciona el navegador o algún juego online.

Con el ejemplo del navegador, obtiene tu dirección IP y el servidor (digamos, PHP) la obtiene (en el caso de PHP: $_SERVER['REMOTE_ADDR']).

En realidad es más complejo, pero esta es la única forma en que me puedo expresar, nuevamente, no se explicar bien jaja

Saludos.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola,
no te hagas problema; te explicaste perfectamente;
hare un nuevo post para preguntar por la ip;
en cuanto a este post, la duda no se resolvio como yo queria pero con tu ayuda se aclaro el asunto

muchas gracias ;)

Hola,

me alegro que tu duda se haya (en parte) solucionado. Te recomiendo que no abras un nuevo tema si tiene que ver con lo mismo, así mantenemos una organización en el foro. Si tenés alguna otra duda con respecto a la dirección IP/CB0t con gusto se puede responder.

Saludos.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Marzo 10, 2016, 05:53:06 AM #11 Ultima modificación: Marzo 10, 2016, 07:21:18 AM por Stiuvert
Hola,
:o oh no; recien ahora ceo tu mensaje. Ya Abri un nuevo tema. Lo dejo como esta o lo escribo en este post mi duda y pido que me cierren el nuevo post que hice ayer?

Saludos

MODERADOR: Seguimos mejor aquí




Hola,
de donde saca mi ip Cb0t 2.70?

Les dejo dos archivos .cs que provienen del codigo fuente de Cb0t 2.70:

AresDataPacket.cs:

Código: php
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;

namespace Ares.PacketHandlers
{
    /// <summary>
    /// Helpful Ares Packet Processor Object
    /// </summary>
    public class AresDataPacket
    {
        private int Position = 0;
        private List<byte> Data = new List<byte>();

        /// <summary>
        /// Creates an empty Ares Data Packet Object ready for Writing
        /// </summary>
        public AresDataPacket()
        {
            this.Data.Clear();
            this.Position = 0;
        }

        /// <summary>
        /// Creates a populated Ares Data Packet Object ready for Reading
        /// </summary>
        /// <param name="bytes">The Byte Array of the Received Ares Packet</param>
        public AresDataPacket(byte[] bytes)
        {
            this.Data.Clear();
            this.Position = 0;
            this.Data.AddRange(bytes);
        }

        /// <summary>
        /// Returns size of byte array
        /// </summary>
        /// <returns></returns>
        public int GetByteCount()
        {
            return this.Data.Count;
        }

        /// <summary>
        /// Examine current byte without incrementing the reader index
        /// </summary>
        /// <returns></returns>
        public byte PeekByte()
        {
            return this.Data[this.Position];
        }

        /// <summary>
        /// Return the reader index of the first instance of a byte
        /// </summary>
        /// <param name="b"></param>
        /// <returns></returns>
        public int IndexOf(byte b)
        {
            return this.Data.IndexOf(b, this.Position);
        }

        /// <summary>
        /// Return number of bytes unread in the packet reader
        /// </summary>
        /// <returns></returns>
        public int Remaining()
        {
            return this.Data.Count - this.Position;
        }

        /// <summary>
        /// Manually set the position of the Packet Reader
        /// </summary>
        /// <param name="position"></param>
        public void SetPosition(int position)
        {
            this.Position = position;
        }

        /// <summary>
        /// Force the Packet Reader to move forward one byte
        /// </summary>
        public void SkipByte()
        {
            this.Position++;
        }

        /// <summary>
        /// Force the Packet Reader to move forward a specified number of bytes
        /// </summary>
        /// <param name="count"></param>
        public void SkipBytes(int count)
        {
            this.Position += count;
        }

        /// <summary>
        /// Positions the Packet Reader ahead of the first 3 bytes which are reserved for Ares Protocol ID and Length
        /// </summary>
        public void PositionReaderAfterHeader()
        {
            this.Position = 3;
        }

        /// <summary>
        /// Packet Reader returns the next byte
        /// </summary>
        /// <returns></returns>
        public byte ReadByte()
        {
            byte tmp = this.Data[this.Position];
            this.Position++;
            return tmp;
        }

        /// <summary>
        /// Packet Reader returns the final byte
        /// </summary>
        /// <returns></returns>
        public byte LastByte()
        {
            return this.Data[this.Data.Count - 1];
        }

        /// <summary>
        /// Packet Reader returns the next specified number of bytes
        /// </summary>
        /// <param name="count"></param>
        /// <returns></returns>
        public byte[] ReadBytes(int count)
        {
            if ((this.Data.Count - this.Position) < count) return null;
            byte[] tmp = new byte[count];
            Array.Copy(this.Data.ToArray(), this.Position, tmp, 0, tmp.Length);
            this.Position += count;
            return tmp;
        }

        /// <summary>
        /// Packet Reader returns all remaining bytes
        /// </summary>
        /// <returns></returns>
        public byte[] ReadBytes()
        {
            byte[] tmp = new byte[this.Data.Count - this.Position];
            Array.Copy(this.Data.ToArray(), this.Position, tmp, 0, tmp.Length);
            this.Position += tmp.Length;
            return tmp;
        }

        /// <summary>
        /// Packet Reader returns the next 16 byte GUID
        /// </summary>
        /// <returns></returns>
        public Guid ReadGuid()
        {
            if ((this.Data.Count - this.Position) < 16) return new Guid();
            byte[] tmp = new byte[16];
            Array.Copy(this.Data.ToArray(), this.Position, tmp, 0, tmp.Length);
            this.Position += 16;
            return new Guid(tmp);
        }

        /// <summary>
        /// Packet Reader returns the next 2 byte Integer
        /// </summary>
        /// <returns></returns>
        public ushort ReadInt16()
        {
            if ((this.Data.Count - this.Position) < 2) return 0;
            ushort tmp = (ushort)BitConverter.ToInt16(this.Data.ToArray(), this.Position);
            this.Position += 2;
            return tmp;
        }

        /// <summary>
        /// Packet Reader returns the next 4 byte Integer
        /// </summary>
        /// <returns></returns>
        public uint ReadInt32()
        {
            if ((this.Data.Count - this.Position) < 4) return 0;
            uint tmp = (uint)BitConverter.ToInt32(this.Data.ToArray(), this.Position);
            this.Position += 4;
            return tmp;
        }

        /// <summary>
        /// Packet Reader returns the next 8 byte Integer
        /// </summary>
        /// <returns></returns>
        public ulong ReadInt64()
        {
            if ((this.Data.Count - this.Position) < 8) return 0;
            ulong tmp = (ulong)BitConverter.ToInt64(this.Data.ToArray(), this.Position);
            this.Position += 8;
            return tmp;
        }

        /// <summary>
        /// Packet Reader returns the next IPAddress Object
        /// </summary>
        /// <returns></returns>
        public IPAddress ReadIP()
        {
            if ((this.Data.Count - this.Position) < 4) return null;
            byte[] tmp = new byte[4];
            Array.Copy(this.Data.ToArray(), this.Position, tmp, 0, tmp.Length);
            this.Position += 4;
            return new IPAddress(tmp);
        }

        /// <summary>
        /// Packet Reader returns the next 4 byte Unix Timestamp DateTime Object
        /// </summary>
        /// <returns></returns>
        public DateTime ReadUnixTimeStamp()
        {
            if ((this.Data.Count - this.Position) < 4) return new DateTime();
            DateTime tmp = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
            tmp = tmp.AddSeconds(BitConverter.ToInt32(this.Data.ToArray(), this.Position));
            this.Position += 4;
            return tmp;
        }

        /// <summary>
        /// Packet Reader returns the next Null Terminated String
        /// </summary>
        /// <returns></returns>
        public String ReadString()
        {
            if (this.Position >= this.Data.Count) return String.Empty;
            int split = this.Data.IndexOf(0, this.Position);
            byte[] tmp = new byte[split > -1 ? (split - this.Position) : (this.Data.Count - this.Position)];
            Array.Copy(this.Data.ToArray(), this.Position, tmp, 0, tmp.Length);
            this.Position = split > -1 ? (split + 1) : this.Data.Count;
            return Encoding.UTF8.GetString(tmp);
        }

        /// <summary>
        /// Packet Writer adds a byte to the end of the packet
        /// </summary>
        /// <param name="b">The single Byte to be added</param>
        public void WriteByte(byte b)
        {
            this.Data.Add(b);
        }

        /// <summary>
        /// Packet Writer adds a byte array to the end of the packet
        /// </summary>
        /// <param name="b">The Byte Array to be added</param>
        public void WriteBytes(byte[] b)
        {
            this.Data.AddRange(b);
        }

        /// <summary>
        /// Packet Writer adds a 16 byte GUID to the end of the packet
        /// </summary>
        /// <param name="g">The GUID to be added</param>
        public void WriteGuid(Guid g)
        {
            this.Data.AddRange(g.ToByteArray());
        }

        /// <summary>
        /// Packet Writer adds a 2 byte Integer to the end of the packet
        /// </summary>
        /// <param name="i">The 16 bit Integer to be added</param>
        public void WriteInt16(ushort i)
        {
            this.Data.AddRange(BitConverter.GetBytes(i));
        }

        /// <summary>
        /// Packet Writer adds a 4 byte Integer to the end of the packet
        /// </summary>
        /// <param name="i">The 32 bit Integer to be added</param>
        public void WriteInt32(uint i)
        {
            this.Data.AddRange(BitConverter.GetBytes(i));
        }

        /// <summary>
        /// Packet Writer adds a 8 byte Integer to the end of the packet
        /// </summary>
        /// <param name="i">The 64 bit Integer to be added</param>
        public void WriteInt64(ulong i)
        {
            this.Data.AddRange(BitConverter.GetBytes(i));
        }

        /// <summary>
        /// Packet Writer converts a dotted IP Address to bytes and adds to the end of the packet
        /// </summary>
        /// <param name="ip_string">The Dotted IP Address to be added</param>
        public void WriteIP(String ip_string)
        {
            this.Data.AddRange(IPAddress.Parse(ip_string).GetAddressBytes());
        }

        /// <summary>
        /// Packet Writer converts a numeric IP Address to bytes and adds to the end of the packet
        /// </summary>
        /// <param name="ip_numeric">The Numeric IP Address to be added</param>
        public void WriteIP(long ip_numeric)
        {
            this.Data.AddRange(new IPAddress(ip_numeric).GetAddressBytes());
        }

        /// <summary>
        /// Packet Writer converts a 4 element byte array into Network Order and adds to the end of the packet
        /// </summary>
        /// <param name="ip_bytes">The 4 element Byte Array to be added</param>
        public void WriteIP(byte[] ip_bytes)
        {
            if (ip_bytes.Length != 4) return;
            this.Data.AddRange(new IPAddress(ip_bytes).GetAddressBytes());
        }

        /// <summary>
        /// Packet Writer converts an IPAddress Object into bytes and adds to the end of the packet
        /// </summary>
        /// <param name="ip_object">The IPAddress Object to be added</param>
        public void WriteIP(IPAddress ip_object)
        {
            this.Data.AddRange(ip_object.GetAddressBytes());
        }

        /// <summary>
        /// Packet Writer adds a 4 byte Integer representing the current Unix Time to the end of the packet
        /// </summary>
        public void WriteUnixTimeStamp()
        {
            TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0));
            this.Data.AddRange(BitConverter.GetBytes((uint)ts.TotalSeconds));
        }

        /// <summary>
        /// Packet Writer adds a Null Terminated String to the end of the packet
        /// </summary>
        /// <param name="text">The String to be added</param>
        public void WriteString(String text)
        {
            this.Data.AddRange(Encoding.UTF8.GetBytes(text));
            this.Data.Add(0);
        }

        /// <summary>
        /// Packet Writer adds a String to the end of the packet
        /// </summary>
        /// <param name="text">The String to be added to the packet</param>
        /// <param name="null_terminated">Set to False if the string does not require Null Termination</param>
        public void WriteString(String text, bool null_terminated)
        {
            this.Data.AddRange(Encoding.UTF8.GetBytes(text));
            if (null_terminated) this.Data.Add(0);
        }

        /// <summary>
        /// Convert AresDataPacket Object into a Byte Array
        /// </summary>
        /// <returns></returns>
        public byte[] ToByteArray()
        {
            return this.Data.ToArray();
        }

        /// <summary>
        /// Convert AresDataPacket Object into a correctly formatted Ares Packet Byte Array ready for sending
        /// </summary>
        /// <param name="packet_id">The Ares Protocol Packet Identification Number</param>
        /// <returns></returns>
        public byte[] ToAresPacket(byte packet_id)
        {
            List<byte> tmp = new List<byte>(this.Data.ToArray());
            tmp.Insert(0, packet_id);
            tmp.InsertRange(0, BitConverter.GetBytes((ushort)(tmp.Count - 1)));
            return tmp.ToArray();
        }

        /// <summary>
        /// Convert AresDataPacket Object into a corrently formatted Ares DC Packet
        /// </summary>
        /// <param name="packet_id">The Ares Protocol Packet Identification Number</param>
        /// <returns></returns>
        public byte[] ToAresDCPacket(byte packet_id)
        {
            List<byte> tmp = new List<byte>(this.Data.ToArray());
            tmp.Insert(0, packet_id);
            tmp.InsertRange(0, BitConverter.GetBytes((ushort)(tmp.Count - 1)));
            tmp.Insert(0, 0);
            return tmp.ToArray();
        }
    }
}



Nota: AresDataPacket.cs tambien aparece en Sb0t 4.60 y en otras versiones.

Packet.cs:

Código: php
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using Ares.PacketHandlers;

namespace cb0t_chat_client_v2
{
    class Packets
    {
        public delegate void SendPacketDelegate(byte[] packet);

        public static byte[] CustomPM(String target, String text)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_pm_msg", true);
            packet.WriteString(target, true);
            String str = text;
            str = Helpers.FormatAresColorCodes(str);
            byte[] msg = Helpers.SoftEncrypt(target, Encoding.UTF8.GetBytes(str));
            packet.WriteBytes(msg);
            return packet.ToAresPacket(200);
        }

        public static byte[] DisableCustomNames(bool yes)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_no_custom_names", true);
            byte[] buf = packet.ToAresPacket(yes ? (byte)202 : (byte)203);
            packet = new AresDataPacket();
            packet.WriteBytes(buf);
            return packet.ToAresPacket(250);
        }

        public static byte[] CustomEmoteItem(CEmoteItem item)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString(item.Shortcut);
            packet.WriteByte((byte)item.Size);
            packet.WriteBytes(item.Image);
            byte[] buf = packet.ToAresPacket(221);
            packet = new AresDataPacket();
            packet.WriteBytes(buf);
            return packet.ToAresPacket(250);
        }

        public static byte[] CustomEmoteFlag()
        {
            return new byte[] { 3, 0, 250, 0, 0, 220 };
        }

        public static byte[] CustomEmoteDelete(String shortcut)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString(shortcut);
            byte[] buf = packet.ToAresPacket(222);
            packet = new AresDataPacket();
            packet.WriteBytes(buf);
            return packet.ToAresPacket(250);
        }

        public static byte[] EnableClips(bool main, bool pvt)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteByte(main ? (byte)1 : (byte)0);
            packet.WriteByte(pvt ? (byte)1 : (byte)0);
            byte[] buf = packet.ToAresPacket(205);
            packet = new AresDataPacket();
            packet.WriteBytes(buf);
            return packet.ToAresPacket(250);
        }

        public static byte[] VCIgnore(String name)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString(name);
            byte[] buf = packet.ToAresPacket(210);
            packet = new AresDataPacket();
            packet.WriteBytes(buf);
            return packet.ToAresPacket(250);
        }

        public static byte[] LoginPacket()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteGuid(Settings.my_guid);
            packet.WriteInt16(666);
            packet.WriteByte(0);
            packet.WriteInt16(Settings.dc_port); // dc port
            packet.WriteIP("0.0.0.0");
            packet.WriteInt16(65535);
            packet.WriteInt32(0); // speed no longer needed
            packet.WriteString(Settings.my_username, true);
            packet.WriteString("cb0t 2.70 client", true);
            packet.WriteIP(Settings.local_ip);
            packet.WriteIP(Settings.external_ip); // external
            packet.WriteByte(7); // browse + zlib
            packet.WriteBytes(new byte[] { 0, 0, 0 });
            packet.WriteByte(Settings.age);
            packet.WriteByte(Settings.sex);
            packet.WriteByte(Settings.country);
            packet.WriteString(Settings.region);
            return packet.ToAresPacket(2);
        }

        public static byte[] UpdatePacket()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteInt16(666);
            packet.WriteByte(7); // browse + zlib
            packet.WriteIP("0.0.0.0");
            packet.WriteInt16(0);
            packet.WriteIP(Settings.external_ip); // external
            packet.WriteBytes(new byte[] { 0, 0, 0 });
            packet.WriteByte(Settings.age);
            packet.WriteByte(Settings.sex);
            packet.WriteByte(Settings.country);
            packet.WriteString(Settings.region);
            return packet.ToAresPacket(4);
        }

        public static Byte[] FakeFilePacket(String filename)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteByte(0);
            packet.WriteInt32(69);
            packet.WriteInt16(4);
            packet.WriteString("cb0t123456789012345", false);
            packet.WriteByte((byte)filename.Length);
            packet.WriteInt16((ushort)(filename.Length + filename.Length + 4));
            packet.WriteByte((byte)filename.Length);
            packet.WriteByte(15);
            packet.WriteString(filename, false);
            packet.WriteByte((byte)filename.Length);
            packet.WriteByte((byte)1);
            packet.WriteString(filename, false);
            return packet.ToAresPacket(50);
        }

        public static byte[] TextPacket(String text)
        {
            AresDataPacket packet = new AresDataPacket();

            if (text.Length > 250)
                text = text.Substring(0, 250);

            packet.WriteString(Helpers.FormatAresColorCodes(text), false);
            return packet.ToAresPacket(10);
        }

        public static byte[] EmotePacket(String text)
        {
            AresDataPacket packet = new AresDataPacket();

            if (text.Length > 250)
                text = text.Substring(0, 250);

            packet.WriteString(Helpers.FormatAresColorCodes(text), false);
            return packet.ToAresPacket(11);
        }

        public static byte[] FontPacket()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteByte((byte)Settings.p_font_size);
            packet.WriteString(Settings.p_font_name, true);
            packet.WriteByte((byte)Settings.p_name_col);
            packet.WriteByte((byte)Settings.p_text_col);
            byte[] buf = packet.ToAresPacket(204);
            packet = new AresDataPacket();
            packet.WriteBytes(buf);
            return packet.ToAresPacket(250);
        }

        public static byte[] FontOffPacket()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteBytes(new byte[] { 0, 0 });
            byte[] buf = packet.ToAresPacket(204);
            packet = new AresDataPacket();
            packet.WriteBytes(buf);
            return packet.ToAresPacket(250);
        }

        public static byte[] PMPacket(String name, String text)
        {
            AresDataPacket packet = new AresDataPacket();

            if (text.Length > 200)
                text = text.Substring(0, 200);

            packet.WriteString(name);
            packet.WriteString(Helpers.FormatAresColorCodes(text), false);
            return packet.ToAresPacket(25);
        }

        public static byte[] CommandPacket(String text)
        {
            AresDataPacket packet = new AresDataPacket();

            if (text.Length > 200)
                text = text.Substring(0, 200);

            packet.WriteString(Helpers.FormatAresColorCodes(text), false);
            return packet.ToAresPacket(74);
        }

        public static byte[] BrowseRequestPacket(String target, ushort ident, byte type)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteInt16(ident);
            packet.WriteByte(type);
            packet.WriteString(target, false);
            return packet.ToAresPacket(52);
        }

        public static byte[] IgnoreUserPacket(String name, bool ignore)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteByte(ignore ? (byte)1 : (byte)0);
            packet.WriteString(name);
            return packet.ToAresPacket(45);
        }

        public static byte[] NudgePacket(String source, String target)
        {
            byte[] temp = Encoding.UTF8.GetBytes("0" + source);
            temp = AresCryptography.e67(temp, 1488);
            temp = Encoding.Default.GetBytes(Convert.ToBase64String(temp));

            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_nudge");
            packet.WriteString(target);
            packet.WriteBytes(temp);
            return packet.ToAresPacket(200);
        }

        public static byte[] NudgeRejectPacket(String target)
        {
            byte[] temp = Encoding.UTF8.GetBytes("1");
            temp = AresCryptography.e67(temp, 1488);
            temp = Encoding.Default.GetBytes(Convert.ToBase64String(temp));

            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_nudge");
            packet.WriteString(target);
            packet.WriteBytes(temp);
            return packet.ToAresPacket(200);
        }

        public static byte[] PasswordPacket(String password)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString(password, false);
            return packet.ToAresPacket(82);
        }

        public static byte[] AutoLoginPasswordPacket(ChannelObject cObj)
        {
            List<byte> temp = new List<byte>();
            temp.AddRange(SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(cObj.password)));
            temp.InsertRange(0, cObj.ip.GetAddressBytes());
            temp.InsertRange(0, BitConverter.GetBytes(cObj.cookie));

            AresDataPacket packet = new AresDataPacket();
            packet.WriteBytes(SHA1.Create().ComputeHash(temp.ToArray()));
            return packet.ToAresPacket(7);
        }

        public static byte[] PersonalMessagePacket()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString(Settings.personal_message, false);
            return packet.ToAresPacket(13);
        }

        public static byte[] UserlistSongPacket(String text)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteByte(7);
            packet.WriteString(text, false);
            return packet.ToAresPacket(13);
        }

        public static byte[] AvatarPacket()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteBytes(Avatar.avatar_small);
            return packet.ToAresPacket(9);
        }

        public static byte[] ScribbleOncePacket(String target, byte[] data)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_scribble_once");
            packet.WriteString(target);
            packet.WriteBytes(data);
            return packet.ToAresPacket(200);
        }

        public static byte[] ScribbleFirstPacket(String target, byte[] data)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_scribble_first");
            packet.WriteString(target);
            packet.WriteBytes(data);
            return packet.ToAresPacket(200);
        }

        public static byte[] ScribbleChunkPacket(String target, byte[] data)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_scribble_chunk");
            packet.WriteString(target);
            packet.WriteBytes(data);
            return packet.ToAresPacket(200);
        }

        public static byte[] ScribbleLastPacket(String target, byte[] data)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_scribble_last");
            packet.WriteString(target);
            packet.WriteBytes(data);
            return packet.ToAresPacket(200);
        }

        public static byte[] ScribbleRejectedPacket(String target)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_scribble_reject");
            packet.WriteString(target);
            packet.WriteByte(1);
            return packet.ToAresPacket(200);
        }

        public static byte[] LagCheckPacket(String name, ulong time)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_lag_check");
            packet.WriteString(name);
            packet.WriteInt64(time);
            return packet.ToAresPacket(200);
        }

        public static byte[] LatencyCheckPacket(String name)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_latency_check");
            packet.WriteString(name);
            TimeSpan ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0));
            packet.WriteInt64((ulong)ts.TotalMilliseconds);
            return packet.ToAresPacket(200);
        }

        public static byte[] WritingPacket(bool writing)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_writing");
            packet.WriteByte(writing ? (byte)2 : (byte)1);
            return packet.ToAresPacket(201);
        }

        public static byte[] OnlineStatusPacket()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("cb0t_online_status");
            packet.WriteByte((byte)Settings.my_status);
            return packet.ToAresPacket(201);
        }

        // Direct Chat

        public static byte[] DCSessionRequestString()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("CHAT CONNECT/0.1", false);
            packet.WriteBytes(new byte[] { 13, 10, 13, 10 });

            return packet.ToByteArray();
        }

        public static byte[] DCVersionString()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("CHAT/0.1 200 OK", false);
            packet.WriteBytes(new byte[] { 13, 10, 13, 10 });

            return packet.ToByteArray();
        }

        public static byte[] DCMyInfo()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString("|01:0.0.0.0:0|" + Settings.external_ip.ToString() + ":" + Settings.dc_port, false);
            packet.WriteByte(10);
            packet.WriteString("|02:" + Settings.my_username, false);
            packet.WriteByte(10);
            packet.WriteString("|03:2.1.1.3035", false);
            packet.WriteByte(10);
            packet.WriteBytes(new byte[] { 0, 10, 0, 29 });
            packet.WriteIP(Settings.external_ip);
            packet.WriteInt16(Settings.dc_port);
            packet.WriteIP(Settings.local_ip);
            packet.WriteByte(0);
            packet.WriteByte((byte)(Settings.my_username.Length + 1));
            packet.WriteBytes(new byte[] { 0, 26 });
            packet.WriteString(Settings.my_username);
            packet.WriteBytes(new byte[] { 0, 5, 0, 12 });
            packet.WriteIP(Settings.local_ip);
            packet.WriteByte(1);

            return packet.ToByteArray();
        }

        public static byte[] DCPing()
        {
            return new AresDataPacket().ToAresDCPacket(10);
        }

        public static byte[] DCPong()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteIP(Settings.external_ip);
            packet.WriteInt16(Settings.dc_port);
            packet.WriteIP(Settings.local_ip);

            return packet.ToAresDCPacket(30);
        }

        public static byte[] DCTextMessage(String text)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString(text, false);

            return packet.ToAresDCPacket(1);
        }

        public static byte[] DCSendFileRequest(ulong filesize, ushort referral, uint rnd, String filename)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteInt64(filesize);
            packet.WriteInt16(referral);
            packet.WriteInt32(rnd);
            packet.WriteString(filename);
            packet.WriteByte(0);

            return packet.ToAresDCPacket(2);
        }

        public static byte[] DCAcceptFileRequest(String filename)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteBytes(new byte[8]);
            packet.WriteString(filename);
            packet.WriteByte(0);

            return packet.ToAresDCPacket(3);
        }

        public static byte[] DCDeclineFileRequest(String filename)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteString(filename);

            return packet.ToAresDCPacket(4);
        }

        public static byte[] DCFileChunk(ushort referral, byte[] data)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteInt16(referral);
            packet.WriteBytes(data);

            return packet.ToAresDCPacket(5);
        }

        public static byte[] DCAvatarChunkPacket(byte[] data)
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteBytes(data);
            return packet.ToAresDCPacket(6);
        }

        public static byte[] DCAvatarEndPacket()
        {
            return new AresDataPacket().ToAresDCPacket(6);
        }

    }
}


Les sirve esta parte de Packets.cs?
Linea 83 a 104:
Código: php
 public static byte[] LoginPacket()
        {
            AresDataPacket packet = new AresDataPacket();
            packet.WriteGuid(Settings.my_guid);
            packet.WriteInt16(666);
            packet.WriteByte(0);
            packet.WriteInt16(Settings.dc_port); // dc port
            packet.WriteIP("0.0.0.0");
            packet.WriteInt16(65535);
            packet.WriteInt32(0); // speed no longer needed
            packet.WriteString(Settings.my_username, true);
            packet.WriteString("cb0t 2.70 client", true);
            packet.WriteIP(Settings.local_ip);
            packet.WriteIP(Settings.external_ip); // external
            packet.WriteByte(7); // browse + zlib
            packet.WriteBytes(new byte[] { 0, 0, 0 });
            packet.WriteByte(Settings.age);
            packet.WriteByte(Settings.sex);
            packet.WriteByte(Settings.country);
            packet.WriteString(Settings.region);
            return packet.ToAresPacket(2);
        }


Gracias :)

Podes agregarle lo que quieras al xml, pero probablemente el programa que lo parsea ignore etiquetas que no espera. Tambien es posible que tire algun error por encontrar una etiqueta inesperada


Seguramente el servidor saque tu ip de la conexion. Para entender mejor eso, tenes que saber como funcionan los protocolos de red.

Vos te queres conectar al servidor y le mandas "hola don servidor, quiero conectarme a usted. Mi ip es 1.1.1.1 y estoy usando el puerto 1234"
El servidor te contesta a esa ip
Si vos la falseas, podes mandar cosas pero nunca vas a obtener la respuesta porque se la esta mandando a 1.1.1.1. Sin obtener respuestas, el bot no va a andar

Eso si usa udp. Si usa tcp, al comienzo de la conexion hay una comprobacion de que tu ip sea la de verdad, mas o menos asi:
>"hola don servidor, quiero conectarme a usted. Mi ip es 1.1.1.1 y estoy usando el puerto 1234"
<"hola 1.1.1.1, quiero comprobar que no estes falseando tu ip. Respondeme el siguiente codigo secreto: 159789"
>"OK, 159789"

Y ahi sigue la comunicacion con lo que quieran mandar las aplicaciones
Si tu ip no es 1.1.1.1 no vas a tener el codigo correcto y el servidor va a cerrar la conexion

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Podes ocultar tu ip con un proxy, tor, etc. hay tutoriales en el foro

Buenas nuevamente.

Estuve viendo un poco el código, y si, es posible modificar los datos del paquete que se envian (packet.cs), el problema es que no se podrá validar, como dijo nuestro amigo @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

La solución más recomendable (por no decir la más eficiente) es usar un VPN/Proxy, hay muchos en Internet, en el foro hay tutoriales y demás. El TOR también es una alternativa buena.

Saludos.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola,
muchisimas gracias genios de la vida por explicarme como funciona esto;
Tiene bastante esperiencia en esto. El foro necesitara especialmente su ayuda.

Queria hacer un post nuevo.
Pero como creo que esta mal sigo aqui:


Tengo windows 10
Me voy a Inicio; despues a Ajustes; luego a Redes e internet; luego me voy a Proxy;
En Configuración de proxy manual prendo la opcion: Usar un servidor proxy;

Luego me voy a esta pagina: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En el filtro solo cambio la opcion de tipos; ahi le pongo high anonymity;

Pero cuando me conecto a un servidor Sb0t, este sabe todavia de que pais soy.
Porque? Como puedo hacer para que no lo sepa?

Gracias y saludos :)

Del modo que lo estás haciendo es para el navegador web de Microsoft.

Utiliza VPN para aplicarlo en toda tu conexión, por ejemplo tienes Hotspot VPN.

Saludos

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta no edites el contenido de los preguntas una vez respondidas, por que se pierde el sentido de las respuestas.

Saludos!, EPSILON.

Deberias configurar el proxy en las opciones del programa. No se si las del bot o si eso corre adentro del ares

Marzo 14, 2016, 04:40:50 PM #18 Ultima modificación: Marzo 14, 2016, 05:07:06 PM por rollth
Hola Stiuvert; hola seth,
VPN es bueno y lo de configurar la proxy tambien;
pero para que me entiendan a lo que quiero llegar:


hay alguna manera o algun programa que permita que me conecte a una proxy que solamente se aplique al programa que yo indique?
Es decir que para chatear en ares quiero una proxy; pero para navegar en el internet al mismo tiempo quiero mi ip pública normal

Espero que me exprese bien

Gracias y saludos :)


Lo puedes configurar manualmente.

En Ares por ejemplo, lo podrías hacer desde "Panel de control" en la barra de herramientas, pestaña "Red" y "Usar Socks4 proxy" o "Usar proxy SOCKS5" en la sección "Proxy".

Socks4 proxy permite el acceso a los servidores de seguridad a través de una conexión TCP. Socks5 proxy permite el acceso a través de IPv4 o IPv6.

Ingresa tu dirección de servidor proxy, nombre de usuario y contraseña y luego haz clic en "Comprobar conexión".

Lista de proxys: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta