Co FiveM anti-cheat dokáže a co ne
Ve zkratce
FiveM anti-cheat detekuje podvádění; nedokáže zabránit odhodlanému útočníkovi spouštět kód na vlastním stroji, protože klient je hardware, který ovládá hráč. Co umí dobře, je zvyšovat náklady a odhalovat běžné případy: injektovaná menu, známé signatury, nemožný pohyb a chování, které legitimní klient neprodukuje. Co neumí, je dokázat, že hlášení od klienta je pravdivé, zastavit cheat, který nikdy neviděl, nebo vykompenzovat server, který věří vstupu od klienta. Pro provozovatele z toho plyne, že anti-cheat a serverová validace nejsou alternativy — validace je kontrola, která pravidla skutečně vynucuje, a anti-cheat je vrstva, která obcházení prodražuje a zviditelňuje.
Hlavní body
- Klient je stroj útočníka. Cokoli tam běží, jde prozkoumat, upravit nebo o tom lhát.
- Klientská detekce zvyšuje náklady a produkuje signál; nikdy neprodukuje důkaz.
- Serverová validace je jediné místo, kde se pravidlo opravdu vynutí.
- Detekce je pohyblivý cíl: signatury stárnou a produkt, který se neaktualizuje, je dekorace.
- Každý dodavatel slibující, že podvádění znemožní, popisuje marketing, ne inženýrství.
Anti-cheat stavíme. O to důležitější je být přesný v tom, co tahle kategorie umí doručit — provozovatel, který si koupí produkt s očekáváním záruk, jež dát nemůže, skončí zklamaný z produktu a hlavně nedostatečně investovaný do kontrol, které by mu opravdu pomohly.
Strukturální problém
V každé hře typu klient–server běží klient na hardwaru, který hráč vlastní. Může připojit debugger, upravit paměť, hookovat funkce, spustit hru ve virtuálu nebo klienta celého nahradit. Každá kontrola, která tam běží, se dá v principu najít a vyřadit, pokud má někdo dost motivace.
Nikdy nedůvěřuj klientovi. Ne proto, že klienti bývají zlomyslní, ale proto, že ze strany serveru ten rozdíl nepoznáš.
Není to slabina specifická pro FiveM a nevyřeší ji lepší produkt. Je to tvar toho problému. Mezi anti-cheaty se liší, jak moc obcházení prodraží a kolik užitečného signálu při tom vyprodukují.
Co anti-cheat umí dobře
| Schopnost | Jak spolehlivě | Proč |
|---|---|---|
| Detekce známých injektorů a menu | Vysoká u známých nástrojů | Signatury, názvy modulů a vzory hooků jsou pozorovatelné, dokud je nástroj neupravený |
| Detekce nemožného herního stavu | Vysoká | Serverová fyzika a kontroly rychlostí nezávisí na poctivosti klienta |
| Detekce statistických anomálií | Střední | Odchylky v míření, pohybu a ekonomice jsou silný signál, ale potřebují lidskou revizi |
| Detekce neznámého privátního cheatu | Nízká, dokud se neprozkoumá | Není proti čemu porovnávat; jedinou pákou je behaviorální detekce |
| Zabránění spuštění na klientovi | Nedosažitelné | Stroj ovládá hráč |
Vzorec je konzistentní: čím blíž je kontrola něčemu, co si server umí ověřit nezávisle, tím je spolehlivější. Čím víc se opírá o stav hlášený klientem, tím víc závisí na tom, že klient nelže.
Proč hlavní tíhu nese serverová validace
Většina incidentů s „podváděním“ na FiveM serverech, o kterých se dozvíme, nejsou sofistikované cheaty. Jsou to servery, které přijmou cokoli, co klient pošle: event udělující peníze bez kontroly částky, aktualizace inventáře věřící id itemu, teleport přebírající souřadnice od klienta bez kontroly věrohodnosti.
-- Věří klientovi. Tohle je návrh.
RegisterNetEvent('shop:buy', function(item, price)
Player.addItem(item)
Player.removeMoney(price)
end)
-- Rozhoduje server. Tohle je pravidlo.
RegisterNetEvent('shop:buy', function(itemId)
local src = source
local item = Catalogue[itemId]
if not item then return end
if not PlayerIsNearShop(src, item.shop) then return end
if not PlayerHasMoney(src, item.price) then return end
GiveItem(src, itemId)
TakeMoney(src, item.price)
end)První verzi nespraví žádný anti-cheat, protože z pohledu klienta na tom nic nevypadá jako podvádění — klient používá rozhraní, které mu server nabídl. Proto provozovatelům říkáme, že validace je první: anti-cheat nasazený na server, který věří vstupu od klienta, je hlásič kouře v budově bez únikových východů.
Jak vypadá poctivá detekce
- Úrovně jistoty, ne binární verdikty. „Signatura známého injektoru“ a „pohyb 4 sigma od populace“ si zaslouží jinou reakci.
- Ke každé detekci připojený důkaz, aby člověk mohl ban zrevidovat místo důvěřování skóre.
- Práce s falešnými pozitivy jako prvotřídní funkce. Detektor, který občas zabanuje legitimní hráče a nenabídne odvolání, stojí komunitu víc, než stálo podvádění.
- Průběžné aktualizace signatur a heuristik, protože populace cheatů se mění po týdnech.
- Minimální výkonnostní rozpočet. Detekční vrstvu, která stojí snímky, provozovatelé vypnou.
Jak hodnotit jakýkoli anti-cheat
- 1Zeptejte se, co se stane při falešném pozitivu a jestli si důkazy můžete prohlédnout sami.
- 2Zeptejte se, jak často se detekce aktualizují a jaký je postup, když se objeví nový cheat.
- 3Změřte výkonnostní náklad na vlastním serveru pod zátěží, ne podle tvrzení.
- 4Zjistěte, k čemu potřebuje přístup. Anti-cheat žádající si široká serverová oprávnění je resource jako každý jiný a zaslouží si stejnou revizi.
- 5Ověřte, že kvůli němu nemusíte oslabit něco jiného — vypínat ochrany, aby produkt fungoval, je obchod, kterého budete litovat.
- 6Každý slib „neprůstřelnosti“ nebo „zastaví všechny cheaty“ berte jako důvod věřit zbytku tvrzení méně.
Poctivé shrnutí té kategorie: anti-cheat je nástroj na zvyšování nákladů a detekci a ten dobrý stojí za provozování. Není to hranice. Hranicí je server a kreslí ji to, co váš kód odmítne přijmout.
Časté dotazy
Dokáže FiveM anti-cheat zastavit veškeré podvádění?
Ne. Klient běží na hardwaru, který ovládá hráč, takže každou kontrolu běžící tam lze časem najít a vyřadit. Anti-cheat umí detekovat známé nástroje, označit chování, které legitimní klient neprodukuje, a obcházení prodražit a zviditelnit. Pravidla se ale skutečně vynucují jen na serveru.
Co je na FiveM důležitější: anti-cheat, nebo serverová validace?
Serverová validace, a to bez velké konkurence. Většina incidentů zahrnuje server, který přijme cokoli, co klient pošle — třeba event udělující item bez kontroly nároku — což žádný anti-cheat nemůže označit za podvádění, protože klient používá rozhraní nabídnuté serverem. Anti-cheat je cenná vrstva nad správnou validací, ne její náhrada.
Chrání anti-cheat před backdoornutými FiveM resources?
Obecně ne, jde o odlišné problémy. Anti-cheat sleduje chování hráčů a integritu klienta, zatímco backdoor je škodlivý kód v resource, který provozovatel nainstaloval sám a který běží s právy serveru. Hrozby na úrovni resources vyžadují statickou analýzu archivu před instalací a opakovanou kontrolu při aktualizaci.