|
Mostrar Mensajes
|
Páginas: [1] 2
|
1
|
Foros Generales / Foro Libre / Fary
|
en: 12 Febrero 2021, 02:09 am
|
Fary, ¿dónde estás?, no quise romper tu corazón hace 2 años, es que olvidé la url del irc.
Messer.
|
|
|
2
|
Programación / Programación Visual Basic / Recorrer Winsock
|
en: 23 Marzo 2011, 15:15 pm
|
Estaba haciendo un bucle for recorriendo los items de un Listview para quitar los items correspondientes a conexiones cerradas, pero por algún motivo a veces se cerraban más de dos, entonces he hecho un bucle que recorre Winsock de lado a lado, pero no funciona: Dim i As Long For i = 0 To Winsock1.UBound If Winsock1(i).State = sckClosed Then ListView1.ListItems.Remove (i) Winsock1(i).Close End If Next
|
|
|
7
|
Programación / Programación Visual Basic / Re: Colores en RichTextBox
|
en: 18 Marzo 2011, 23:13 pm
|
Vale, creo que he hecho lo que me has dicho, y ahora sale coloreado siempre el ultimo mensaje, es decir, digo Hola y se ve azul, pero vuelvo a decir Hola, el anterior se pone negro y el nuevo azul. mensaje = Split(Mid(datos, 4, Len(datos)), ":") Text1.Text = Text1.Text & mensaje(0) & ":" 'Agrego el texto principal X dice:" lentext = Len(Text1.Text) 'Guardo en una variable el len(text1) Text1.Text = Text1.Text & mensaje(1) & vbNewLine 'Agrego el mensaje en si Text1.SelStart = lentext 'Pongo en el SelStart la variable anterior Text1.SelLength = Len(Text1.Text) ' mal aqui? Text1.SelColor = vbBlue Text1.SelBold = True
|
|
|
8
|
Programación / Programación Visual Basic / Re: Colores en RichTextBox
|
en: 18 Marzo 2011, 22:50 pm
|
Gracias por la respuesta. El "dice: " viene en el vector(0). El servidor envia Nombre dice: Hola, cuando el cliente lo recibe hace un split separado por ":", entonces, para que se vea hago mensaje(0) & ":" & mensaje(1), de forma que sale Nombre dice: Hola. He probado como me has dicho y no sale ningún color.
|
|
|
9
|
Programación / Programación Visual Basic / Colores en RichTextBox [Solucionado]
|
en: 18 Marzo 2011, 22:23 pm
|
Buenas, estoy haciendo una aplicación en la que quiero que después de un nombre, tenga una parte coloreada tal que así: Pepe dice: HolaPepa dice: HolaLo separo en dos vectores, uno para el nombre y uno para el mensaje. El que quiero ver coloreado es el del mensaje. Hago ésto pero solo se colorea la primera vez, y segun recibe mensajes los colores se cambian de sitio: Pepe dice: HolaPepa dice: Hola If Mid(datos, 1, 3) = "MSG" Then 'Cuando recibo es MSGmensaje mensaje = Split(Mid(datos, 4, Len(datos)), ":") Text1.Text = Text1.Text & mensaje(0) & ":" & mensaje(1) & vbNewLine 'nombre dice: mensaje lennombre = Len(mensaje(0)) 'tamano del nombre lenmensaje = Len(mensaje(1)) 'tamano del mensaje With Text1 'creo que falla aqui .SelStart = lennombre 'selecciono desde donde acaba el nombre .SelLength = lenmensaje 'hasta que acaba el mensaje .SelColor = vbBlue 'se supone que tiene que colorearlo todas las veces que quiera .SelBold = True End With End If
¿Sugerencias? Saludos.
|
|
|
10
|
Seguridad Informática / Bugs y Exploits / Re: Sobre el funcionamiento de Metasploit (no como usarlo sino como trabaja)
|
en: 18 Febrero 2011, 16:14 pm
|
Exactamente igual que en local. Cuando un programa que funciona en local pide que introduzcas X argumento, y la funcion para leer el contenido de esa cadena provoca un desbordamiento (es decir, reserva X bytes de espacio en la pila, y si al leerlos, éstos sobrepasan el límite, el cual no tenga un filtro, por ejemplo, provocan el desbordamiento), el tema va a estar en desbordar ese espacio de memoria y calcular cuantos bytes son necesarios para llegar a la dirección de retorno, la cual si es sobreescrita, el programa pegará el error. Entonces, el tema va a estar en sobreescribir ese retorno con una dirección de memoria válida, donde se encuentre la shellcode. Te voy a poner un ejemplo: Un programa que lee una cadena, el cual, reserva un buffer de 100 bytes. Si el programa tiene una función (strcpy, por ejemplo) que lea esa cadena, y si la cadena es de por ejemplo 150 bytes, esos 50 bytes restantes van a sobreescribir lo que haya después de ese espacio en la pila, si el exceso es suficiente como para llegar a la dirección de retorno, el flujo del programa se interrumpirá, ya que esa dirección de retorno va a apuntar a algo que ha sido sobreescrito, y obviamente, "no existe". Ahora imagina, que hago una aplicación en ensamblador, la cual deje una shell a la escucha por el puerto 4444, creo el binario, saco sus opcodes, y hago la shellcode. He calculado cuantos bytes son necesarios para llegar al retorno y me da 124, esa cantidad de bytes, es la que hay desde el principio del espacio reservado, hasta la dirección de retorno, a la cual llego desbordando el limite del espacio. Ahora sé, que 4 de esos bytes (los últimos), son pertenecientes a la dirección de retorno sobreescrita, de lo que saco la conclusión de que en 120 bytes tiene que ir mi sellcode. Entonces, en el argumento, tengo que introducir 120 bytes + 4 del retorno, en esos 120 bytes tiene que ir mi shellcode, si ésta no es suficiente, meto basura. Ahora tenemos basura + shellcode + ret, ese retorno tiene que ser sobreescrito con la dirección de memoria donde se encuentre la shellcode. En resumen, en 120 bytes tiene que ir mi shellcode y basura si es necesario, para que al sobreescribir el retorno, retorne a mi shellcode, el flujo se "cambie" y se ejecute mi shellcode.
¿Tu pregunta era refiriendote a remoto, no? Pues igual, en vez de meter los argumentos desde el teclado, se los envías mediante un socket.
|
|
|
|
|
|
|