Tixewi Blogs Anti-CheatEngine Toolkit
Anti-CheatEngine Toolkit 12.03.2018 - 12:05 3
Folgenden Nutzern gefällt das Design: damios, eitelkalk, Ikarus

Hallo zusammen,

 

ich arbeite derzeit an einem kleinen clientseitigen Anti-CheatEngine Toolkit für Unity.

Ja... man sollte nie dem Vertrauen, was der Client einem Server zukommen lässt. Jedoch ist es aufgrund manchen technischen Gegebenheiten nicht immer möglich, etwas Serverseitig zu behandeln. Das betrifft zum Beispiel Network Engines wie PUN (Photon), oder Singleplayer Spiele mit einer Rangliste / Highscore-Liste. 

Bei Multiplayer Spielen ist das Tool vor allem nützlich, falls keine Dedicated Server gestellt werden können, oder das ein oder andere (z.b. Position + PlayerController zur Bewegung) Clientseitig behandelt wird.

Unter dem Einsatz von Dedicated Servern, bietet das Tool dennoch eine Falle.

 

Standard Features:

- Schützt Variablen im Speicher (vorerst nur int, float, bool - alles weitere auf Anfrage möglich) [FERTIG]

- Observierung schutzbedürftiger Variablen mit Manipulationserkennung [IN ARBEIT]

- Speedhack Observierung / Erkennung mit Falsch-Positiv berücksichtigung [FERTIG]

- Time cheating Observierung / Erkennung [FERTIG]

 

- Geschützte primitive Variablen lassen sich im Code unkompliziert mit normalen primitiven vermischen / verrechnen [FERTIG]

- Geschütze primitive Variablen lassen sich im Inspector verändern [FERTIG]

- Observatoren über Inspector schnell und einfach anpassen [FERTIG]

 

- "Handbuch" [FERTIG]

 

Wurde durch ein Observator eine Manipulation festgestellt, kann jederzeit eine geeignete Handhabung (Cheat Report + Bann) implementiert werden. Einfache Event-Zuweisung über Inspector vorhanden.

 

Das Tool bietet also lediglich elementaren Schutz gegen Cheat Engines. Gegen modifizierte Clients ist man hierdurch nicht geschützt. 

Falls jemand von euch Interesse hat das Tool in sein Projekt einzubinden, stelle ich es auf Anfrage in kürze mit Doku bereit und biete hierfür auch Support hierfür an.

 

Gruß

Tixewi


Aktualisiert: 14.03.2018 - 21:09
Grund:
13.03.2018 - 13:27
damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv

Hi Tixewi,

ich habe leider kein eigens Unity-Projekt sonst würde ich das Ding echt gerne mal ausprobieren! Ich würde dir ja vorschlagen, das Toolkit Open Source zu machen (damit auch Leute ohne entsprechendes Projekt mal einen Blick drauf werfen können), aber das ist bei einer AntiCheatEngine wohl eher kontraproduktiv.

Darf man fragen, wie du auf das Thema Anti-Cheat gekommen bist?

damios
In den letzten 60 min online
damios
Rang 18
Administrator

Projekte: 3
Designs: 2
Blogs: 11
Aktivität:
Sehr aktiv
Administrator
13.03.2018 - 16:00
Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv

Hi damios,

ich hatte in der Vergangenheit schon paar Mal den Fall, dass bei kleinen Projekten mit Rangliste innerhalb kürzester Zeit abgefälschte Werte auftauchten. Da ich in Cayle auf Photon setzte, kann ich auch hier vieles nicht Serverseitig abbilden. Alles wichtige liegt zwar in einem Backend, dennoch könnte der Spieler seine lokalen Werte Abändern und sich somit unbesiegbar machen. Masterclients könnten sogar den Punktestand, KI Einheiten oder Missionsziele beeinflussen.

Das hat zwar keine Auswirkung auf das Backend, würde aber für alle anderen Spieler den Spielspaß verderben. Hierfür setzte ich das ganze ab jetzt ein.

 

Die ersten Praxistests sind auch schon erfolgreich durchgeführt worden 

Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv
14.03.2018 - 21:12
Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv

So ACET Version 0.1 inklusive Handbuch und Demo Level sind fertig und einsatzbereit.

Es sind alle oben genannten Features außer Observierung der einzelnen Variablen enthalten.

Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv
19.03.2018 - 04:23
Ikarus
In den letzten 60 min online
Ikarus
Rang 8

Projekte: 2
Designs: 0
Blogs: 0
Aktivität:
Nicht sehr aktiv

Hallo Tixewi,

obwohl auch ich kein eigenes Unity-Projekt habe, klingt das sehr interessant, da auch an anderen Stellen den Client-Eingaben wenig bzw. kein Vertrauen entgegenzubringen ist. 

Beim Lesen der Feature-Liste ist mir etwas aufgefallen, was die Frage aufwirft, für wen ACET gedacht ist, oder auch, wie der Schutz technisch umgesetzt wird. Konkret: Der Punkt "Geschütze primitive Variablen lassen sich im Inspector verändern". Stürzt das Programm dabei nicht ab? Wird während der Manipulation der Schutz ausser Kraft gesetzt? Falls es wirklich jemand darauf anlegte, könnte er nicht dadurch ACET zur Durchführung seiner verabscheuungswürdigen Absichten missbrauchen?

Ikarus
In den letzten 60 min online
Ikarus
Rang 8

Projekte: 2
Designs: 0
Blogs: 0
Aktivität:
Nicht sehr aktiv
21.03.2018 - 14:25
Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv

Hi Ikarus,

der Schutz besteht bei ACET, wie auch bei den meisten anderen einfachen Tools, aus Verschleierung. Da ich im Unity Editor natürlich den normalen Wert eingeben möchte, gibt es hierfür ein extra Editor Script. Das handhabt lediglich die Editor UI und wird nicht beim Client mit ausgeliefert. Somit kann der Client diese Stelle nicht ausnutzen.

Gruß

Tixewi

Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv
21.03.2018 - 19:35
Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv

Version 0.1a

- Geschützter String wurde hinzugefügt

Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv
25.03.2018 - 22:21
Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv

Version 0.1b

- Bugfix bei direktem Aufruf geschützter Variablen

Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv
26.03.2018 - 14:49
Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv

Version 0.1c

- Alphabet wurde angepasst um die Anforderungen eines Strings abzudecken

Ersteller
Tixewi
In den letzten 60 min online
Tixewi
Rang 9

Projekte: 1
Designs: 6
Blogs: 36
Aktivität:
Nicht sehr aktiv
Kommentar als Gast hinzufügen