Laden...

Programm eingriffe Registreren

Erstellt von KeBo vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.385 Views
K
KeBo Themenstarter:in
8 Beiträge seit 2018
vor 5 Jahren
Programm eingriffe Registreren

Hallo Forum.

Ich bastel gerade in c#
eine kleine Anwendung das in der Lage sein soll cheats (Spiel Schummel Tools)
zu erkennen.

Ich habe zwar eine Methode gefunden wie man es auf einem einfachen weg lösen kann.
Ich denke, aber man kann diese sehr leicht umgehen, in dem man einfach denn Prozess Name ändert.
Denn noch würde ich euch gerne mal um Ratschläge Ideen und sonstiges fragen.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace Client_Projekt2018
{
    class anticheat
    {

        public bool CheatToolAktiv = false;

        private bool ProcessIsRunning(string processname)
        {
            return Process.GetProcessesByName(processname).Length > 0;
        }


        public void AntiCheatSystem()
        {
            CheatEngine();
            ArtMoney32();

        }

        public void CheatEngine()
        {
            bool CheatEngine = ProcessIsRunning("cheatengine-x86_64");
            if ( CheatEngine == true)
            {
                CheatToolAktiv = true;
                //DatenbankAPI userAcoount isBanned = 1
            }

        }

        public void ArtMoney32()
        {
            bool ArtMoney64 = ProcessIsRunning("am803");
            bool ArtMoney32 = ProcessIsRunning("am803");
            if (ArtMoney32 == true)
            {
                CheatToolAktiv = true;
               //DatenbankAPI userAcoount isBanned = 1
            }
            else if (ArtMoney64 == true)
            {
                CheatToolAktiv = true;
                //DatenbankAPI userAcoount isBanned = 1
            }

        }






    }
}

Hier ist die Problematik aber das sobald das anticheat Tool gestartet wird und der cheat meine Software direkt erkennt ach der hat denn cheat am Laufen also ban ich ihn.

Genau das sollte nicht passieren, sondern der Spieler soll erst gebannt werden, wenn auch wirklich das spiel manipuliert wird.

16.807 Beiträge seit 2008
vor 5 Jahren

Dafür kann es keine pauschale Antwort geben.

Einen Cheat-Schutz kommt ganz auf das Spiel an.
I.d.R. sind solche Lösungen, wie Du sie versuchst, nie vom Erfolg gekrönt.

Moderne Spiele speichern gewisse Dinge an einigen Stellen ab; nicht nur an einer.
Erfolgt dann von Außen (zB. beim Eingriff in den Speicherbereich) eine Änderung; dann deutet das auf eine verbotene Manipulation hin.

Letzten Endes sind jedoch Anti-Cheat-Tools oft nichts anderes als eine Art Virenschutz:
Es werden gewisse Heuristiken und Hashsummen geprüft.

Daher rennen Anti-Cheat-Entwickler auch immer den Cheat-Schreibern hinterher.

Was letzten Endes Deine Frage ist, das kann aus Deinem Beitrag nicht entnommen werden.
Jedoch gehöre solche Erkennungstools und dessen Logik deutlich in den Profi-Bereich.

K
KeBo Themenstarter:in
8 Beiträge seit 2018
vor 5 Jahren

Okay dann gäbe es noch die Möglichkeit das über eine Art Screenshot tool zu lösen.

Der Benutzer startet das anticheat Tool. sobald das anticheat Tool bemerkt, dass ein spiel gestartet wurde.
Macht er nach 10 min das erste Bild nach weiteren 10 min das zweite und dann jede stunde ein weiteres. Somit erkennt man zumindest schon mal, welcher cheat es ist (beispiel x22 da wird oben rechts oder links der Hack Name angezeigt. Auch könnte man es so lösen, dass eine Video Datei erstellt wird. Die 5 Minuten geht, da die settings ja meistens am Anfang gesetzt werden. Oder aber man einen wallhack erkennt. Usw.

Aber wie würde ich hier vorgehen mit openGl? oder gibt es da eine bessere varieante?

16.807 Beiträge seit 2008
vor 5 Jahren

Sei Dir bewusst, dass Du damit in die Privatsphäre des Benutzers eingreifst und Du Dich rechtlich bei Screenshots und Videos absichern musst.
Vor allem wenn die Bilder hochgeladen oder verarbeitet werden, damit in Dein Zuständigskeitsbereich fällt und evtl. nicht nur das Spiel zu sehen ist.
Das kann ganz schnell ganz dünnes Eis werden...

Sei Dir auch bewusst, dass es durchaus aufwändiger sein kann einen Cheat zu erkennen, als ein Spiel zu entwickeln...
Vielleicht fängst Du nicht gleich mit einem komplexen Thema wie der Cheat-Erkennung an 😉

K
KeBo Themenstarter:in
8 Beiträge seit 2018
vor 5 Jahren

Okay daran habe ich natürlich nicht gedacht aber danke für diesen Hinweis.
Das würde bedeuten das es möglich sein muss nur von diesem Game Prozess eine Aufnahme zu machen und alle anderen zu ignorieren. Ich denke, wenn man eine gewisse Klausel in die AGB’s packt dann sollte das ausreichen aber da muss man dann noch mal mit einem Anwalt sprechen.

Ist es denn generell möglich nur eine Anwendung zu dokumentieren?

Denn so etwas wie Desktop oder ähnliches soll natürlich nicht mit inbegriffen sein.

//EDIT: ja da hast du recht das scheint echt sehr kompliziert zu sein. dann muss erst mal so ein "LOW" schutz ausreichen. und die anderen fuktionen im tool etwas mehr ausgebaut werden. 😉

16.807 Beiträge seit 2008
vor 5 Jahren

Letzten Endes bringt es Dir das intelligenteste Tool nichts, wenn ein potentieller Bösewicht Dein Überwachungstool austrickst.
Und leider muss man sagen, dass .NET (oder auch zB Java) hier keine geeignete Plattform für sowas ist, weil jeder binnen Sekunden dank Tools wie ILSpy an den indirekten Quellcode Deines Überwachungstools kommt und diese im dümmsten Fall manipulieren kann.
Und wenn jemand Cheats schreiben kann, dann weiß derjenige auch wie .NET funktioniert und was ILCode ist.

Und leider ist .NET noch für den Desktop nicht so weit, dass man C# wirklich nativ kompilieren kann.
Im Web-Bereich rund um ASP.NET und Mobile Plattformen gibt es hier große Fortschritte.

Von daher muss man an der Stelle ehrlich sein und Dich eher in Richtung C++ für solch ein Tool verweisen.

T
156 Beiträge seit 2010
vor 5 Jahren

Und wenn jemand Cheats schreiben kann, dann weiß derjenige auch wie .NET funktioniert und was ILCode ist.

Oh ja.

Von daher muss man an der Stelle ehrlich sein und Dich eher in Richtung C++ für solch ein Tool verweisen.

Und dieser weiß dann auch ganz sicher, wie man in Assembler ein paar JMP's oder NOP's einbaut...

16.807 Beiträge seit 2008
vor 5 Jahren

Sicher; nur ist Assembler schon eine deutlich höhere Hürde als ILCode... 😉
Vor allem für das Level "Script Kiddies", die dann doch die Mehrheit bei sowas bilden.