[HLDS] AutoBuy баг

Тема в разделе "Защита игрового сервера", создана пользователем Andrey, 14 сен 2010.

  1. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.509
    Суть бага
    @steampowered.com
    На русском: при выполнении определенного алгоритма автозакупки — сервер крашится.
    Создаем файл autobuy.txt с содержанием
    Код:
    m4a1
    ak47
    famas
    galil
    p90
    mp5
    
    primammo
    secammoalias "primammo" "buyammo1;buyammo1;buyammo1;buyammo1;buyammo1;buyammo1;buyammo1"
    alias "secoammo" "buyammo2;buyammo2;buyammo2;buyammo2;buyammo2;buyammo2;buyammo2"
    
    alias "+awpsniper" "awp;usp;vesthelm;flash;flash;hegren;defuser"
    alias "-awpsniper" "slot10;secoammo;primammo"
    
    then
    
    bind "f5" "+awpsniper"
    
    defuser
    
    vesthelm
    vest
    Заходим на сервер, выполняем команду cl_setautobuy fuck 12345678901234567890123456789012. PROFIT же.

    На самом деле не важно какое содержание будет у этого файла, там может быть абсолютная белиберда, главное что бы длина одной из строк была больше либо равна 32 символам

    Решение проблемы
    Код плагина который нужно скомпилировать:
    Код:
    #include <amxmodx> 
    
    #define PLUGIN_NAME        "Fix AutoBuy Bug" 
    #define PLUGIN_VERSION    "1.1" 
    #define PLUGIN_AUTHOR    "PomanoB & UFPS.Team" 
    
    new g_logfile[64] 
    
    public plugin_init( ) 
    { 
        register_plugin( PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR ) 
    
        register_clcmd( "cl_setautobuy", "cmd_check" ) 
        register_clcmd( "cl_setrebuy", "cmd_check" ) 
    
        get_time ( "autobuy_%Y%m.log", g_logfile, charsmax ( g_logfile ) ) 
    } 
    
    public cmd_check( id ) 
    { 
        static arg[512], args, i 
        args = read_argc( ) 
    
        for( i = 1; i < args; ++i ) 
        { 
            read_argv( i, arg, charsmax( arg ) ) 
    
            if( is_cmd_long( arg, charsmax( arg ) ) ) 
            { 
                log_autobuy( id ) 
                return PLUGIN_HANDLED 
            } 
        } 
    
        return PLUGIN_CONTINUE 
    } 
    
    stock bool:is_cmd_long( string[], const len ) 
    { 
        static cmd[512] 
    
        while( strlen( string ) ) 
        { 
            strtok( string, cmd, charsmax( cmd ), string, len , ' ', 1 ) 
    
            if( strlen( cmd ) > 31 ) return true 
        } 
    
        return false 
    } 
    
    stock log_autobuy( id ) 
    { 
        static name[32], steamid[44], ip[16] 
        get_user_ip( id, ip, charsmax( ip ), 1 ) 
        get_user_authid( id, steamid, charsmax( steamid ) ) 
        get_user_name( id, name, charsmax( name ) ) 
    
        log_to_file( g_logfile, "Autobuy bug use: %s [%s] <%s>", name, ip, steamid ) 
    }
    Источник: d-s.ru и gm-community
     

    Вложения:

  2. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.725
    Симпатии:
    461
    есть что-то похожее на sourcemod?
     
  3. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    sm 1.4.2 или выше
     
  4. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.725
    Симпатии:
    461
    Название\линк?
     
  5. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    название :)
     
  6. NagarD

    NagarD

    Сообщения:
    412
    Симпатии:
    170
    есть
    Вариант 1 отключит автозакупку
    Вариант 2 заблокирует хак (если у тебя установлен хак, то у тебя не работает автозакупка, если чисты, то все норма)
     

    Вложения:

    • 1.smx
      Размер файла:
      0 байт
      Просмотров:
      1
    • 2.smx
      Размер файла:
      0 байт
      Просмотров:
      5
    1 человеку нравится это.
  7. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.725
    Симпатии:
    461


    Сорсы?
     
  8. CTe6eJIeK_vRn

    CTe6eJIeK_vRn Супер-модератор

    Сообщения:
    2.014
    Симпатии:
    1.798
    здесь только amx !!!