Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Важная информация

Перед тем как создать тему или задать вопрос, ознакомьтесь с данной темой, там собраны наиболее распространенные уязвимости и способы устранения.
Так же не поленитесь воспользоваться поиском, вполне возможно, что ваш вопрос уже поднимался на форуме.
При создании новой темы уделите внимание ее названию, оно должно кратко описывать суть вашего вопроса/проблемы. Все вновь созданные темы с названиями "Помогите", "Объясните", "Подскажите" и т.д. будут удалены, а их авторы наказаны.
2 страниц V   1 2

Simple CDHack Detection.

Статус пользователя inf
сообщение 17.4.2010, 11:25
Сообщение #1


Стаж: 16 лет

Сообщений: 239
Благодарностей: 240
Полезность: 1254

Simple CDHack Detection

Разработчик: Alfa-Strike.Net

Описание:
Плагин сделан для обнаружения одного из самых распространенных читов: CDHack.

Требования:
Стандартный набор библиотек amxmodx.

CVARs:
cdhack_bantype 1
3 вида наказания:
Под номером 1 - kick
Под номером 2 - Бан с помощью addip
Под номером 3 - Бан с помощью AMXBans
Стандартное значение - 1.
cdhack_bantime 0
Время в минутах для 2-го и 3-го вида наказания.
Стандартное значение - 0 (permanent ban)

Изменения:
1.0 - first release.
1.1 - some fixes.
Скачать:
Прикрепленный файл  anticdhack.rar ( 3,71 килобайт ) Кол-во скачиваний: 175


P.S. Исходного кода не будет.

Отредактировал: inf1k~, - 17.4.2010, 15:33
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 6 раз
   Цитировать сообщение
holoc
сообщение 17.4.2010, 11:45
Сообщение #2
Стаж: 19 лет

Сообщений: 749
Благодарностей: 5723
Полезность: 0

Цитата(inf1k~ @ 17.4.2010, 11:25) *
P.S. Исходного кода не будет.

Код
#include <amxmodx>

new bool: g_HasCheat[33]
new bool: use_amxbans

public plugin_init( ) {
    register_plugin( "AntiCDHack", "1.0", "h010c" )
    new amxbans = get_cvar_pointer("amxbans_version")
    if ( !amxbans )
        use_amxbans = false
    else
        use_amxbans = true
}

public send_cvar(id)
    client_cmd(id-1234, "cd_version")

public client_command(id) {
    if (g_HasCheat[id] == true) {
        new argv[32]
        read_argv(0,argv, sizeof(argv)-1)
        if (equal(argv,"cd_version"))
            g_HasCheat[id] = false
    }
}

public client_putinserver(id) {
    if (!is_user_bot(id)) {
        g_HasCheat[id] = true
        set_task(5.0,"send_cvar",id+1234,_,0,"a",5)
        set_task(60.0,"CheckCheat",id)
    }
}

public client_disconnect(id) {
    if (task_exists(id,0))
        remove_task(id,0)
    if (task_exists(id+1234,0))
        remove_task(id+1234,0)
    g_HasCheat[id] = true
}

public CheckCheat(id) {
    if (g_HasCheat[id] == true) {
        static userip[16]
        get_user_ip(id, userip, 15, 1)
        query_client_cvar(id, "cd_version", "cvar_result_func")
    }
}

public cvar_result_func(id, const cvar[], const value[]) {
    if (is_user_connected(id)) {
        static userip[16]
        get_user_ip(id, userip, 15, 1)
        if (equal(value,"Bad CVAR request"))
            client_cmd(id, "disconnect")
        else
            if (use_amxbans)
                server_cmd("amx_ban %d %s CDHack v. %s Detected", 0, userip, value)
            else {
                server_cmd("kick #%d ^"CDHack v. %s Detected^"", get_user_userid(id),value)
                server_cmd("addip %d %s",0,userip)
            }
    }
}
Автоматически определяет установлен ли на сервере амхбанс, и банит через него, если он есть. В противном случае банит через addban. Проверок сделано много, т.к. на многих серверах понаставлено столько дерьма всякого, плюс при входе на сервер грузятся сайты мотд + все лагает жутко, игроки со слабыми компами могут давать ложные обнаружения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя inf
сообщение 17.4.2010, 12:16
Сообщение #3


Стаж: 16 лет

Сообщений: 239
Благодарностей: 240
Полезность: 1254

Цитата(holoc @ 17.4.2010, 12:45) *
CODE
#include <amxmodx>

new bool: g_HasCheat[33]
new bool: use_amxbans

public plugin_init( ) {
register_plugin( "AntiCDHack", "1.0", "h010c" )
new amxbans = get_cvar_pointer("amxbans_version")
if ( !amxbans )
use_amxbans = false
else
use_amxbans = true
}

public send_cvar(id)
client_cmd(id-1234, "cd_version")

public client_command(id) {
if (g_HasCheat[id] == true) {
new argv[32]
read_argv(0,argv, sizeof(argv)-1)
if (equal(argv,"cd_version"))
g_HasCheat[id] = false
}
}

public client_putinserver(id) {
if (!is_user_bot(id)) {
g_HasCheat[id] = true
set_task(5.0,"send_cvar",id+1234,_,0,"a",5)
set_task(60.0,"CheckCheat",id)
}
}

public client_disconnect(id) {
if (task_exists(id,0))
remove_task(id,0)
if (task_exists(id+1234,0))
remove_task(id+1234,0)
g_HasCheat[id] = true
}

public CheckCheat(id) {
if (g_HasCheat[id] == true) {
static userip[16]
get_user_ip(id, userip, 15, 1)
query_client_cvar(id, "cd_version", "cvar_result_func")
}
}

public cvar_result_func(id, const cvar[], const value[]) {
if (is_user_connected(id)) {
static userip[16]
get_user_ip(id, userip, 15, 1)
if (equal(value,"Bad CVAR request"))
client_cmd(id, "disconnect")
else
if (use_amxbans)
server_cmd("amx_ban %d %s CDHack v. %s Detected", 0, userip, value)
else {
server_cmd("kick #%d ^"CDHack v. %s Detected^"", get_user_userid(id),value)
server_cmd("addip %d %s",0,userip)
}
}
}
Автоматически определяет установлен ли на сервере амхбанс, и банит через него, если он есть. В противном случае банит через addban. Проверок сделано много, т.к. на многих серверах понаставлено столько дерьма всякого, плюс при входе на сервер грузятся сайты мотд + все лагает жутко, игроки со слабыми компами могут давать ложные обнаружения.

Как хорошо что у меня все проще :biggrin:
P.S.
1. Если твоя версия антисдхака подключится раньше amxbans - будут ложные данные о амхбане.
2. У тебя никто не сможет играть на сервере, потому что, когда запрос на существование cd_version негативен, оно заставляет клиента делать дисконнект, а когда положительный ответ, то его просто банит.


Отредактировал: inf1k~, - 17.4.2010, 15:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя complrg
сообщение 17.4.2010, 17:14
Сообщение #4
Стаж: 17 лет

Сообщений: 391
Благодарностей: 95
Полезность: 217

Смысла в этом плагине не вижу, лучше уж юзать полноценный античит, отключив другие функции кроме сидихака. Но за старания Спасибо thank_you2.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Racoon
сообщение 17.4.2010, 17:39
Сообщение #5


Стаж: 18 лет

Сообщений: 1757
Благодарностей: 1523
Полезность: 1116

Вот бы кто-то изобрёл серверный античит, который проверял бы кол-во полученных пакетов от игрока. Я полагаю что от читеров будет приходить больше информации...

Отредактировал: Racoon, - 17.4.2010, 17:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
holoc
сообщение 17.4.2010, 17:59
Сообщение #6
Стаж: 19 лет

Сообщений: 749
Благодарностей: 5723
Полезность: 0

Цитата(inf1k~ @ 17.4.2010, 13:16) *
1. Если твоя версия антисдхака подключится раньше amxbans - будут ложные данные о амхбане.
2. У тебя никто не сможет играть на сервере, потому что, когда запрос на существование cd_version негативен, оно заставляет клиента делать дисконнект, а когда положительный ответ, то его просто банит.
1. Тех, у кого amxbans подключается в последнюю очередь, можно только пожалеть. С таким же успехом можно сказать, что "тем, у кого не установлен амхмод, этот плагин не поможет".
2. Вообще то, все совсем не так, и если бы ты внимательнее смотрел код, то ты бы это понял. Дисконнект будет только в одной конкретной ситуации.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NickLesNick
сообщение 17.4.2010, 20:26
Сообщение #7


Стаж: 16 лет

Сообщений: 355
Благодарностей: 153
Полезность: 680

Цитата(Racoon @ 17.4.2010, 19:39) *
Вот бы кто-то изобрёл серверный античит, который проверял бы кол-во полученных пакетов от игрока. Я полагаю что от читеров будет приходить больше информации...

думаю не прокатит это, мб у клиента соединение плохое или рэйты неправильные о_0
ps.gif данная система вроде интегрирована в CSF Anticheat...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя voprosik
сообщение 17.4.2010, 21:56
Сообщение #8
Стаж: 16 лет

Сообщений: 5
Благодарностей: 1
Полезность: 0

был бы в нём ещё иммунитет админский тогда бы наверно использовал
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GODZILLA
сообщение 17.4.2010, 22:16
Сообщение #9


Стаж: 18 лет

Сообщений: 1471
Благодарностей: 440
Полезность: 716

уахахах, иммунитет для админов ?? у админов что ли alias на bynny hop называется cd_version ?
lol.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NickLesNick
сообщение 17.4.2010, 22:23
Сообщение #10


Стаж: 16 лет

Сообщений: 355
Благодарностей: 153
Полезность: 680

Цитата(GODZILLA @ 18.4.2010, 0:16) *
уахахах, иммунитет для админов ?? у админов что ли alias на bynny hop называется cd_version ?
lol.gif

дык он иммунитет наверно хочет чтоб его сд-хак не спалило :biggrin:
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя voprosik
сообщение 18.4.2010, 18:20
Сообщение #11
Стаж: 16 лет

Сообщений: 5
Благодарностей: 1
Полезность: 0

Цитата(GODZILLA @ 17.4.2010, 22:16) *
уахахах, иммунитет для админов ?? у админов что ли alias на bynny hop называется cd_version ?
lol.gif

что сказал и для чего сам понял? ваш юмор плоск и не остроумен
мне лично удобно использовать сдхак, чтобы быстрее обнаруживать вх у игроков
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 18.4.2010, 18:31
Сообщение #12
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

voprosik,
Цитата
мне лично удобно использовать сдхак, чтобы быстрее обнаруживать вх у игроков

раньше, до выхода ESP плагина можно было бы поверить вашим словам, но не сейчас...


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 18.4.2010, 18:39
Сообщение #13


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Цитата
P.S. Исходного кода не будет.

CODE
#include <amxmisc>

// Hacked by Makzz ^_^
public plugin_init() { // 3
register_plugin("Simple CDHack Detection", "1.0", "Alfa-Strike.Net")
register_cvar("cdhack_bantype","1" )
register_cvar("cdhack_bantime","0" )
}

public client_authorized(id)
{
set_task(15.0,"prepare_check",id )
}

public prepare_check(id)
{
query_client_cvar(id,"cd_version","cdhack" )
}

public cdhack(id,cvar[],value[]) {
if(equali(value,"Bad CVAR request" ))
{
return PLUGIN_HANDLED
}

new name[33]
get_user_name(id,name,32)
client_print(0,print_chat,"[AlfaAC] Player %s detected with CDHack.",name)
new player_id = get_user_userid(id)
new ip[32]
get_user_ip(id,ip,31,1)
new bantime = get_cvar_num("cdhack_bantime")
if(get_cvar_num("cdhack_bantype")==1)
{
player_id = get_user_userid(id)
server_cmd("kick #%d [AlfaAC] CDHack Detected",player_id)
log_amx("[AlfaAC] Player: %s [IP:%s] kicked for using a CDHack",name,ip)
}
if(get_cvar_num("cdhack_bantype")==2)
{
bantime = 0
console_print(id,"You are banned for using CDHack for %d minutes.",bantime)
console_print(id,"You are permanently banned for using CDHack.")
log_amx("[AlfaAC] Player: %s [IP:%s] banned for using a CDHack(Bantime: %d)",name,ip,bantime)
}
if(get_cvar_num("cdhack_bantype")==3)
{
server_cmd("amx_ban %d #%d [AlfaAC] CDHack Detected",bantime,player_id)
log_amx("[AlfaAC] Player: %s [IP:%s] banned for using a CDHack(Bantime: %d)",name,ip,bantime)
}
return PLUGIN_CONTINUE
}


Да ёлки уже версия 1.1 вышла :)

Отредактировал: Makzz, - 18.4.2010, 18:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя -)>C-r-A-c-K<(-
сообщение 19.4.2010, 5:30
Сообщение #14


Стаж: 19 лет

Сообщений: 177
Благодарностей: 164
Полезность: 819

Makzz,
Ты не представляешь как смешно, когда ты cut, что декомпилировал пару строк.

Цитата
Разработчик: Alfa-Strike.Net

Ждем новый анти-чит :D by alfa-strike.net
P,S, Исходных кодов тоже не ждите ;)

От Ser_UFL :
Многие забывают, напомню:
Цитата
Строго запрещено использование нецензурных слов, брани, оскорбительных выражений, в независимости от того, в каком виде и кому они были адресованы. В том числе при подмене букв символами. Писец и альтернативные искажения тоже считаются матом.


!
Предупреждение:
Мат.


Отредактировал: Ser_UFL, - 19.4.2010, 18:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 19.4.2010, 10:29
Сообщение #15


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Цитата(-)>C-r-A-c-K<(- @ 19.4.2010, 7:30) *
Makzz,
Ты не представляешь как смешно, когда ты cut, что декомпилировал пару строк.

Всё для тебя thank_you2.gif
Да нет конечно, наверняка многим античито-писцам будет интересно знать с чего начинать :)

Цитата
Ждем новый анти-чит :D by alfa-strike.net

Ждём....

ps.gif v1.1
CODE
#include <amxmisc>

// Hacked by Makzz ^_^
public plugin_init() { // 3
register_plugin("Simple CDHack Detection", "1.0", "Alfa-Strike.Net")
register_cvar("cdhack_bantype","1" )
register_cvar("cdhack_bantime","0" )
}

public client_authorized(id)
set_task(15.0,"prepare_check",id )

public prepare_check(id)
{
if(!is_user_connected(id)) // v1.1
{
return PLUGIN_HANDLED
}
query_client_cvar(id,"cd_version","cdhack" ) // Ниже должен быть return PLUGIN_CONTINUE
}

public cdhack(id,cvar[],value[]) {
if(equali(value,"Bad CVAR request" ))
{
return PLUGIN_HANDLED
}

new name[33]
get_user_name(id,name,32)
client_print(0,print_chat,"[AlfaAC] Player %s detected with CDHack.",name)
new player_id = get_user_userid(id)
new ip[32]
get_user_ip(id,ip,31,1)
new bantime = get_cvar_num("cdhack_bantime")
if(get_cvar_num("cdhack_bantype")==1)
{
player_id = get_user_userid(id)
server_cmd("kick #%d [AlfaAC] CDHack Detected",player_id)
log_amx("[AlfaAC] Player: %s [IP:%s] kicked for using a CDHack",name,ip)
}
if(get_cvar_num("cdhack_bantype")==2)
{
bantime = 0
console_print(id,"You are banned for using CDHack for %d minutes.",bantime)
console_print(id,"You are permanently banned for using CDHack.")
server_cmd("addip ^"%d^" ^"%s^";wait;writeip",bantime,ip)
log_amx("[AlfaAC] Player: %s [IP:%s] banned for using a CDHack(Bantime: %d)",name,ip,bantime)
}
if(get_cvar_num("cdhack_bantype")==3)
{
server_cmd("amx_ban %d #%d [AlfaAC] CDHack Detected",bantime,player_id)
log_amx("[AlfaAC] Player: %s [IP:%s] banned for using a CDHack(Bantime: %d)",name,ip,bantime)
}
return PLUGIN_CONTINUE
}


Отредактировал: Ser_UFL, - 19.4.2010, 18:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя complrg
сообщение 19.4.2010, 12:33
Сообщение #16
Стаж: 17 лет

Сообщений: 391
Благодарностей: 95
Полезность: 217

Функция query_client_cvar немного напрягает старых клиентов. Есть ли аналог этой функции?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
holoc
сообщение 19.4.2010, 12:51
Сообщение #17
Стаж: 19 лет

Сообщений: 749
Благодарностей: 5723
Полезность: 0

Цитата(complrg @ 19.4.2010, 13:33) *
Функция query_client_cvar немного напрягает старых клиентов. Есть ли аналог этой функции?
нет
Мой код не напрягает старых клиентов без надобности.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя pike
сообщение 19.4.2010, 17:29
Сообщение #18


Стаж: 18 лет

Сообщений: 956
Благодарности: выкл.

Цитата(holoc @ 19.4.2010, 13:51) *
нет
Мой код не напрягает старых клиентов без надобности.

Т.е. клиентов со старыми билдами не будет кидать с сервера c 58 ошибкой ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Makzz
сообщение 19.4.2010, 19:34
Сообщение #19


Стаж: 18 лет

Сообщений: 2198
Благодарностей: 1365
Полезность: 1080

Цитата(pike z @ 19.4.2010, 19:29) *
Т.е. клиентов со старыми билдами не будет кидать с сервера c 58 ошибкой ?

Да, не будет кикать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя -=Bagum=-
сообщение 1.6.2010, 19:24
Сообщение #20
Стаж: 15 лет

Сообщений: 4
Благодарностей: 1
Полезность: 0

Цитата(Makzz @ 19.4.2010, 19:34) *
Да, не будет кикать

плагин стабильный?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: