В этой статье, мы с вами создадим хак на обход блокировок чата. Это может пригодиться вам для спама в канальный чат сервера / если не хотите ждать задержку между отправкой сообщений / система заблокировала вам чат за оскорбления и т. д. В общем, вы найдёте много применений этому.
Нам нужно включить постоянную активацию чата для нашего актёра и отключить задержку между отправкой сообщений..
Добавим в наш код новые смещения
#define ICVAR_OFFS_CHATENABLED 0xB20 #define ICVAR_OFFS_LOBBYCHATDELAY 0xB28 #define ICVAR_OFFS_INGAMECHATDELAY 0xB30
В итоге, мы имеем такой набор смещений
#define ICVAR_ADDR 0x1420DD458 #define IGAMEFRAMEWORK_ADDR 0x1420DE108 #define IGAMEFRAMEWORK_GETCLIENTACTOR 0x470 #define ICVAR_OFFS_IDLECHECK 0x168 #define ICVAR_OFFS_LOBBYAFK 0x7B0 #define ICVAR_OFFS_INGAMEAFK 0x5D0 #define ICVAR_OFFS_ADVERTISING 0x90 #define ICVAR_OFFS_PERSONAL_OFFER 0xB4 #define ICVAR_OFFS_CHATENABLED 0xB20 #define ICVAR_OFFS_LOBBYCHATDELAY 0xB28 #define ICVAR_OFFS_INGAMECHATDELAY 0xB30 #define ICVAR_OFFS_GAMETYPE 0x600
Добавим в перечисление CvarOffsets новые значения
E_CHATENABLED = ICVAR_OFFS_CHATENABLED, E_LOBBYCHATDELAY = ICVAR_OFFS_LOBBYCHATDELAY, E_INGAMECHATDELAY = ICVAR_OFFS_INGAMECHATDELAY,
Теперь наше перечисление со смещениями, выглядит так
enum eCvarOffsets : DWORD64 { E_IDLECHECK = ICVAR_OFFS_IDLECHECK, E_LOBBYAFK = ICVAR_OFFS_LOBBYAFK, E_INGAMEAFK = ICVAR_OFFS_INGAMEAFK, E_ADVERTISING_OFF = ICVAR_OFFS_ADVERTISING, E_PERSONAL_OFFER = ICVAR_OFFS_PERSONAL_OFFER, E_CHATENABLED = ICVAR_OFFS_CHATENABLED, E_LOBBYCHATDELAY = ICVAR_OFFS_LOBBYCHATDELAY, E_INGAMECHATDELAY = ICVAR_OFFS_INGAMECHATDELAY, E_GAMETYPE = ICVAR_OFFS_GAMETYPE, };
Классы IGameFramework и ICvar у вас уже есть и они не изменились пока-что, поэтому, я не публикую их здесь.
Пишем функцию, для обхода блокировок чата
void TakeeMeToChat() { IGameFramework* pGameFramework = IGameFramework::Base(); if (!pGameFramework) return; ICvar* pCvar = ICvar::Base(); if (!pCvar) return; IActor* pActor = nullptr; if (pGameFramework->GetClientActor(&pActor)) { pCvar->SetValue(eCvarOffsets::E_CHATENABLED, TRUE); pCvar->SetValue(eCvarOffsets::E_LOBBYCHATDELAY, FALSE); pCvar->SetValue(eCvarOffsets::E_INGAMECHATDELAY, FALSE); } }
Если вам что-то не понятно, не стесняйтесь задавать свои вопросы в ЛС Discord или ниже в комментариях.
-
1
-
1
0 Комментариев
Рекомендуемые комментарии
Комментариев нет