Estoy estudiando el codigo del troyano MFucker y no entiendo este trozo de codigo... Alguien sabe como funciona?

Código: Seleccionar todo

Private Sub wS_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Dim data As String
wS(Index).GetData data
DatosTemporales = DatosTemporales & data
If Right(DatosTemporales, 1) = Chr(0) Then
    While InStr(DatosTemporales, Chr(0))
        Dim tempo As String
        tempo = Mid$(DatosTemporales, 1, InStr(DatosTemporales, Chr(0)) - 1)
        DatosTemporales = Mid(DatosTemporales, InStr(DatosTemporales, Chr(0)) + 1)
        Debug.Print "[" & Index & "] << " & tempo
        ProcesaDatos tempo, Index
    Wend
    DatosTemporales = ""
End If
End Sub
Es el evento DataArrival del socket, ahí es donde se reciben los datos, te explico brevemente aunque este código es demasiado cutre.

Código: Seleccionar todo

Dim data As String ' Declaramos la var.
wS(Index).GetData data ' Guardamos los datos recibidos en la var.
DatosTemporales = DatosTemporales & data 'Aquí pasamos un buffer a la var y guardamos los datos.
If Right(DatosTemporales, 1) = Chr(0) Then 'Aquí comprobamos que haya un espacio nulo
    While InStr(DatosTemporales, Chr(0)) 'Aquí hacemos un bucle con la condición de que encuentre el espacio nulo dentro de la cadena
       'Aqui pasamos a parsear los datos.
        Dim tempo As String
        tempo = Mid$(DatosTemporales, 1, InStr(DatosTemporales, Chr(0)) - 1)
        DatosTemporales = Mid(DatosTemporales, InStr(DatosTemporales, Chr(0)) + 1)
        Debug.Print "[" & Index & "] << " & tempo
        ProcesaDatos tempo, Index
    Wend
    DatosTemporales = "" ' Limpiamos el buffer
End If
Se podría hacer algo mas bonito como esto:

Código: Seleccionar todo

   
Dim sDatos      As String
Dim sInfos()    As String
    
Call WS(Index).GetData(sDatos) 'Guardamos la respuesta en la var

sInfos() = Split(sDatos, "|") ' Cortamos los datos y guardamos en un array

Despues ya se puede usar por ej. la condicional "Select Case" y así organizar los datos.
Saludos.
El secreto de mi éxito es Jesús
Responder

Volver a “VB/.NET”