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

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

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

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

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

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

Меняет SteamID, обходит бан

Статус пользователя zippel
сообщение 13.4.2017, 13:47
Сообщение #1


Стаж: 15 лет

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

Есть челик, постоянно заходит с разными ИДами.
Я посмотрел по конфигу Dproto,
Цитата
# For players having revEmu ( >= 9.74) on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_RevEmu = 1

# For players having RevEmu 2013 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_RevEmu2013 = 1

# For players having SteamClient 2009 / revEmu > 9.82 on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_SC2009 = 1

# For players having old revEmu on client-side:
# default is real STEAM_xx:xx:xx [1]
cid_OldRevEmu = 1

...

# RevEmu_Prefix1 (int)
# STEAM_a:b:c
# first prefix (a) for authids generated by RevEmu
RevEmu_Prefix1 = 2;

Т.е. как я понимаю dproto накидывает ему каждый раз новый стимИД при каждом его новом коннекте, что ле так получается?

Как бороть, есть идеи? Влепил правило через брандмауэр, вроде отвалился.
Но всё таки.. меняет иды. Это ваще как?) Такое возможно? Перезаходит сразу же..

Отредактировал: zippel, - 13.4.2017, 14:16
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя adva
сообщение 13.4.2017, 14:21
Сообщение #2


Иконка группы

Стаж: 10 лет

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

Меценат Меценат

zippel, а алиас чекер введи наказание за подмену стимайди. Зайди в тему маздана alias checker и посмотри конфиги в самом вверху есть правила.. либо допбан от маздана, он ставит метки, при обходе сразу забанит.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 13.4.2017, 14:22
Сообщение #3


Стаж: 15 лет

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

Цитата(adva @ 13.4.2017, 14:21) *
zippel, а алиас чекер введи наказание за подмену стимайди. Зайди в тему маздана alias checker и посмотри конфиги в самом вверху есть правила.. либо допбан от маздана, он ставит метки, при обходе сразу забанит.

оК. СПС. ЩЯ ЧЕКНУ!

P.S. чекнул, спасибо, но не подходит. Альтернативы как понял нету, ладно, буду банить руками.

Отредактировал: zippel, - 13.4.2017, 14:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 13.4.2017, 14:51
Сообщение #4


Иконка группы

Стаж: 10 лет

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

Меценат Меценат

zippel, всмысле не подходит? У тебя чел меняет стим айди с помощью команды set_steam_id, ее в алиас чекере можно детектить и он банит сразу, если обнаружит
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя zippel
сообщение 13.4.2017, 15:00
Сообщение #5


Стаж: 15 лет

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

Цитата(adva @ 13.4.2017, 14:51) *
zippel, всмысле не подходит? У тебя чел меняет стим айди с помощью команды set_steam_id, ее в алиас чекере можно детектить и он банит сразу, если обнаружит

так бы и сразу) Но это не клиентское. Скорее всего сторонее, так что там что угодно может быть. Или нет?

Отредактировал: zippel, - 13.4.2017, 15:01
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 13.4.2017, 15:16
Сообщение #6


Стаж: 15 лет

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

А есть боты с AI? Всмысле не те боты которые на уровне движка бегают, типа POD или ZBots, а фейковые игроки?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Energy
сообщение 13.4.2017, 15:24
Сообщение #7


Иконка группы

Стаж: 8 лет 10 месяцев

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

zippel, стоит od? Накинь проверки в спойлер.


https:// $
ip:port $

Аватар не имеет военного смысла, просто хохма.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csuser
сообщение 13.4.2017, 15:42
Сообщение #8
Стаж: 7 лет 8 месяцев

Сообщений: 1155
Благодарностей: 309
Полезность: 130

Цитата(adva @ 13.4.2017, 15:51) *
У тебя чел меняет стим айди с помощью команды set_steam_id, ее в алиас чекере можно детектить и он банит сразу, если обнаружит


А если чел использует ExtraMirror - то как детектить будешь?
Теперь таких грамотеев процентов 90.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 13.4.2017, 15:44
Сообщение #9


Иконка группы

Стаж: 10 лет

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

Меценат Меценат

zippel, всмысле стороннее? Клиент-сервер. Что может быть ещё?
Клиент меняет стимайди, сервер его принимает и пускает. А ты с сервера чекаешь клиентскую команду на смену стимайди и банишь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 13.4.2017, 15:51
Сообщение #10


Стаж: 15 лет

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

Цитата(adva @ 13.4.2017, 15:44) *
zippel, всмысле стороннее? Клиент-сервер. Что может быть ещё?
Клиент меняет стимайди, сервер его принимает и пускает. А ты с сервера чекаешь клиентскую команду на смену стимайди и банишь.

Это рили клиентская команда? Что? Я первый раз её вижу. Когда её добавили? Я ничего не понимаю, как можно командой сменить стим ИД, который Dproto генерит по HWID

Если это касается какой нибудь из версий RevEmu - может проще отрубить её..

В всяком случае, пока что! Случай единичный..

Отредактировал: zippel, - 13.4.2017, 15:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя daywer
сообщение 13.4.2017, 18:09
Сообщение #11


Стаж: 11 лет
Город: Санкт-Петербург


Сообщений: 136
Благодарностей: 121
Полезность: 1051

Это чит софт и чит кс в которую встроена команда такая,прием тут dproto?


Написание плагинов на заказ.(sql,sqlite,nvault)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя viper2020
сообщение 13.4.2017, 23:51
Сообщение #12


Стаж: 11 лет

Сообщений: 150
Благодарностей: 20
Полезность: 13

zippel,
steamid_limiter
/**
* Credits: Safety1st for whitelist.
*/
#include <amxmodx>
#include <sqlx>

#define PLUGIN "SteamID Limiter"
#define VERSION "0.4"
#define AUTHOR "Mistrick"

#pragma semicolon 1

#define STEAMID_PER_IP 2
#define SAVE_LASTDAYS 1
#define REASON "Wrong SteamID"

#define WHITELIST // uncomment to enable whitelist

#if defined WHITELIST
new const g_szWhiteList[][] =
{
"127.0.0.0/8", // loopback interface (usually assigned IP is 127.0.0.1)
"192.168.0.0/24" // 192.168.0.0/24 subnet, IPs range 192.168.0.0 ... 192.168.0.255
};
enum _:WhitelistData
{
NET_IP,
NET_MASK
};
new Array:g_aWhitelist;
#endif

new const DATABASE[] = "addons/amxmodx/data/steamidlimiter.db";

new Handle:g_Tuple, g_szQuery[256];

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
SQLite_Init();

#if defined WHITELIST
new eNetData[WhitelistData];
g_aWhitelist = ArrayCreate(WhitelistData);

for( new i; i < sizeof(g_szWhiteList); i++ )
{
net_to_long( g_szWhiteList[i], eNetData[NET_IP], eNetData[NET_MASK] );
ArrayPushArray( g_aWhitelist, eNetData );
}
#endif
}
SQLite_Init()
{
SQL_SetAffinity("sqlite");

if(!file_exists(DATABASE))
{
new file = fopen(DATABASE, "w");
if(!file)
{
new szMsg[128]; formatex(szMsg, charsmax(szMsg), "%s file not found and cant be created.", DATABASE);
set_fail_state(szMsg);
}
fclose(file);
}

g_Tuple = SQL_MakeDbTuple("", "", "", DATABASE, 0);

formatex(g_szQuery, charsmax(g_szQuery),
"CREATE TABLE IF NOT EXISTS `players`( \
id INTEGER PRIMARY KEY,\
ip TEXT NOT NULL, \
steamid TEXT NOT NULL,\
lastseen INTEGER)");
SQL_ThreadQuery(g_Tuple, "QueryHandleCreate", g_szQuery);

formatex(g_szQuery, charsmax(g_szQuery), "DELETE FROM `players` WHERE lastseen<%d", get_systime() - SAVE_LASTDAYS * 86400);
SQL_ThreadQuery(g_Tuple, "QueryHandleCreate", g_szQuery);
}
public QueryHandleCreate(failstate, Handle:query, error[], errnum, data[], size)
{
if(failstate != TQUERY_SUCCESS)
{
log_amx("SQL QueryHandleCreate error: %s", error);
}
}
public client_authorized(id)
{
if(is_user_steam(id) || is_user_bot(id) || is_user_hltv(id)) return;

new szPlayerIp[32]; get_user_ip(id, szPlayerIp, charsmax(szPlayerIp), 1);
new szPlayerSteamid[32]; get_user_authid(id, szPlayerSteamid, charsmax(szPlayerSteamid));

if(containi(szPlayerSteamid, "lan") != -1) return;

#if defined WHITELIST
new eNetData[WhitelistData];
for( new i; i < sizeof(g_szWhiteList); i++ )
{
ArrayGetArray( g_aWhitelist, i, eNetData );
if( eNetData[NET_IP] == ip_to_long(szPlayerIp) & eNetData[NET_MASK] ) return;
}
#endif

new data[1]; data[0] = id;
formatex(g_szQuery, charsmax(g_szQuery), "SELECT * FROM `players` WHERE ip='%s' LIMIT %d", szPlayerIp, STEAMID_PER_IP);
SQL_ThreadQuery(g_Tuple, "QueryHandleCheckPlayer", g_szQuery, data, sizeof(data));
}
public QueryHandleCheckPlayer(failstate, Handle:query, error[], errnum, data[], size)
{
if(failstate != TQUERY_SUCCESS)
{
log_amx("SQL QueryHandleCheckPlayer error: %s", error);
return;
}

new id = data[0];
new szPlayerIp[32]; get_user_ip(id, szPlayerIp, charsmax(szPlayerIp), 1);
new szPlayerSteamid[32]; get_user_authid(id, szPlayerSteamid, charsmax(szPlayerSteamid));

if(SQL_MoreResults(query))
{
new index = SQL_ReadResult(query, 0);
new szLoadedIp[32]; SQL_ReadResult(query, 1, szLoadedIp, charsmax(szLoadedIp));
new szLoadedSteamid[32]; SQL_ReadResult(query, 2, szLoadedSteamid, charsmax(szLoadedSteamid));

if(equali(szPlayerSteamid, szLoadedSteamid))
{
UpdatePlayer(index);
}
else
{
#if STEAMID_PER_IP == 1
server_cmd("kick #%d %s", get_user_userid(id), REASON);
#else
new count = 1;

SQL_NextRow(query);
while(SQL_MoreResults(query))
{
count++;
index = SQL_ReadResult(query, 0);
SQL_ReadResult(query, 1, szLoadedIp, charsmax(szLoadedIp));
SQL_ReadResult(query, 2, szLoadedSteamid, charsmax(szLoadedSteamid));

if(equali(szPlayerSteamid, szLoadedSteamid))
{
UpdatePlayer(index);
return;
}
else if(count == STEAMID_PER_IP)
{
server_cmd("kick #%d %s", get_user_userid(id), REASON);
return;
}

SQL_NextRow(query);
}
if(count < STEAMID_PER_IP)
{
InsertPlayer(szPlayerIp, szPlayerSteamid);
}
#endif
}
}
else
{
InsertPlayer(szPlayerIp, szPlayerSteamid);
}
}
InsertPlayer(szPlayerIp[], szPlayerSteamid[])
{
formatex(g_szQuery, charsmax(g_szQuery), "INSERT INTO `players`(ip, steamid, lastseen) VALUES ('%s', '%s', %d)", szPlayerIp, szPlayerSteamid, get_systime());
SQL_ThreadQuery(g_Tuple, "QueryHandleInsertPlayer", g_szQuery);
}
public QueryHandleInsertPlayer(failstate, Handle:query, error[], errnum, data[], size)
{
if(failstate != TQUERY_SUCCESS)
{
log_amx("SQL QueryHandleInsertPlayer error: %s", error);
}
}
UpdatePlayer(index)
{
formatex(g_szQuery, charsmax(g_szQuery), "UPDATE `players` SET lastseen=%d WHERE id=%d", get_systime(), index);
SQL_ThreadQuery(g_Tuple, "QueryHandleUpdatePlayer", g_szQuery);
}
public QueryHandleUpdatePlayer(failstate, Handle:query, error[], errnum, data[], size)
{
if(failstate != TQUERY_SUCCESS)
{
log_amx("SQL QueryHandleUpdatePlayer error: %s", error);
}
}
stock bool:is_user_steam(id)
{
static dp_pointer;
if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}
return false;
}

/*-- Modified and simplified 'IP converter stocks' by Zetex --*/
// Gets net and mask as LONG from subnet.
stock net_to_long( net_string[], &net, &mask ) {
new i, ip[16];

i = copyc( ip, charsmax(ip), net_string, '/' );
mask = i ? cidr_to_long( net_string[i + 1] ) : 0xFFFFFFFF; /* mask /32, IP itself */

net = ip_to_long(ip) & mask;
}
// Converts mask to LONG. Returns unsigned long.
stock cidr_to_long( mask_string[] ) {
new mask = str_to_num(mask_string);
new result = (1 << 31) >> (mask - 1);

return result;
}
// Converts IP to LONG. Returns unsigned long.
stock ip_to_long( ip_string[] ) {
new right[16], part[4], octet, ip = 0;
strtok( ip_string, part, 3, right, 15, '.' );

for( new i = 0; i < 4; i++ ) {
octet = str_to_num(part);

ip += octet;

if( i == 3 )
break;

strtok( right, part, 3, right, 15, '.' );
ip = ip << 8;
}

return ip;
}

Давно забыл забыл про таких недочитеров))

Отредактировал: viper2020, - 13.4.2017, 23:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 14.4.2017, 0:01
Сообщение #13


Иконка группы

Стаж: 10 лет

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

Меценат Меценат

viper2020, а если у чела айпи динамический? это не спасёт от таких.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя viper2020
сообщение 14.4.2017, 0:11
Сообщение #14


Стаж: 11 лет

Сообщений: 150
Благодарностей: 20
Полезность: 13

Цитата(adva @ 14.4.2017, 2:01) *
viper2020, а если у чела айпи динамический? это не спасёт от таких.

Ну если выдавать ему стим ид по IP,то конечно не спасёт,но это надо быть олухом полным)))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 14.4.2017, 4:37
Сообщение #15


Стаж: 15 лет

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

Цитата(daywer @ 13.4.2017, 18:09) *
Это чит софт и чит кс в которую встроена команда такая,прием тут dproto?

При том что чистый HLDS его дропнет с ошибкой AUTH ERROR, а дпроту фиолетово, ему бы по возможности пустить клиента, а не проверять его :)

Цитата(viper2020 @ 14.4.2017, 0:11) *
Ну если выдавать ему стим ид по IP,то конечно не спасёт,но это надо быть олухом полным)))

А что делать с теми кто лезет с 16 патча на VALVE_ID_LAN или STEAM_ID_PENDING :) Отключать весь 47й? Есть еще олдскул фэны непечатных клиентов даже.
Скажу больше, эти клиенты работают шустрее даже чем любая новая сборка на 48м протоколе, не важно от какой команды и какого хоста МСа

Цитата(adva @ 14.4.2017, 0:01) *
viper2020, а если у чела айпи динамический? это не спасёт от таких.

в том то и прикол, что у него динамический, но я ему UDP залочил, и он пропал ваще.. Хотя странно, ему же МС должен выкидывать сервер.

P.S. во всяком случае, как я понимаю, reHLDS уже спокойно решает такие проблемы.. Не.. Позволяет решать :)
P.S.S. где можно почитать нормальной рус, или укр инфы по теме как писать под reHLDS или как оно ваще работает?

Отредактировал: zippel, - 14.4.2017, 5:18
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mrpheel
сообщение 14.4.2017, 8:05
Сообщение #16


Стаж: 9 лет
Город: Санкт-Петербург


Сообщений: 250
Благодарностей: 67
Полезность: 72

zippel, тут есть отдельный раздел по ReHLDS. Но переход на него не решит твоей проблемы. Отсеивай игроков, которые могут менять steamid с помощью rechecker (opengl detector), alias checker, dopban.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 14.4.2017, 10:27
Сообщение #17


Иконка группы

Стаж: 10 лет

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

Меценат Меценат

mrpheel, я вообще не вижу смысла их отсеивать, поставил допбан или супербан, они же метки оставляют. Ему уже будет очень сложно зайти на сервер после бана. Во многих сборках я наблюдаю идет стимайди чейнджер. Чо их всех банить? Перейти на rehlds + reauthcheck + допбан. Либо сразу бан с помощью alias checker
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mrpheel
сообщение 14.4.2017, 11:10
Сообщение #18


Стаж: 9 лет
Город: Санкт-Петербург


Сообщений: 250
Благодарностей: 67
Полезность: 72

Цитата(adva @ 14.4.2017, 11:27) *
mrpheel, я вообще не вижу смысла их отсеивать, поставил допбан или супербан, они же метки оставляют. Ему уже будет очень сложно зайти на сервер после бана. Во многих сборках я наблюдаю идет стимайди чейнджер. Чо их всех банить? Перейти на rehlds + reauthcheck + допбан. Либо сразу бан с помощью alias checker

Вообще редко у себя встречаю додиков, которые айди меняют) Допбана нет. Если вдруг совсем надоедливый чел попадется, баню подсеть на несколько часов. Как то не липнут они ко мне))
В речекере щадящая проверка на чейнджеры, с популярных сборок не отсеивает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя viper2020
сообщение 14.4.2017, 11:43
Сообщение #19


Стаж: 11 лет

Сообщений: 150
Благодарностей: 20
Полезность: 13

У меня и допбана нету,чисто фрешбанс,reunion,reauthchek и steamid_limiter и ещё ни разу не было замечено подобных клоунов))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
register
сообщение 19.4.2017, 4:01
Сообщение #20
Стаж: 7 лет

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

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