elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Analisis de Sb0t 5.38
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Analisis de Sb0t 5.38  (Leído 3,942 veces)
Nolohagan

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Analisis de Sb0t 5.38
« en: 6 Abril 2017, 11:29 am »

Hola,

estaba interesado en un determinado aumento y me gustario decir de que se trata ya que con "determinado aumento" nadie entendera nada.

Bueno para eso quisieres mostrarle un pedazo de codigo de Sb0t 5.38:

El pedazo es demasiado largo asi que se los mostrare desde una pagina web:

https://github.com/AresChat/sb0t/blob/v5.38/core/AresClient.cs

Bueno concentremonos en el metodo de desconeccion que vendira siendo el proceso de ban:

Código
  1. public void Disconnect(bool ghost)
  2.        {
  3.            while (this.data_out.Count > 0)
  4.            {
  5.                try
  6.                {
  7.                    byte[] packet;
  8.  
  9.                    if (this.data_out.TryPeek(out packet))
  10.                    {
  11.                        this.Sock.Send(packet);
  12.                        Stats.DataSent += (ulong)packet.Length;
  13.  
  14.                        while (!this.data_out.TryDequeue(out packet))
  15.                            continue;
  16.                    }
  17.                    else break;
  18.                }
  19.                catch { break; }
  20.            }
  21.  
  22.            try { this.Sock.Disconnect(false); }
  23.            catch { }
  24.            try { this.Sock.Shutdown(SocketShutdown.Both); }
  25.            catch { }
  26.            try { this.Sock.Close(); }
  27.            catch { }
  28.            try { this.Sock.Dispose(); }
  29.            catch { }
  30.  
  31.            this.SocketConnected = false;
  32.  
  33.            if (!ghost)
  34.                this.SendDepart();
  35.            else if (this.LoggedIn && !this.Quarantined)
  36.            {
  37.                this.LoggedIn = false;
  38.                Events.Parting(this);
  39.  
  40.                if (ServerCore.Linker.Busy && ServerCore.Linker.LoginPhase == LinkLeaf.LinkLogin.Ready)
  41.                    ServerCore.Linker.SendPacket(LinkLeaf.LeafOutbound.LeafPart(ServerCore.Linker, this));
  42.  
  43.                Events.Parted(this);
  44.            }
  45.  
  46.            this.LoggedIn = false;
  47.        }
  48.  

Y es este aumento:

while (this.data_out.Count > 0)

el data_out.Count el que me interesa. Porque el unico metodo en el que se puede ver un aumento(porque sino siempre tiene menos) es este:

Código:
public void SendPacket(byte[] packet)
        {
            this.data_out.Enqueue(packet);
        }

Y en este metodo SendPacket..... que es lo que se hace para que se aumente el dato_out?


Gracias y saludos


« Última modificación: 6 Abril 2017, 18:05 pm por Eleкtro » En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #1 en: 6 Abril 2017, 14:48 pm »

Creo que debes analizar el tipo d variable que es this.data_out antes que nada.

Según el link que pusiste:

Código
  1. private ConcurrentQueue<byte[]> data_out = new ConcurrentQueue<byte[]>();

Entonces, debes analizar la clase ConcurrentQueue: https://msdn.microsoft.com/en-us/library/dd267265(v=vs.110).aspx

De ahí seguro evacúas tus preguntas.

Saludos!


En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Nolohagan

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #2 en: 6 Abril 2017, 16:48 pm »



Entonces, debes analizar la clase ConcurrentQueue: https://msdn.microsoft.com/en-us/library/dd267265(v=vs.110).aspx


oh dios mio, porque no puedo suicidar?

Viste que largo es el articulo?

Tengo que aprender todos los metodos, propiedades, implemenos interfaces, constructores de ConcurrentQueue(T). Tu te las sabes todas?

En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #3 en: 6 Abril 2017, 17:10 pm »

Tu te las sabes todas?

No. En mi caso trato de aprender lo que hace la clase en gral. y los metodos/propiedades que necesito.

Para eso, debes leer la documentación...

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Nolohagan

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #4 en: 6 Abril 2017, 17:24 pm »

Ok,

listo. Ahora ya analize el tipo de variable. Sigamos por favor.

En el metodo SendPacket..... que es lo que se hace para que se aumente el dato_out?

Gracias hermano
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #5 en: 6 Abril 2017, 17:34 pm »

Ok,

listo. Ahora ya analize el tipo de variable. Sigamos por favor.

En el metodo SendPacket..... que es lo que se hace para que se aumente el dato_out?

Gracias hermano

Lee la documentación:

Código
  1. public void SendPacket(byte[] packet)
  2.        {
  3.            this.data_out.Enqueue(packet);
  4. }

Citar
System_CAPS_pubmethod   Enqueue(T)   

Adds an object to the end of the ConcurrentQueue<T>.

Info del método: https://msdn.microsoft.com/en-us/library/dd287262(v=vs.110).aspx

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Nolohagan

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #6 en: 6 Abril 2017, 17:59 pm »

Si ya se eso.

Lo que yo queria saber es que hace que la cantidad crezca. El metodo se llama SendPacket osea cada vez que el servidor envie paquetes al cliente creze la cantidad o que?

Gracias
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.524


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #7 en: 6 Abril 2017, 18:06 pm »

Si ya se eso.

Lo que yo queria saber es que hace que la cantidad crezca. El metodo se llama SendPacket osea cada vez que el servidor envie paquetes al cliente creze la cantidad o que?

Gracias

Mira el ejemplo de la documentación de la clase (el link que te dí al principio). Está al final de todo. Con eso deberías entender cómo funciona la cosa.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #8 en: 6 Abril 2017, 18:12 pm »

El compañero @MCKSys Argentina ya te lo ha dicho todo. data_out es un objeto de tipo cola (Queue), algo parecido a la representación abstracta de una pila (Stack) en .NET, cuando se añade un elemento a la cola, la propiedad Count del objeto aumenta, evidéntemente.

en este metodo SendPacket..... que es lo que se hace para que se aumente el dato_out?

Se añade un nuevo elemento ( byte[] ) al final de la cola, por ende, la cola (data_out) aumenta.

Código
  1. while (this.data_out.Count > 0)

Esa instrucción viene a decir: "Mientras exista algún elemento en la cola..."

PD: ¿Es esto lo que preguntabas?.

¡Saludos!
« Última modificación: 6 Abril 2017, 18:14 pm por Eleкtro » En línea



Nolohagan

Desconectado Desconectado

Mensajes: 47


Ver Perfil
Re: Analisis de Sb0t 5.38
« Respuesta #9 en: 6 Abril 2017, 18:38 pm »

Hola,

no. En realidad esa era la parte que ya sabia. Entras palabras:

Ustedes vieren que mientras data_out no este en 0 no se podra dsconectar a un usuario y de este modo banearlo.

Entonces.... que tiene que hacer el servidor o el cliente para que data_out no quede en 0? Enviar paquetes.

Ya sa que la respuesta es: el servidor tiene que aumentar data_out. Pero de que manera?

Gracias :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Una de analisis forense
Hacking
zoneh 1 4,163 Último mensaje 14 Marzo 2020, 13:47 pm
por BDS
Deteccion de proxy de Sb0t 5.38
.NET (C#, VB.NET, ASP)
TickTack 1 2,578 Último mensaje 20 Abril 2017, 20:04 pm
por TickTack
Script para Sb0t
Scripting
TickTack 0 2,389 Último mensaje 9 Septiembre 2017, 13:32 pm
por TickTack
C# - Exploit en Sb0t
.NET (C#, VB.NET, ASP)
TickTack 0 2,812 Último mensaje 14 Septiembre 2017, 10:24 am
por TickTack
Anti-Sb0t-Ban
Software
TickTack 2 1,894 Último mensaje 15 Marzo 2018, 21:16 pm
por TickTack
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines