Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Mad Antrax en 11 Julio 2006, 20:12 pm



Título: Agregar sistema de verificación humana
Publicado por: Mad Antrax en 11 Julio 2006, 20:12 pm
Bueno, primero lo primero: que es un sistema de verificación humana?

Es un pequeño código que muestra un texto (o una serie de caracteres) distorsionados y deformados.

Para que sirve este sistema de verificación?

Esto nos asegura que detrás de nuestro programa hay una persona humana, y que un robot o script no podrá hacer uso de él.

Para que entornos nos sirve esto?

Por ejemplo, si tenemos un formulario donde un usuario puede hacer una petición o un registro. Es bueno asegurarnos que quien se va a registrar es una persona humana, y no un robot o script malicioso que pretende hacer un flood.


Bien, pues he querido programar una función similar para VB6, el sistema es sencillo y tampoco nos asegura al 100% que sea efectivo (un usuario puede crackear la funcion, por ejemplo). Los códigos que genera son parecidos a estos:

(http://img102.imageshack.us/img102/9622/imgpass4pu.jpg)

Supongo que se podría mejorar el programa (se aceptan mejoras y criticas ;)). Os dejo adjunto el código fuente y el programa compilado para que veais como funciona.

Decirme vuestra opinion ;D


Título: Re: Agregar sistema de verificación humana
Publicado por: NYlOn en 11 Julio 2006, 22:31 pm
Esta muy bueno, felicitaciones. Si se permiten criticas constructivas:
En muchas ocasiones las lineas y circulos no permiten la lectura del codigo (cuando digo 'muchas' me refiero a mas de lo que esperaba :P).
Otra cosa, y se que es un programa de prueba, pero en mi opinion, cuando vayas a utilizar el sistema seria bueno que el programa se cerrara a los 4 o 5 intentos, para evitar cualquier intento de automatizacion.
Son solo ideas :P

Un saludo y gracias por el codigo.-


Título: Re: Agregar sistema de verificación humana
Publicado por: Mad Antrax en 11 Julio 2006, 22:36 pm
Jejej, gracias por tus comentarios. Es cierto que aveces las lineas y circulos son excesivos xD. Puero siempre puede hechar mano del modulo y rebajar el numero de lineas:

Código:
Function ImagePass_Lines(ThePicture As PictureBox)
    Randomize
    ThePicture.DrawWidth = Int(Rnd * 2) + 1
    ThePicture.Line (0, Int(Rnd * ThePicture.Height))-(ThePicture.Width, Int(Rnd * ThePicture.Height)), QBColor(Int(Rnd * 15)), B
    For i = 1 To 5 'REBAJA ESTE NUMERO, PON UN 2 ENVES DE UN 5 !!!!
        Var = Int(Rnd * 15) + 1
        ThePicture.DrawWidth = Int(Rnd * 2) + 1
        If Var Mod 3 = 0 Then
            ThePicture.Line (Int(Rnd * ThePicture.Width), 0)-(Int(Rnd * ThePicture.Width), ThePicture.Width), QBColor(Int(Rnd * 15)), B
        Else
            ThePicture.Line (Int(Rnd * ThePicture.Width), 0)-(Int(Rnd * ThePicture.Width), ThePicture.Width), QBColor(Int(Rnd * 15))
        End If
    Next i
End Function

Y evidentemente que hay que poner lo que nos comentas, un sistema que al 3º o 4º intento se cierre por completo o mejor aun: si se equivoca 5 veces que se genere una imagen nueva :P

Gracias :)


Título: Re: Agregar sistema de verificación humana
Publicado por: <--v1c1ous--> en 12 Julio 2006, 06:22 am
No lo probe pero al parecer te quedo bien, solo lei el codigo.

El unico problema es que para Software's es inutil, en el unico lugar que vas a encontrar Bot's o Scripts automaticos es el las webs.
Los pocos Software's que usan esta tecnica es para tratar de prevenir el crackeo a la hora de poner serials por ejemplo, haciendo que ademas de un serial sea necesaria la intervencion humana directa. Aunque esta tecnica igualmente es inservible ya que un crack hace todo completo.


Igualmente me parece un buen trabajo, tendria buena funcionabilidad si se lo volcara en un programa que manda mail's anonimos para prevenir el mail bomber por ejemplo.

Con seis caracteres como minimo no seria necesario cerrar el programa, solo cambiar la imagen cada x intentos, ya que si llega a ser intervencion de un script no va a adivinar los caracteres y talvez solo se alla confundido varias veces la intervencion humana mareado por tanto color y figura.


Título: Re: Agregar sistema de verificación humana
Publicado por: NekroByte en 12 Julio 2006, 07:09 am
Ve »Aki« (http://www16.brinkster.com/eduroam/api/default.asp?pag=cap3) y cuando esté cargada la página das Edición/Buscar y tecleas: "Pueden ver como los caracteres están rotados o girados en cierto grado." Y checa por esa zona para que inspecciones los tips sobre las APIs.

Hilsen.


Título: Re: Agregar sistema de verificación humana
Publicado por: <--v1c1ous--> en 12 Julio 2006, 18:04 pm
Ve »Aki« (http://www16.brinkster.com/eduroam/api/default.asp?pag=cap3) y cuando esté cargada la página das Edición/Buscar y tecleas: "Pueden ver como los caracteres están rotados o girados en cierto grado." Y checa por esa zona para que inspecciones los tips sobre las APIs.

Hilsen.

Bueno, esa es otra manera para que ningun soft pueda leer los caracteres impresos en una imagen, pero en un caso concreto simplemente se volveria a rotar la imagen ciertos grados por vez hasta lograr leer los caracteres impresos, con tan solo rotar el texto no basta.
No es factible.


Título: Re: Agregar sistema de verificación humana
Publicado por: Mad Antrax en 12 Julio 2006, 18:51 pm
Pero si juntamos la opción de rotar con los colores, lineas, circulos, puntitos, tamaño de letra, tipo de letra... (y todas las demás opciones que puedas meterle) conseguimos un sistema de protección bastante alto :)


Título: Re: Agregar sistema de verificación humana
Publicado por: <--v1c1ous--> en 12 Julio 2006, 20:15 pm
Estas en lo cierto, pero recorda que tambien bastante molesto y en un software algo inutil.

Hay que encontrar un equilibrio, por ejemplo usando una fuente distinta a la normal, de esta manera solo el usuario humano la entenderia, un soft en una fuente rebuscada no lo lograria.


Título: Re: Agregar sistema de verificación humana
Publicado por: Mad Antrax en 12 Julio 2006, 20:42 pm
Exacto, o usar 2 o más fuentes distintas para generar una sola imagen (asi el robot tendría que interpretar varias fuentes distintas). Pero como dices, este método para un soft es algo inútil, y es solo aplicable por web o similares.

Pero no se, lo he visto como un reto personal y me he decidido a programarlo ;D aunque no sirva para nada xD


Título: Re: Agregar sistema de verificación humana
Publicado por: <--v1c1ous--> en 13 Julio 2006, 05:46 am
Me parece una buena forma de experimentar.

Ojo con el tema de las fuentes, cualquier soft de interprete de caracteres en la pantalla del genero imagen no es que identifica una sola fuente, sino la forma de la fuente, por ejemplo, interpreta cualquier fuente del tipo Verdana, times, arial.
Con tipo de fuente me refiero a por dar un ejemplo tonto, Gottica, esto haria que el interprete humano la interpretace sin problemas pero un soft encontraria un tipo de fuente con muchos dibujos y rebuscada.

Claro que siempre esta la posibilidad que el soft este programado para ese tipo de letra en particularidad.


Título: Re: Agregar sistema de verificación humana
Publicado por: yams en 12 Mayo 2013, 17:59 pm
Muy bueno este método. Es muy práctico.