Bir url görüntü, birkaç sonuç

1 Cevap php

Bazı captcha'lar çok zayıf programcılar göstermeye çalışıyorum, ve ben onları kırıyorum. Şimdi böyle bir şey var:

Fonksiyon:

<?php

function cbreak($image)
{

$info = getimagesize($image);
$width = $info[0];
$height = $info[1];

$img = imagecreatefromgif($image);

$map = array();
for($y=0; $y<$height; $y++)
{
  for($x=0; $x<$width; $x++)
  {
    $color = imagecolorsforindex($img, imagecolorat($img, $x, $y));

    $map[$x][$y] = ($color['red'] + $color['blue'] + $color['green'] > 750) ? TRUE : FALSE;  
  }  
}
echo '<pre>';
for($y=0; $y<$height; $y++)
{
  for($x=0; $x<$width; $x++)
  {
    echo ($map[$x][$y] == TRUE) ? 'X' : '-';  
  }
  echo '<br>';  
}
echo '</pre>';

$sum = '';
for($x=0; $x<$width; $x++)
{
  $count = 0;
  for($y=0; $y<$height; $y++)
  {
    if($map[$x][$y] == TRUE) $count++;  
  } 

  $sum .= ($count == 0) ? 'X' : $count;
}

$sum = preg_replace('#X+#', 'X', $sum);
$sum = trim($sum, 'X');
$letters = explode('X', $sum);

$patterns = array(
/* Still not here */
);

$token = '';
for($i=0; $i<count($letters); $i++)
{
  $token .= $patterns[$letters[$i]]; 
}

echo $token; 
}
?>

Eylem:

<?php

$cl = curl_init("http://www.takeagift.pl/rejestracja");

curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);

$r = curl_exec($cl);


$pattern = "/src=[\"'].*[\"']?/i";
preg_match_all($pattern, $r, $images);

$c = array();
for($i=0; $i<sizeof($images[0]); $i++)
{
    if(strstr($images[0][$i], 'captcha') !== false)
    {
        $c = $images[0][$i]; 
    }
}
$s1 = substr($c, 0, -8);
echo $s1."<br />";
$s = substr($s1, 5, -1);
echo $s."<br />";
curl_close($cl);

?>

<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<img src="http://www.takeagift.pl/includes/modules/captcha.php?1270900968" /><br />
<?php include('cb.php'); 
cbreak("http://www.takeagift.pl/includes/modules/captcha.php?1270900968");
?>

Ben hala sıradanifade öğrendim değil preg_match'in bakma.

(? Captcha.php 1270900968), ama sonuç - değil: Gördüğünüz gibi Yani bağlantıları aynıdır.

Bana, (Ben bu portal spam yapmıyorum) lütfen yardım

Edit:

Q - bir bağlantıdan bir görüntü almak nasıl? Neden imagecreatefromgif ($ image); Normal bağlantı olarak aynı görüntüyü dönmüyor? Aynı görüntüyü almak nasıl?

1 Cevap

Kaynak görüntü her istek için değişir çünkü ben senin sonuçları sabit olmama düşünebilirsiniz tek şey. Bu komut dosyasını test etmek istiyorsanız ben size yerel sunucuya bir görüntü kaydetmek ve bir doğru ayrıştırılır olduğundan emin olmak için çalışmalısınız varsayalım. Kendi çalışma varsa, diğer üretilen ile görüntüleri takas ve emin onlar da iş yapabilir.

Ben bir yerel geçici dosyaya falan görüntü kaydetmek için () file_get_contents kullanın ve oradan çalışmak:

$ImageData = file_get_contents('http://www.takeagift.pl/includes/modules/captcha.php?1270900968');
file_put_contents('temp.gif', $ImageData);

cbreak('temp.gif');