Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] skrypt obchodzacy zabezpieczenie javascript, dziwny blad
Forum PHP.pl > Forum > Przedszkole
gog
Czesc, mam napisalem skrypt, ktory ma za zadanie przeszukac kilka podstron na www.samair.ru, znajduja sie tam ip serwerow proxy, natomiast numery portow sa sprytnie zabezpieczone w javaascripcie, wyglada to tak:
<tr><td>84.245.83.253<script type="text/javascript">document.write(":"+o+w+d+l)</script>
a w head
<script type="text/javascript">
u=4;d=2;n=7;t=9;w=1;i=5;f=6;v=0;l=8;o=3;</script>
calkiem zmyslnie prawda, dla kazdej podstrony lista tych znakow podmieniajacych numer portu jest inna, napisalem wiec ten skrypt coby to zabezpieczenie ominac i zrobic baze:

  1. <?php
  2.  
  3. for ( $numer = 1 ; $numer < 49 ; $numer++ ){
  4. if (strlen($numer) < 2 ){$numer = "0".$numer;}
  5. $fp=fsockopen("www.samair.ru", "80"); 
  6. fwrite($fp, "GET /proxy/proxy-".$numer.".htm HTTP/1.1
  7. User-Agent: The BoT (Windows 666; U; FY)
  8. Host: www.samair.ru
  9. Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
  10. Accept-Language: pl-PL,pl;q=0.9,en;q=0.8
  11. Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
  12. Accept-Encoding: identity, *;q=0
  13. Cache-Control: no-cache
  14. Connection: Keep-Alive
  15.  
  16. ");
  17. while(!feof($fp)){$dane.= fread($fp, 1024);}
  18.  
  19. preg_match_all("/(.)=(.);/", $dane, $out_js, PREG_PATTERN_ORDER);
  20. preg_match_all("/([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})<script type=\"text/javascript\">document.write(\":\"(.*?))</script>/", $dane, $out, PREG_PATTERN_ORDER);
  21.  
  22. fclose($fp);
  23. $ile = 0;
  24. while ($out[0][$ile] != 0){
  25.  
  26. $out[5][$ile] = str_replace("+", "", $out[5][$ile]);
  27.  
  28. $ile_js = 0;
  29. while ($out_js[1][$ile_js] != 0) {  // ## LINIA 29 W KTOREJ JEST BLAD ## //
  30. $out[5][$ile] = str_replace($out_js[1][$ile_js], $out_js[2][$ile_js], $out[5][$ile]);
  31. $ile_js++;
  32. }
  33. $out_js = "";
  34.  
  35.  $file = "proxy.txt"; 
  36.  $fp = fopen($file, "a+"); 
  37.  fwrite($fp, stripslashes($out[0][$ile].":".$out[5][$ile]."r\n")); 
  38.  
  39. $ile++;
  40. }
  41. $out = "";
  42. $dane = "";
  43. }
  44. ?>



niestety wyskakuje dziwny blad o tresc:
PHP Fatal error: Cannot use string offset as an array in ipreg.php on line 29
moglby mi ktos wytlumaczyc co jest nie tak? glowie sie nad tym juz dluzszy czas, skrypt wydawac by sie moglo powinien dzialac, robilem wczesniej takie kontrukcje i nie bylo problemu

Z gory dzieki za pomoc
gog
Tutaj macie ten sam kod troche przystepniej, bo w tym wyzej gowno widac

  1. <?php
  2.  
  3. for ( $numer = 1 ; $numer < 49 ; $numer++ )
  4. {
  5. if (strlen($numer) < 2 ){$numer = "0".$numer;}
  6.  
  7. $fp=fsockopen("www.samair.ru", "80"); 
  8. fwrite($fp, "GET /proxy/proxy-".$numer.".htm HTTP/1.1
  9. User-Agent: The BoT (Windows 666; U; FY)
  10. Host: www.samair.ru
  11. Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
  12. Accept-Language: pl-PL,pl;q=0.9,en;q=0.8
  13. Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
  14. Accept-Encoding: identity, *;q=0
  15. Cache-Control: no-cache
  16. Connection: Keep-Alive
  17.  
  18. ");
  19. while(!feof($fp)){$dane.= fread($fp, 1024);}
  20.  
  21. preg_match_all("/(.)=(.);/", $dane, $out_js, PREG_PATTERN_ORDER);
  22. preg_match_all("/([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})<script type=\"text/javascript\">document.write(\":\"(.*?))</script>/", $dane, $out, PREG_PATTERN_ORDER);
  23.  
  24. fclose($fp);
  25. $ile = 0;
  26.  
  27. while ($out[0][$ile] != 0)
  28. {
  29. $out[5][$ile] = str_replace("+", "", $out[5][$ile]);
  30. $ile_js = 0;
  31.  
  32. while ($out_js[1][$ile_js] != 0)
  33. {
  34. $out[5][$ile] = str_replace($out_js[1][$ile_js], $out_js[2][$ile_js], $out[5][$ile]);
  35. $ile_js++;
  36. }
  37.  
  38. $out_js = "";
  39. $file = "proxy.txt"; 
  40.  $fp = fopen($file, "a+"); 
  41.  fwrite($fp, stripslashes($out[0][$ile].":".$out[5][$ile]."r\n")); 
  42. $ile++;
  43. }
  44.  
  45. $out = "";
  46. $dane = "";
  47. }
  48. ?>
marcio
  1. <?php
  2. $ile_js = 0;
  3.  
  4. while ($out_js[1][$ile_js] != 0) {
  5.  
  6. //reszta kodu
  7.  
  8. }
  9. ?>

A nie chodzi o to ze zmienna $ile_js nie jest tablica??i wtedy zle porownujesz questionmark.gif
gog
Poprawka, blad jest w lini nizej, czyli:
$out[5][$ile] = str_replace($out_js[1][$ile_js], $out_js[2][$ile_js], $out[5][$ile]);
dlaczego tak nie moze byc?
gog
Nikt nie wie co moze byc powodem wystepowania takiego bladu?questionmark.gif
Gość
Cytat(marcio @ 22.03.2008, 02:08:35 ) *
A nie chodzi o to ze zmienna $ile_js nie jest tablica??i wtedy zle porownujesz questionmark.gif

nie jest i nie ma byc, wskazuje tylko na element tablicy, jak to zle porownuje?
Sabistik
Zamykam. Nie pomagamy w łamaniu zabezpieczeń.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.