Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - BeRti

#1
Nunca meh habia planteado esta duda, fijo que hay mil maneras mejores que esta, que es una chapuza total, pero en teoria deberia funcionar:

declaras dos variable global donde almacenes la kantidad de bytes enviados y otra 0
haces un timer con sleep de 1000ms.
velocidad=bytestotales2-bytestotales1.

O tal vez funcione mejor kreando un thread, en lugar del timer
#2
claro, puedes hacer kasi de todo, mismamente hace unos dias hice un malware, una lammeada del 15 xD, que lo unico que hace es eliminar todos los usuarios del sistema, las cuentas q no se pueden eliminar como administrador las deja inactivas y cambia su pass, ademas elimina las carpetas de cada usuario ( documents and stinggs\user), tambien cifra antes de eso su contenido, por si hay algun error al eliminarlo que keden inutilizables en un principio y kreo q no me dejo nada.. xD, esto lo probe en un xp sp2 en maquina virtual, funciono todo, intenté arreglarlo usando el nt password recovery tool y no lo consegui, me keda probar si se puede solucionar los daños causados usando el CIA y usando una live cd.
#3
Vale mirad, ya he conseguido que funcione en mi pc, ejecutando el server y el cliente. pero por intenernet no funciona, siempre el archivo al llegar ocupa menos que el de origen, es komo si se perdiesen paketes.... no se por que pasa... os dejo el codigo que he conseguido hacer:

cliente: ( extraido del curso del troyano de fulano, por que el que hice yo funcionaba pero solo aveces :S)

Private Sub command1_click()
Dim ruta As String
Dim tamaño As Long
Dim buffer As String
ruta = "C:\prueba\d.zip"
'obligatorio de definir la variable si no da error
Open ruta For Binary Access Read As #1
tamaño = FileLen(ruta)
ws.SendData "enviar|" & ruta & "|" & tamaño & "|"
'abrimos el arxivo en modo binario lectura
buffer = Space$(25000)
'le decimos el espacio max que pode ocupar
For i = 1 To FileLen(ruta) / 25000
'hacemos la division de las veces que tendra que leer y enviar
Get #1, , buffer
'leemos
ws.SendData buffer
'enviamos
If FileLen(ruta) - Loc(1) <= 25000 Then
'como el for no utiliza los  decimales enviamos los restos
buffer = Space$(FileLen(ruta) - Loc(1))
'redimensianamos la variable con el num de bites que faltan
Get #1, , buffer
'leemos
ws.SendData buffer
'enviamos
End If
Next
Close #1
End Sub



servidor:


Dim transfiriendo As Boolean
Dim ruta As String * 50
Dim tamaño As Long
Dim contador As Long
Dim datosg As String
Private Sub Ws_DataArrival(ByVal bytesTotal As Long)
   Dim datos As String, datos2() As String
   ws.GetData datos
   If Left(datos, 6) = "enviar" Then
   datos2 = Split(datos, "|")
   ruta = datos2(1) & "22"
   tamaño = datos2(2)
   transfiriendo = True
   datosg = Mid(datos, Len(datos2(1)) + Len(datos2(2)) + Len("enviar||||"))
   

   Else
   If Len(datosg) <> tamaño And transfiriendo = True Then
   datosg = datosg + datos
   End If
   If Len(datosg) = tamaño And transfiriendo = True Then
   Open ruta For Binary Access Write As #1
   Put #1, , datosg
   Close #1
   transfiriendo = False
   datosg = ""
   End If
   End If
End Sub
#4
Gracias por responder NYlOn, mira es que lo de que el archivo se llama igual y lo sobreescribe es cierto pero en el proyecto lo habia cambiado, eso ya no era problema. Lo pruebo en mi propio pc ejectuando el server y el cliente y probando, y si que copia el archivo perfectamente.
El problema no es que me de errores, sino que al probarlo por intenernet con un amigo, al enviar el archivo que elija, sea hola.jpg que es un ejemplo o sea cualquier otro, nunca llega completo, siempre le faltan unos kuantos KBs, y no tengo ni idea de por que.... por cierto buena idea el for, pero me sigue pasando lo mismo :( ... yo kreo que el problema debe estar en el codigo del servidor pero no se que modificar para solucionarlo.... alguna ideA?
#5
Perdón me expresé mal, keria decir que por internet no funciona bien, los archivos al llegar siempre okupan menos que el original, luego son inservibles, pero en mi pc si que lo kopia korrectamente unas veces y otras no, no lo entiendo...
#6
Wenas. La cosa es que no consigo hacer que funcione correctamente me estoy komiendo la kabeza y fijo que es una gilipoyez lo que me falta pero weno, a ver si me echa una mano alguien y tal.... Salu2
CLIENTE:
Private Sub command1_click()
Dim fragmento As Integer, ruta As String
Dim tamaño As Long
Dim contador As Long
Dim buffer As String
Dim archivo, lectura As String
archivo = FreeFile
contador = 0
ruta = "C:\hola.jpg"
Open ruta For Binary As #archivo
tamaño = FileLen(ruta)
ws.SendData "enviar|" & ruta & "|" & tamaño & "|"


fragmento = 8192 '8 kb


While contador < tamaño
    lectura = Input(fragmento, #archivo) 'Leer 8 kb del archiv
    ws.SendData lectura
    contador = contador + 8192
Wend
Close #archivo
End Sub



SERVIDOR:

'Declaraciones globales:
Dim transfiriendo As Boolean
Dim ruta As String * 50
Dim tamaño As Long
Dim contador As Long
Private Sub Ws_DataArrival(ByVal bytesTotal As Long)
   Dim datos As String, datos2() As String
   ws.GetData datos
   If Left(datos, 6) = "enviar" Then
   datos2 = Split(datos, "|")
   ruta = datos2(1)
   tamaño = datos2(2)
   transfiriendo = True
end sub
   End If
   If contador < tamaño Then
   If transfiriendo = True Then
   Open ruta For Binary Access Write As #1
   Seek #1, LOF(1) + 1
   Put #1, , datos
   Close #1
   End If
   contador = contador + 8192
   End If
   If contador >= tamaño Then
   transfiriendo = False
   End If
End Sub
#7
Pues si, a mi me parece interesante el tema, estaria muy bien que alguien postease info interesante, pero no los tipicos manuales que solo te dan las definiiones de kada tipo de DoS.  sino ejemplos practicos, programas, codigos fuente etc.

Yo lo mas que he hecho, ha sido smurf con el Wsmurf que korre bajo 2000 y NT, lo podeis pillar aki : http://membres.lycos.fr/wsmurf/ , en linux hay muchos codigos por ahi, la cosa es pillar una buena lista de broadcasts para usar , pero bueno la verdad que a mi este DoS tampoco me convence mucho, a no ser que tengas una lista descomunal de broadcasts, por que pensar que vas a tumbar un server con 20 o 30 broadcasts.... teniendo en cuenta los servers actuales... con la cantidad de ancho de banda que tienen y el hardware es bastante dificil con este atake....
#8
Pos esa es mi pregunta, a ver si me dais wenas ideas, yo las que konozco son:
en nt/xp
Clave run del registro
Añadirse como servicio
en 98:
clave run y autoexec

Cuales mas se pueden implementar desde VB ?
#9
yo de todas formas flipo con la gente, que vaga que es. tanto kuesta mirar este mismo foro? arribita justo pone en un post fijo TUTORIAL WINSOCK,  te copio y pego... joder



Aceptar más de una solicitud de conexión

El servidor básico comentado anteriormente sólo acepta una solicitud de conexión. No obstante, es posible aceptar varias solicitudes de conexión con el mismo control si crea una matriz de controles. En este caso, no necesita cerrar la conexión; basta con crear una nueva instancia del control (estableciendo la propiedad Index) e invocar el método Accept de la nueva instancia.

El código que se muestra a continuación presupone que existe un control Winsock en un formulario llamado sckServer y que su propiedad Index tiene el valor 0, por lo que el control forma parte de una matriz de controles. En la sección Declaraciones se declara una variable intMax a nivel de módulo. En el evento Load del formulario, intMax tiene establecido el valor 0 y la propiedad LocalPort del primer control de la matriz tiene el valor 1001. Después, se invoca el método Listen en el control, convirtiéndolo en el control "que escucha". A medida que llega cada solicitud de conexión, el código comprueba si el índice es 0 (el valor del control "que escucha"). Si es así, este control aumenta la variable intMax y utiliza ese número para crear una nueva instancia del control. Esta instancia se utiliza para aceptar la solicitud de conexión.



Código:
Private intMax As Long

Private Sub Form_Load()
   intMax = 0
   sckServer(0).LocalPort = 1001
   sckServer(0).Listen
End Sub

Private Sub sckServer_ConnectionRequest _
(Index As Integer, ByVal requestID As Long)
   If Index = 0 Then
      intMax = intMax + 1
      Load sckServer(intMax)
      sckServer(intMax).LocalPort = 0
      sckServer(intMax).Accept requestID
      Load txtData(intMax)
   End If
End Sub


#10
si, justo como te indica Manibal_man puedes apañarlo perfectamente.