ASTERIA2DEFENSE ARCHITECTURE / 2026
PRZECIEKI
Postać z klienta Asteria2 na tle świata gry
SYSTEM DESIGN REVIEW BUILD 2.0

ANTYcheat Asteria2.pl,
która nie wierzy klientowi na słowo.

Wielowarstwowa ochrona bram świata: od plików klienta, przez pamięć procesu, aż po pakiety i zachowanie postaci. Klient może złożyć meldunek, lecz o karze zawsze decyduje serwer po zestawieniu dowodów z regułami świata gry.

Zobacz pełny przepływ
Ekran ładowania antycheata Asteria2Ochrona uruchamia się jeszcze przed wejściem do świata gry
010niezależne domeny
egzekwowania
020bajty klucza
sesyjnego
030banów z pojedynczego
raportu klienta
040procent plików w
podpisanym allowliście
SERWER JEST WŁADCĄ ŚWIATAKLIENT SKŁADA MELDUNEKFAIL-CLOSED
01 / MAPA OBRONY ŚWIATA

Dziewięć pieczęci ochrony.
Każda strzeże innej bramy.

Nie istnieje jeden „magiczny skaner”. Straż Asterii łączy kontrolę plików przed otwarciem klienta, obserwację procesu podczas gry oraz serwerową walidację ruchu, walki i synchronizacji.

KRÓLESTWO GRACZA HOST NIEZAUFANY
TWIERDZA SERWERA AUTORYTET ŚWIATA
A1 Metin2Client.exepieczęć plików + skan pamięci
A2 Strażnik klientaAsteriaWatchdog / heartbeat
A3 Tarcza jądraAsteriaGuard.sys / callbacki
GRANICA ZAUFANIA
B1 Zapieczętowany meldunekHMAC / session + seq + nonce
C1 Rdzeń świataGame Server / korelacja
C2 Kronika dowodówEvidence log / audyt
Prawo Asterii:przełamanie jednej pieczęci nie otwiera pozostałych bram. Klient może złożyć meldunek, ale nie może sam siebie „uniewinnić” ani wydać wyroku — autorytet zawsze pozostaje po stronie serwera.
02 / ARSENAŁ STRAŻY

Kto strzeże której bramy
i przed czym jej broni?

Każdy strażnik ma własne zadanie. To techniczna mapa odpowiedzialności — od pieczęci na plikach klienta, przez pamięć procesu, po serwerowy wyrok zapisany w kronice.

I
PIECZĘĆ 01

Spis królewskiego klienta

Do czego służy? Podpisany manifest wyznacza wszystko, co wolno wnieść przez bramę klienta: binaria, biblioteki, paczki oraz zasoby.

Sprawdza
ścieżkę, rozmiar i SHA-256
Wykrywa
brak, podmianę oraz dodatkowy plik
Reakcja
bramy gry pozostają zamknięte
anticheat.manifest + .sig
II
WARSTWA 02

Runtime scanner

Do czego służy? Sprawdza to, czego sam manifest nie widzi: aktualny obraz procesu po załadowaniu gry do pamięci.

Sprawdza
DLL, PE, IAT/EAT, sekcje i wątki
Wykrywa
hook, manual-map, obcy kod
Reakcja
raport + fail-closed dla silnego sygnału
AntiCheatRuntime.cpp
III
PIECZĘĆ 03

Strażnik klienta

Do czego służy? AsteriaWatchdog jest drugim procesem obserwującym klienta. Pilnuje, by ochrony nie dało się zgasić przez zatrzymanie lub spatchowanie samej gry.

Sprawdza
tożsamość, wydawcę i heartbeat
Wykrywa
zamrożenie lub zabicie monitora
Reakcja
zamyka klienta i emituje zdarzenie
AsteriaWatchdog.exe
IV
PIECZĘĆ 04

Tarcza jądra

Do czego służy? AsteriaGuard.sys przenosi straż do jądra Windows, gdzie zwykły proces nie może swobodnie podmieniać callbacków ani otwierać klienta z niebezpiecznymi prawami.

Sprawdza
uchwyty i ładowane obrazy
Wykrywa
VM_WRITE, CREATE_THREAD, inject
Reakcja
odbiera prawa i zapisuje event
ObRegisterCallbacks
V
WARSTWA 05

Challenge sesji

Do czego służy? Serwer tworzy nowy identyfikator, nonce i losowy klucz dla każdego połączenia. Raport z poprzedniej sesji staje się bezużyteczny.

Sprawdza
sessionId + serverNonce
Wykrywa
wstrzyknięty lub stary raport
Reakcja
protocol violation
StartSession(DESC*)
VI
WARSTWA 06

HMAC raportu

Do czego służy? Wiąże wszystkie pola pakietu z kluczem bieżącej sesji. Po drodze nie można zmienić eventu, czasu ani skrótu dowodu.

Sprawdza
MAC w stałym czasie
Wykrywa
modyfikację lub fałszywy pakiet
Reakcja
raport zostaje odrzucony
HMAC-SHA-256
VII
WARSTWA 07

Heartbeat serwerowy

Do czego służy? Potwierdza, że klient nadal wykonuje kod raportujący. Brak raportów nie może być sposobem na „zniknięcie” antycheata.

Sprawdza
czas ostatniego poprawnego raportu
Wykrywa
ciszę dłuższą niż grace period
Reakcja
disconnect, nigdy sam ban
CheckHeartbeat(DESC*)
VIII
WARSTWA 08

Korelacja serwera

Do czego służy? Oddziela wykrycie od wyroku. Zestawia kilka świeżych sygnałów klienta z anomalią widzianą niezależnie przez logikę gry.

Sprawdza
liczbę, typy, score i świeżość
Wykrywa
zgodny wzorzec oszustwa
Reakcja
observe, kick albo tempban
EvaluateEnforcement()
IX
PIECZĘĆ 09

Kronika dowodów

Do czego służy? Evidence log zapisuje audytowalny ślad: co, kiedy i w której sesji wykryto oraz jaki był stan serwerowej korelacji.

Sprawdza
event, seq, SID, digest, score
Chroni
przed banem bez uzasadnienia
Reakcja
materiał do review i odwołania
AC:event;seq;sid;sha256
03 / BRAMA KLIENTA

Zanim wojownik wejdzie do świata,
klient musi przejść próbę integralności.

Otwarcie gry jest sekwencją bram. Uszkodzona pieczęć plików, niedostępny skaner lub przerwany Strażnik kończy uruchomienie, zanim postać otrzyma aktywną sesję w świecie.

05%
Single instanceGlobalny mutex klienta
15%
Mitigacje procesuDEP / ASLR / image policy
28%
Podpis manifestuRSA-3072 + SHA-256
78%
Moduły i pamięćIAT / EAT / threads / PE
87%
WatchdogTożsamość i heartbeat
94%
Aktywny monitorCiągłe skanowanie runtime
2.1PRE-START

Podpisany obraz całej dystrybucji

Manifest jest podpisywany kluczem prywatnym poza repozytorium. Klient zawiera wyłącznie klucz publiczny i odrzuca trzy klasy manipulacji.

Brak plikuexpected ∉ discovered
Zmiana plikuhash ≠ SHA-256
Dodatkowy plikdiscovered ∉ expected
ASTERIA2-ANTICHEAT-MANIFEST-V2e534fe8b…f77d60  2758445  antycheat.png7e91c13a…8cf4aa  36656640  Metin2Client.exe
2.2RUNTIME

PE kontra pamięć

Załadowany obraz jest porównywany z zaufaną wersją pliku z manifestu, z normalizacją legalnych relokacji i mutowalnych zakresów.

  • IAT / delay-IAT
  • EAT i krytyczne eksporty
  • sekcje wykonywalne
  • wątki poza obrazami
2.3ANTI-TAMPER

Środowisko procesu

Kontrola debug object, debug registers, podejrzanych uchwytów i pamięci wykonywalnej przypominającej manual-map.

debuggerhandlesmanual-map
2.4KERNEL + USER

Strażnik i Tarcza pilnują Metin2Client.exe

Proces gry i AsteriaWatchdog weryfikują swoją tożsamość oraz żywotność. Sterownik KMDF ogranicza niebezpieczne prawa uchwytów do Metin2Client.exe i emituje sekwencyjny strumień zdarzeń o ładowanych obrazach.

Metin2Client.exeheartbeatwatchdogAsteriaGuard.sys / handle filter
03 / IMPLEMENTACJA

Fail-closed
w kodzie, nie w slajdzie.

Fragmenty zostały skrócone na podstawie realnej implementacji, bez zmiany logiki punktów decyzyjnych. Wybierz warstwę, aby zobaczyć jej krytyczny mechanizm.

AntiCheatManifest.cpp
01

Najpierw podpis, potem kompletność zbioru, na końcu rozmiar i hash każdego pliku. Allowlista runtime powstaje dopiero po pełnym sukcesie.

05 / ZAPIECZĘTOWANY MELDUNEK

Raport klienta jest uwierzytelniany.
Serwer weryfikuje jego integralność i pochodzenie.

Serwer generuje materiał sesyjny. Klient wysyła kod zdarzenia i skrót dowodu, a HMAC wiąże wszystkie pola z konkretną sesją i kolejnością.

OFFSET 0x00

Wersja protokołu

Nieznana wersja jest naruszeniem protokołu — serwer nie próbuje interpretować pakietu „na oko”.

02 00 19 04 00 00 01 00 00 00…
SESSIONSEQUENCEFLAGSMACTIME DRIFTRATE LIMITVALID
06 / PRÓBY ZŁAMANIA PIECZĘCI

Jak kończą się próby
oszukania na Asterii?

Cztery konkretne ścieżki pokazują, które zabezpieczenie reaguje pierwsze i dlaczego ta reakcja nie zawsze oznacza automatycznego bana.

SCENARIUSZ 01Zmodyfikowany pack/rootnp. zmiana skryptu Pythona lub usunięcie ograniczenia UI
  1. Manifest widzi różnicęSHA-256 paczki nie zgadza się z podpisaną wartością.
  2. Klient zatrzymuje startNie powstaje zaufana allowlista dla runtime.
  3. Nie ma logowania do gryAtak kończy się przed wyborem postaci.
NO START
SCENARIUSZ 02Inject DLL / manual-mapobcy kod próbuje wejść do pamięci Metin2Client.exe
  1. Tarcza ogranicza uchwytOdbiera prawa VM_WRITE, VM_OPERATION lub CREATE_THREAD.
  2. Runtime bada pamięćWykrywa wykonywalny region bez zaufanego obrazu PE.
  3. Serwer otrzymuje dowódSilny event runtime trafia do bieżącej sesji przez HMAC.
KICK / CORRELATE
SCENARIUSZ 03Speedhack / attack speedklient próbuje wykonywać ruch lub ciosy szybciej niż pozwala stan postaci
  1. Klient może wykryć manipulacjęHook timera lub zmiana kodu daje sygnał runtime.
  2. Serwer mierzy zachowaniePorównuje ruch, tempo walki i synchronizację z własnym czasem.
  3. Korelacja łączy faktyTempban wymaga świeżego dowodu po obu stronach.
SERVER CONFIRMED
SCENARIUSZ 04Replay poprawnego raportuponowne wysłanie wcześniej przechwyconego pakietu antycheata
  1. Session i nonce są stareNie pasują do materiału bieżącego połączenia.
  2. Sequence nie rośnieSerwer rozpoznaje powtórkę lub nielogiczny skok.
  3. Pakiet nie zwiększa scoreZostaje odrzucony jako naruszenie protokołu.
REJECT

Zasada nadrzędności serwera :Raport klienta stanowi sygnał o potencjalnej ingerencji. Serwer niezależnie analizuje zachowanie postaci oraz zgodność działań z regułami gry. Najwyższy poziom kary może zostać zastosowany dopiero po potwierdzeniu zdarzenia przez oba źródła.

07 / WŁADCA ŚWIATA

Klient składa meldunek.
Serwer wydaje wyrok.

Serwer oddziela telemetrię od dowodu i wymaga świeżości, różnorodności oraz niezależnej anomalii ruchu, walki lub synchronizacji.

SYMULATOR POLITYKIOBSERVE
LOG ONLY

Telemetria bez automatycznej kary

Tryb observe zapisuje dowody i pozwala dostroić progi bez wpływu na sesję gracza.

SIGNALS ✓DISTINCT ✓SCORE ✓SERVER —
CLIENT EVIDENCE≥ 3 sygnały≥ 2 typyscore ≥ 6
+
SERVER EVIDENCEruch / walka / syncokno ≤ 120 sświeży runtime
=
TEMPBANkorelacja wymagana
08 / BESTIARIUSZ ZAGROŻEŃ

Każde zagrożenie ma kontrę.
Bez marketingowych zaklęć.

Macierz pokazuje, gdzie zagrożenie jest blokowane, wykrywane lub jedynie dostarcza sygnału do korelacji.

ZagrożenieManifestRuntimeWatchdogDriverSerwerReakcja
Zmiana pack/rootmodyfikacja zasobów bez rozszerzeniaBLOCKLOGNO START
Podmiana DLLniezaufany obraz w katalogu klientaBLOCKDETECTEVENTSCORENO START
Manual-mapprywatna pamięć wykonywalnaDETECTHEARTBEATIMAGECORRELATEKICK / BAN*
Remote handleVM_WRITE / CREATE_THREADDETECTSTRIPCORRELATEKICK / BAN*
Debuggerdebug object / HW registersDETECTVERIFYSCOREKICK
Replay raportustare sequence lub sessionREJECTVIOLATION
Flood raportówprzekroczenie budżetu / 10 sLIMITVIOLATION
Speedhackanomalia ruchu potwierdzona serwerowoSIGNALAUTHORITATIVECORRELATE

* Tempban wyłącznie przy świeżych, silnych sygnałach runtime i niezależnym potwierdzeniu serwera.

09 / RYTUAŁ WYDANIA

Klient musi opuścić kuźnię
z nienaruszoną pieczęcią.

Nawet dobry runtime traci sens, jeśli pipeline publikuje brudny staging, ujawnia klucz prywatny lub generuje manifest przed finalnym podpisaniem binariów.

  1. 01
    Czysty stagingbez .bak, .old, narzędzi i artefaktów developerskich
  2. 02
    Finalne binariaMetin2Client.exe, paczki, DLL i zasoby
  3. 03
    Authenticodejeden produkcyjny wydawca dla klienta i watchdoga
  4. 04
    Guard.sysWDK, InfVerif / SDV, prawidłowy podpis sterownika
  5. 05
    Manifest na końcuklucz prywatny dostępny wyłącznie w CI
  6. 06
    Rollout politykiobserve → kick → tempban po analizie telemetrii
REKOMENDOWANY START

Najpierw obserwuj.
Potem egzekwuj.

Pierwsze wdrożenie zbiera rozkład sygnałów, false positives i zachowanie różnych konfiguracji Windows. Dopiero po przeglądzie dowodów zmieniamy politykę.

config.global.toml
# bezpieczny etap kalibracji
anti-cheat-reporting-enabled = true
anti-cheat-enforcement = "observe"

anti-cheat-min-client-signals = 3
anti-cheat-min-distinct-signals = 2
anti-cheat-min-score = 6

anti-cheat-server-correlation-window-seconds = 120
anti-cheat-temporary-ban-seconds = 86400
10 / GRANICE STRAŻY

Czego Straż Asterii
nie obiecuje?

To mocna obrona warstwowa, ale nie zdalna atestacja oparta o zaufany sprzęt. Klucz sesyjny trafia do klienta, więc sam poprawny HMAC dowodzi integralności pakietu w sesji — nie absolutnej uczciwości komputera gracza.

TAKPodnosi koszt ingerencjii skraca czas wykrycia
TAKDaje kronikę dowodówzamiast nieustrukturyzowanych stringów
NIENie ufa jednemu meldunkowiani fingerprintowi bez korelacji
PODSUMOWANIE / ASTERIA2

Integralność przed startem.
Obserwacja w runtime.
Autorytet po stronie serwera.

Asteria2 Anti-Cheat / Technical Defense Review / 2026

Skopiowano kod