elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:15  


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Killer Captcha
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Killer Captcha  (Leído 646 veces)
emma93

Desconectado Desconectado

Mensajes: 31


Ver Perfil
Killer Captcha
« en: 15 Marzo 2011, 04:48 »

Estoy haciendo un Captcha killer para reconocer el captcha de una web a través de PHP, luego de hacerlo pienso publicar el código aqui pero primero necesito un poco de ayuda.

He leido el pdf que publicó NaPa, y me pareció bastante interesante. Ahora estoy haciendo el código pero con otro tipo de Captcha (que parece fácil pero me he comido los cesos 3 días enteros).

Por ahora solo quiero comparar la primera letra del captcha con un datamap ya creado. Primero he probado comparando un 7 (primera letra del Captcha) con un 7 (datamap ya creado). Las igualdades en sus pixeles me dió algo así como 29 (niveles del array), por lo tanto me parece razonable ya que se acerca. El problema es que al querer comparar el mismo 7 del captcha con el datamap ya creado de un 0 (cero) me devuelve el mismo resultado, siendo que no son nada que ver.

El código a continuación:

Código
<?php
 
$archivo = fopen("Letras/ocr/7-bfa262e02131320615905fbb91d32d66-charmap.datamap","r"); //Datamap del número 7
$longitud = filesize("Letras/ocr/7-bfa262e02131320615905fbb91d32d66-charmap.datamap");
$archivo = fread($archivo,$longitud);
$archivo = base64_decode(str_rot13($archivo));
$archivo = explode("@",$archivo);
$archivo = substr($archivo[1], 1, strlen($archivo[1]));
$archivo = explode(":",$archivo);
$width = 24;
$height = 25;
$img = imagecreatefromjpeg("ConfirmHandler.jpg");
imagejpeg($img,"captcha.jpg");
$img = limpia($img);
$imgchar = imagecreate($width,$height);
imagecopy($imgchar,$img,1,1,10,8,20,24);
imagejpeg($imgchar,"chr1.jpg");
$datamap1 = creardatamap($imgchar,"noname");
$datamap1 = explode("@",$datamap1);
$datamap1 = substr($datamap1[1], 1, strlen($datamap1[1]));
$datamap1 = explode(":",$datamap1);
$errores = 0;
for($i=0;$i<count($datamap1);$i++){
   if (($archivo[$i]) != ($datamap1[$i])){$errores++;}
}
echo $errores; //El valor me devuelve 648
 
//////////////////////////////FUNCIONES///////////////////////////////////
 
function learnchar($image,$name){
global $width,$height;
$imagen = crearimagenfile($image);
$datamap = str_rot13(base64_encode(creardatamap($imagen,$name)));
guardar($datamap,$name);
echo "Nueva relacion de memoria creada, aprendiendo de $name <br>";
}
 
function guardar($datamap,$name){
$fl = fopen("Letras/ocr/$name-".md5(time()*rand(1,100))."-charmap.datamap","w+");
fwrite($fl,$datamap);
fclose($fl);
}
 
function iniciarsistema(){
learnchar("Letras/A.jpg","A");
learnchar("Letras/B.jpg","B");
learnchar("Letras/C.jpg","C");
learnchar("Letras/D.jpg","D");
learnchar("Letras/E.jpg","E");
learnchar("Letras/F.jpg","F");
learnchar("Letras/0.jpg","0");
learnchar("Letras/1.jpg","1");
learnchar("Letras/2.jpg","2");
learnchar("Letras/3.jpg","3");
learnchar("Letras/4.jpg","4");
learnchar("Letras/5.jpg","5");
learnchar("Letras/6.jpg","6");
learnchar("Letras/7.jpg","7");
learnchar("Letras/8.jpg","8");
learnchar("Letras/9.jpg","9");
unlink("Letras/A.jpg");
unlink("Letras/B.jpg");
unlink("Letras/C.jpg");
unlink("Letras/D.jpg");
unlink("Letras/E.jpg");
unlink("Letras/F.jpg");
unlink("Letras/0.jpg");
unlink("Letras/1.jpg");
unlink("Letras/2.jpg");
unlink("Letras/3.jpg");
unlink("Letras/4.jpg");
unlink("Letras/5.jpg");
unlink("Letras/6.jpg");
unlink("Letras/7.jpg");
unlink("Letras/8.jpg");
unlink("Letras/9.jpg");
rmdir("Letras");
}
 
function limpia($image){
   $w = imagesx($image);
$h = imagesy($image);
for ($x = 0; $x <= $w; $x++){
for ($i = 0; $i <= $h; $i++){
$rgb = imagecolorat($image, $x, $i);
$r = ($rgb >> 16) & 255;
$g = ($rgb >> 8) & 255;
$b = $rgb & 255;
if (($r > 55) || ($g > 55) || ($b > 55)){
imagesetpixel($image, $x, $i, imagecolorallocate($image, 255, 255, 255));
}else{
imagesetpixel($image, $x, $i, imagecolorallocate($image, 0, 0, 0));
}
}
}
return $image;
}
 
function crearimagenfile($img_file){
global $width,$height;
$img=0;
$img_sz = getimagesize( $img_file );
switch( $img_sz[2] ){
case 1:
$img = ImageCreateFromGif($img_file);
break;
case 2:
$img = ImageCreateFromJpeg($img_file);
break;
case 3:
$img = ImageCreateFromPng($img_file);
break;
}
$width = $img_sz[0];
$height = $img_sz[1];
return $img;
}
 
function creardatamap($image,$name){
   global $width,$height;
   $datamap = $name."@";
   for ($x=0; $x<=$width; $x++){
for ($y=0; $y<=$height; $y++){
$datamap.=":".$x.",".$y.",".pixelcolor($image,$x,$y);
}
}
return $datamap;
}
 
function pixelcolor($im,$x,$y){
   $rgb = imagecolorat($im,$x,$y);
   $r = ($rgb >> 16) & 255;
$g = ($rgb >> 8) & 255;
$b = $rgb & 255;
if (($r > 55) || ($g > 55) || ($b > 55)){
return 0;
}
return 1;
}
 
?>
 

El resultado me da igual tanto probando con el datamap de un 7 como de un cero.

Los datamaps son los siguientes:

* Del número 0:

Citar
ZRN6ZPjjYQN6ZPjkYQN6ZPjlYQN6ZPjmYQN6ZPj0YQN6ZPj1YQN6ZPj2YQN6ZPj3YQN6ZPj4YQN6ZPj5YQN6ZPjkZPjjBwNfZGRfZQbjYQRlYQN6ZPjkZljjBwNfZGDfZQbjYQR1YQN6ZPjkAvjjBwNfZGpfZQbjYQR4YQN6ZPjkBFjjBwNfZwNfZQbjYQVkYQN6ZPjlZvjjBwNfZwZfZGbkYQNfZQbkYQRfZQbkYQVfZQbkYQZfZQbkYQDfZQbkYQHfZQbkYQLfZQbkYQpfZQbkYQtfZGbkYQxfZGbkYQRjYQR6ZFjkZFjkBwRfZGVfZGbkYQRmYQR6ZFjkAPjkBwRfZGHfZQbkYQR2YQN6ZFjkAljjBwRfZGtfZQbkYQR5YQN6ZFjlZPjjBwRfZwRfZQbkYQVlYQN6ZFjlZljkBwVfZPjjBwVfZFjjBwVfZvjjBwVfZljjBwVfAPjjBwVfAFjkBwVfAvjkBwVfAljkBwVfBPjkBwVfBFjkBwVfZGNfZGblYQRkYQR6ZvjkZvjkBwVfZGZfZGblYQR0YQR6ZvjkAFjkBwVfZGLfZGblYQR3YQR6ZvjkBPjjBwVfZGxfZQblYQVjYQN6ZvjlZFjjBwVfZwVfZQblYQVmYQR6ZljjYQN6ZljkYQN6ZljlYQN6ZljmYQN6Zlj0YQR6Zlj1YQR6Zlj2YQN6Zlj3YQN6Zlj4YQN6Zlj5YQN6ZljkZPjjBwZfZGRfZQbmYQRlYQN6ZljkZljjBwZfZGDfZQbmYQR1YQN6ZljkAvjkBwZfZGpfZGbmYQR4YQR6ZljkBFjjBwZfZwNfZQbmYQVkYQN6ZljlZvjjBwZfZwZfZGb0YQNfZQb0YQRfZQb0YQVfZQb0YQZfZGb0YQDfZGb0YQHfZQb0YQLfZQb0YQpfZQb0YQtfZQb0YQxfZQb0YQRjYQN6APjkZFjjBwDfZGVfZQb0YQRmYQN6APjkAPjjBwDfZGHfZQb0YQR2YQN6APjkAljjBwDfZGtfZGb0YQR5YQR6APjlZPjjBwDfZwRfZQb0YQVlYQN6APjlZljkBwHfZPjjBwHfZFjjBwHfZvjjBwHfZljkBwHfAPjjBwHfAFjjBwHfAvjjBwHfAljjBwHfBPjjBwHfBFjjBwHfZGNfZQb1YQRkYQN6AFjkZvjjBwHfZGZfZQb1YQR0YQN6AFjkAFjjBwHfZGLfZQb1YQR3YQN6AFjkBPjjBwHfZGxfZGb1YQVjYQN6AFjlZFjjBwHfZwVfZQb1YQVmYQR6AvjjYQN6AvjkYQN6AvjlYQR6AvjmYQR6Avj0YQN6Avj1YQN6Avj2YQN6Avj3YQN6Avj4YQN6Avj5YQN6AvjkZPjjBwLfZGRfZQb2YQRlYQN6AvjkZljjBwLfZGDfZQb2YQR1YQN6AvjkAvjjBwLfZGpfZQb2YQR4YQN6AvjkBFjkBwLfZwNfZGb2YQVkYQN6AvjlZvjjBwLfZwZfZGb3YQNfZQb3YQRfZQb3YQVfZGb3YQZfZGb3YQDfZQb3YQHfZQb3YQLfZQb3YQpfZQb3YQtfZQb3YQxfZQb3YQRjYQN6AljkZFjjBwpfZGVfZQb3YQRmYQN6AljkAPjjBwpfZGHfZQb3YQR2YQN6AljkAljjBwpfZGtfZQb3YQR5YQR6AljlZPjkBwpfZwRfZQb3YQVlYQN6AljlZljkBwtfZPjjBwtfZFjjBwtfZvjkBwtfZljkBwtfAPjjBwtfAFjjBwtfAvjjBwtfAljjBwtfBPjjBwtfBFjjBwtfZGNfZQb4YQRkYQN6BPjkZvjjBwtfZGZfZQb4YQR0YQN6BPjkAFjjBwtfZGLfZQb4YQR3YQN6BPjkBPjjBwtfZGxfZGb4YQVjYQR6BPjlZFjjBwtfZwVfZQb4YQVmYQR6BFjjYQN6BFjkYQN6BFjlYQR6BFjmYQR6BFj0YQN6BFj1YQN6BFj2YQN6BFj3YQN6BFj4YQN6BFj5YQN6BFjkZPjjBwxfZGRfZQb5YQRlYQN6BFjkZljjBwxfZGDfZQb5YQR1YQN6BFjkAvjjBwxfZGpfZQb5YQR4YQN6BFjkBFjkBwxfZwNfZGb5YQVkYQN6BFjlZvjjBwxfZwZfZGbkZPjjYQN6ZGNfZFjjBwRjYQVfZQbkZPjmYQR6ZGNfAPjkBwRjYQHfZQbkZPj2YQN6ZGNfAljjBwRjYQtfZQbkZPj5YQN6ZGNfZGNfZQbkZPjkZFjjBwRjYQRlYQN6ZGNfZGZfZQbkZPjkAPjjBwRjYQR1YQN6ZGNfZGLfZQbkZPjkAljjBwRjYQR4YQR6ZGNfZGxfZGbkZPjlZPjjBwRjYQVkYQN6ZGNfZwVfZQbkZPjlZljkBwRkYQNfZQbkZFjkYQN6ZGRfZvjjBwRkYQZfZQbkZFj0YQR6ZGRfAFjkBwRkYQLfZGbkZFj3YQN6ZGRfBPjjBwRkYQxfZQbkZFjkZPjjBwRkYQRkYQN6ZGRfZGVfZQbkZFjkZljjBwRkYQR0YQN6ZGRfZGHfZQbkZFjkAvjkBwRkYQR3YQR6ZGRfZGtfZGbkZFjkBFjjBwRkYQVjYQN6ZGRfZwRfZQbkZFjlZvjjBwRkYQVmYQR6ZGVfZPjjBwRlYQRfZQbkZvjlYQN6ZGVfZljjBwRlYQDfZQbkZvj1YQR6ZGVfAvjkBwRlYQpfZGbkZvj4YQR6ZGVfBFjkBwRlYQRjYQR6ZGVfZGRfZGbkZvjkZvjkBwRlYQRmYQR6ZGVfZGDfZGbkZvjkAFjkBwRlYQR2YQR6ZGVfZGpfZGbkZvjkBPjjBwRlYQR5YQN6ZGVfZwNfZQbkZvjlZFjjBwRlYQVlYQN6ZGVfZwZfZGbkZljjYQN6ZGZfZFjjBwRmYQVfZQbkZljmYQN6ZGZfAPjjBwRmYQHfZQbkZlj2YQN6ZGZfAljjBwRmYQtfZGbkZlj5YQR6ZGZfZGNfZGbkZljkZFjkBwRmYQRlYQR6ZGZfZGZfZGbkZljkAPjkBwRmYQR1YQN6ZGZfZGLfZQbkZljkAljjBwRmYQR4YQN6ZGZfZGxfZQbkZljlZPjjBwRmYQVkYQN6ZGZfZwVfZQbkZljlZljkBwR0YQNfZQbkAPjkYQN6ZGDfZvjjBwR0YQZfZQbkAPj0YQN6ZGDfAFjjBwR0YQLfZQbkAPj3YQN6ZGDfBPjjBwR0YQxfZQbkAPjkZPjjBwR0YQRkYQN6ZGDfZGVfZQbkAPjkZljjBwR0YQR0YQN6ZGDfZGHfZQbkAPjkAvjjBwR0YQR3YQN6ZGDfZGtfZQbkAPjkBFjjBwR0YQVjYQN6ZGDfZwRfZQbkAPjlZvjjBwR0YQVmYQR6ZGHfZPjkBwR1YQRfZGbkAFjlYQR6ZGHfZljkBwR1YQDfZGbkAFj1YQR6ZGHfAvjkBwR1YQpfZGbkAFj4YQR6ZGHfBFjkBwR1YQRjYQR6ZGHfZGRfZGbkAFjkZvjkBwR1YQRmYQR6ZGHfZGDfZGbkAFjkAFjkBwR1YQR2YQR6ZGHfZGpfZGbkAFjkBPjkBwR1YQR5YQR6ZGHfZwNfZGbkAFjlZFjkBwR1YQVlYQR6ZGHfZwZfZD==

* Datamap del número 7:

Citar
A0N6ZPjjYQN6ZPjkYQN6ZPjlYQN6ZPjmYQN6ZPj0YQN6ZPj1YQN6ZPj2YQN6ZPj3YQN6ZPj4YQN6ZPj5YQN6ZPjkZPjjBwNfZGRfZQbjYQRlYQN6ZPjkZljjBwNfZGDfZQbjYQR1YQN6ZPjkAvjjBwNfZGpfZQbjYQR4YQN6ZPjkBFjjBwNfZwNfZQbjYQVkYQN6ZPjlZvjkBwRfZPjjBwRfZFjjBwRfZvjkBwRfZljkBwRfAPjjBwRfAFjjBwRfAvjjBwRfAljjBwRfBPjjBwRfBFjjBwRfZGNfZQbkYQRkYQN6ZFjkZvjjBwRfZGZfZQbkYQR0YQN6ZFjkAFjjBwRfZGLfZQbkYQR3YQN6ZFjkBPjjBwRfZGxfZQbkYQVjYQN6ZFjlZFjjBwRfZwVfZGblYQNfZQblYQRfZQblYQVfZGblYQZfZGblYQDfZQblYQHfZQblYQLfZQblYQpfZQblYQtfZQblYQxfZQblYQRjYQN6ZvjkZFjjBwVfZGVfZQblYQRmYQN6ZvjkAPjjBwVfZGHfZQblYQR2YQN6ZvjkAljjBwVfZGtfZQblYQR5YQN6ZvjlZPjjBwVfZwRfZQblYQVlYQR6ZljjYQN6ZljkYQN6ZljlYQR6ZljmYQR6Zlj0YQN6Zlj1YQN6Zlj2YQN6Zlj3YQN6Zlj4YQN6Zlj5YQN6ZljkZPjjBwZfZGRfZQbmYQRlYQN6ZljkZljjBwZfZGDfZQbmYQR1YQN6ZljkAvjjBwZfZGpfZQbmYQR4YQN6ZljkBFjjBwZfZwNfZQbmYQVkYQN6ZljlZvjkBwDfZPjjBwDfZFjjBwDfZvjkBwDfZljkBwDfAPjjBwDfAFjjBwDfAvjjBwDfAljjBwDfBPjjBwDfBFjjBwDfZGNfZQb0YQRkYQN6APjkZvjjBwDfZGZfZQb0YQR0YQN6APjkAFjjBwDfZGLfZQb0YQR3YQN6APjkBPjjBwDfZGxfZQb0YQVjYQN6APjlZFjjBwDfZwVfZGb1YQNfZQb1YQRfZQb1YQVfZGb1YQZfZGb1YQDfZQb1YQHfZQb1YQLfZQb1YQpfZQb1YQtfZQb1YQxfZQb1YQRjYQN6AFjkZFjjBwHfZGVfZQb1YQRmYQN6AFjkAPjjBwHfZGHfZQb1YQR2YQN6AFjkAljjBwHfZGtfZQb1YQR5YQR6AFjlZPjkBwHfZwRfZQb1YQVlYQR6AvjjYQN6AvjkYQN6AvjlYQR6AvjmYQR6Avj0YQN6Avj1YQN6Avj2YQN6Avj3YQN6Avj4YQN6Avj5YQN6AvjkZPjjBwLfZGRfZQb2YQRlYQN6AvjkZljjBwLfZGDfZQb2YQR1YQN6AvjkAvjkBwLfZGpfZGb2YQR4YQR6AvjkBFjjBwLfZwNfZQb2YQVkYQN6AvjlZvjkBwpfZPjjBwpfZFjjBwpfZvjkBwpfZljkBwpfAPjjBwpfAFjjBwpfAvjjBwpfAljjBwpfBPjjBwpfBFjjBwpfZGNfZQb3YQRkYQN6AljkZvjjBwpfZGZfZQb3YQR0YQR6AljkAFjkBwpfZGLfZGb3YQR3YQN6AljkBPjjBwpfZGxfZQb3YQVjYQN6AljlZFjjBwpfZwVfZGb4YQNfZQb4YQRfZQb4YQVfZGb4YQZfZGb4YQDfZQb4YQHfZQb4YQLfZQb4YQpfZQb4YQtfZQb4YQxfZQb4YQRjYQN6BPjkZFjjBwtfZGVfZGb4YQRmYQR6BPjkAPjkBwtfZGHfZQb4YQR2YQN6BPjkAljjBwtfZGtfZQb4YQR5YQN6BPjlZPjjBwtfZwRfZQb4YQVlYQR6BFjjYQN6BFjkYQN6BFjlYQR6BFjmYQR6BFj0YQN6BFj1YQN6BFj2YQN6BFj3YQN6BFj4YQN6BFj5YQR6BFjkZPjkBwxfZGRfZGb5YQRlYQR6BFjkZljjBwxfZGDfZQb5YQR1YQN6BFjkAvjjBwxfZGpfZQb5YQR4YQN6BFjkBFjjBwxfZwNfZQb5YQVkYQN6BFjlZvjkBwRjYQNfZQbkZPjkYQN6ZGNfZvjkBwRjYQZfZGbkZPj0YQN6ZGNfAFjjBwRjYQLfZQbkZPj3YQR6ZGNfBPjkBwRjYQxfZGbkZPjkZPjkBwRjYQRkYQN6ZGNfZGVfZQbkZPjkZljjBwRjYQR0YQN6ZGNfZGHfZQbkZPjkAvjjBwRjYQR3YQN6ZGNfZGtfZQbkZPjkBFjjBwRjYQVjYQN6ZGNfZwRfZQbkZPjlZvjkBwRkYQNfZQbkZFjkYQN6ZGRfZvjkBwRkYQZfZGbkZFj0YQN6ZGRfAFjkBwRkYQLfZGbkZFj3YQR6ZGRfBPjjBwRkYQxfZQbkZFjkZPjjBwRkYQRkYQN6ZGRfZGVfZQbkZFjkZljjBwRkYQR0YQN6ZGRfZGHfZQbkZFjkAvjjBwRkYQR3YQN6ZGRfZGtfZQbkZFjkBFjjBwRkYQVjYQN6ZGRfZwRfZQbkZFjlZvjkBwRlYQNfZQbkZvjkYQN6ZGVfZvjkBwRlYQZfZGbkZvj0YQR6ZGVfAFjkBwRlYQLfZQbkZvj3YQN6ZGVfBPjjBwRlYQxfZQbkZvjkZPjjBwRlYQRkYQN6ZGVfZGVfZQbkZvjkZljjBwRlYQR0YQN6ZGVfZGHfZQbkZvjkAvjjBwRlYQR3YQN6ZGVfZGtfZQbkZvjkBFjjBwRlYQVjYQN6ZGVfZwRfZQbkZvjlZvjkBwRmYQNfZQbkZljkYQN6ZGZfZvjkBwRmYQZfZGbkZlj0YQN6ZGZfAFjjBwRmYQLfZQbkZlj3YQN6ZGZfBPjjBwRmYQxfZQbkZljkZPjjBwRmYQRkYQN6ZGZfZGVfZQbkZljkZljjBwRmYQR0YQN6ZGZfZGHfZQbkZljkAvjjBwRmYQR3YQN6ZGZfZGtfZQbkZljkBFjjBwRmYQVjYQN6ZGZfZwRfZQbkZljlZvjkBwR0YQNfZQbkAPjkYQN6ZGDfZvjjBwR0YQZfZQbkAPj0YQN6ZGDfAFjjBwR0YQLfZQbkAPj3YQN6ZGDfBPjjBwR0YQxfZQbkAPjkZPjjBwR0YQRkYQN6ZGDfZGVfZQbkAPjkZljjBwR0YQR0YQN6ZGDfZGHfZQbkAPjkAvjjBwR0YQR3YQN6ZGDfZGtfZQbkAPjkBFjjBwR0YQVjYQN6ZGDfZwRfZQbkAPjlZvjkBwR1YQNfZQbkAFjkYQN6ZGHfZvjjBwR1YQZfZQbkAFj0YQN6ZGHfAFjjBwR1YQLfZQbkAFj3YQN6ZGHfBPjjBwR1YQxfZQbkAFjkZPjjBwR1YQRkYQN6ZGHfZGVfZQbkAFjkZljjBwR1YQR0YQN6ZGHfZGHfZQbkAFjkAvjjBwR1YQR3YQN6ZGHfZGtfZQbkAFjkBFjjBwR1YQVjYQN6ZGHfZwRfZQbkAFjlZvjkBwR2YQNfZGbkAvjkYQR6ZGLfZvjkBwR2YQZfZGbkAvj0YQR6ZGLfAFjkBwR2YQLfZGbkAvj3YQR6ZGLfBPjkBwR2YQxfZGbkAvjkZPjkBwR2YQRkYQR6ZGLfZGVfZGbkAvjkZljkBwR2YQR0YQR6ZGLfZGHfZGbkAvjkAvjkBwR2YQR3YQR6ZGLfZGtfZGbkAvjkBFjkBwR2YQVjYQR6ZGLfZwRfZGbkAvjlZvjk

Obvio que como ven en el codigo, se desencriptan con la función base64_decode y se guardan en una variable. La imagen del captcha es la siguiente:


Espero que me puedan ayudar :) Muchas gracias !



En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
captcha en php
PHP
wizache 2 701 Último mensaje 31 Julio 2007, 23:11
por wizache
Ayuda con Captcha
Hacking Básico
zack0zack 5 1,003 Último mensaje 22 Septiembre 2007, 16:41
por zack0zack
CAPTCHA sin GD?
Desarrollo Web
Alex_bro 4 1,691 Último mensaje 18 Noviembre 2007, 17:57
por Azielito
Captcha vb.net
.NET
diego_lp 1 1,788 Último mensaje 25 Septiembre 2010, 03:01
por [D4N93R]
Captcha Killer v2
Hacking Básico
ruben_new 1 1,946 Último mensaje 30 Diciembre 2010, 15:11
por ruben_new
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines