а что происходит в бравл старсе? откуда взялись рекламные боты в командах?
давайте начнём с того, что сама проблема с рекламными ботами - не нова́. ещё в далёком 2023-2024 мы с генебравлом, а также турками и роялем сами создавали миллионы аккаунтов, суть которых заключалась в простой рекламе в никах ботов у вас в катках. и ведь работало же!
затем, правда, суперы пофиксили это, но не суть.
вам стоит знать две вещи:
код команды, который вы используете для входа в команду, на самом деле - переёбанный идентификатор команды через специальный алгоритм
// Псевдокод функции LogicLongToCodeConverterUtil::convert
const HASH_TAG = "X"
const CONVERSION_CHARS = "думайте."
const base = BigInt(CONVERSION_CHARS.length)
let result = ''
do {
const charIndex = long % base
result = CONVERSION_CHARS[Number(charIndex)] + result
long /= base
} while(long !== 0n)
return HASH_TAG + result
}
а это значит, что его выебнуть обратно в идентификатор
const CONVERSION_CHARS = "думайте."
const convertCodeToId = (code: string) => {
if (code.length >= 14)
return new LogicLong(-1, -1)
const codeString = code.substring(1)
if (codeString.length < 1)
return new LogicLong(0, 0)
let long = 0n
for (const char of codeString) {
const index = CONVERSION_CHARS.indexOf(char)
if (index === -1)
return new LogicLong(-1, -1)
long = long * BigInt(CONVERSION_CHARS.length) + BigInt(index)
}
return new LogicLong(
Number(long & 0xffn), // high
Number((long >> 8n) & 0x7fffffffn) // low
)
}
class LogicLong {
constructor(
public high: number,
public low: number
) {}
}
идентификатор команды является инкрементым. тоесть, суперы ведут абстрактный счётчик. каждый раз, когда вы создаёте команду - этот счётчик увеличивается, а результат до/после увеличения выставляется вам в low часть идентификатора.
в свою же очередь, high часть идентификатора является указателем на идентификатор кластера, в котором находится ваша команда
например, если полный идентификатор вашей команды - (5, 1034143), то ваша команда находится в кластере №5 под идентификатором 1034143
а к чему я это всё? к тому, что этим можно злоупотреблять.
вы можете взять ваш код команды, сконвертировать его в идентификатор, добавить к условной low части условную единицу, затем сконвертировать обратно в код и попытаться войти - то с большим шансом вы сможете зайти в команду к рандомному игроку. своего рода подбор команды через лупу, но в более техническом плане.
но это всё нужно, если вы используете оригинальный клиент игры. вы же не думаете, что владельцы таких ботов держат сотни устройств чисто для флуда сообщений по командам?
для этого они используют самописные клиенты, эмулирующие поведение оригинального клиента игры.
главная особенность самописного клиента в том, что ему необязательно нужно быть полноценной копией оригинального клиента игры. ему достаточно уметь "говорить" с серверами игры на том уровне, который необходим конкретно для выполнения нужных действий.
то есть, для условного рекламного бота достаточно знать несколько сообщений для полноценной его работы.
из сообщений ему нужно знать:
ClientHelloMessage (10100)
ServerHelloMessage (20100)
LoginMessage (10101)
LoginOkMessage (20104)
TeamSpectateMessage (14358)
TeamMessage (24104)
TeamChatMessage (14049)
(по желанию разработчика) LoginFailedMessage (20103)
(по желанию разработчика) TeamCreateMessage (12541)
при этом, боту необязательно проходить туториал, ибо серверам игры откровенно похуй на туториал, ибо значительная часть проверок, связанных с самим игровым процессом находятся на стороне клиента. разработчик может просто написать поверх общения с сервером программу, которая будет заниматься всем спамом и единственное, что ему может помешать - шифрование и аттестация, которые умелый разработчик сможет имплементировать на раз-два.
добавьте к тому, что разработчику необязательно возиться с тегами команды, ибо протокол использует для общения LogicLong вместо вашего кода.
даже я что-то подобное делал, но чисто в качестве экспертимента
вот так вот. разработчики уже знают про ботов и уже как-то пытаются бороться (их борьба - закинуть тг каналы спамеров в фильтр). правда, разработчики этих самых ботов уже придумали использовать юникод символы и другие методы.
а вот о чём не думают эти самые разработчики ботов, а по совместительству ещё и модов, так это то, что они своими же действиями:
мешают работе серверов, в связи с чем у обычных игроков могут наблюдаться лаги во время игры
в целом мешают опыту игроков
портят и так натянутые отношения с разработчиками игры. о чём это я?
я когда-то давно писал про то, что у разработчиков модов есть с разработчиками игры негласное согласие: пока вы не творите хуйню, вы можете делать что делали. в связи с этим моды находились в серой зоне.
однако, недобросовестные разработчики модов совместно с детьми, играющими со скриптами и/или модами на доджи клали огромный болт на это согласие. и ситуация с ботами - тому подтверждение.
ваше право защищать их, но знайте, что пока вы используете такие моды, вы поддерживаете и этих разработчиков и их действия.
спасибо за чтение