SAMP - Anti Cheat Client

  • google winsock.


    Dir kann man es aber auch nicht ausreden, oder?

  • Ich hab davon zwar wenig Ahnung, aber ich würde mal darauf tippen das du dir ein extra Plugin schreiben musst für deinen SA-MP Server um dann zwischen AC Client und dem Server (via Plugin) zu kommunizieren.
    Oder du nutzt Sockets und das bereits existierende Sockets Plugin für SA-MP.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Einige leute hier haben wirklich gute Ansätze, aber die meisten bringen mich einfach zum Schmunzeln.


    Meine Ideen die eines Anti-Cheats angeht wären die folgenden:


    • Scannen der Datein im GTA Ordner. Also das vergleichen der Hashes im Ordner mit eine auf dem Server liegenden Datenbank
    • Module des Prozesses an den Server senden und auch mit einer Liste abgleichen. (Unbekannte Module == Ban)
    • Prozess bzw. Memory mit bestimmen Patterns von Cheats scannen.
    • Fenster Titel auslesen von Programmen die geöffnet sind und Windowsclass sowie Pfad der Anwendung an Server senden
    • Halb-Stündlich Screenshots von Game durch eigenen DX Hook uploaden. (neuen Hochladen, alten ersetzen)
    • Ban Waves spieler Loggen und die DNS Cache auf Anti-Cheatseiten auslesen (keine Privatsphäre verletzen!)
    • Task's / Prozesse auf bekannte Scannen
    • Abgleiche ingame treffen z.B Datenbank mit zwischen Werte abgleichen (Geld von z.b $1000 in 1 Stunde auf $1.000.000)
    • Carspeed auslesen (Hooking von GTA) Differenz von A zu B ausrechnen (Wenn Speed >= erlaubt == Ban)
    • Anti-Cheat protcten mit bestimmen Tools.
    • Encrypted verbindung von Client und Server (Wichtig!)
    • Strings verschlüsseln vom Anti-Chear
    • GTA EXE modifizieren das ändert z.b die Memory-Addressen
    • u.s.w


    Falls ein User von deinem Anti-Cheat herausgewurfen wird kannst du dir die Datei genau anschauen sie Uploaden und die dann z.b Whitelisten.
    Somit gibt es keine Probleme mit User die gebannt werden durch ENB Series etc. du kannst sie mit einem guten Team schnell genug Entbannen.
    Alle Bans werden auf einem Webinterface angezeigt und zeigen den Grund sowie andere Infos. (Memory Editing, File Checksum, Cheat Tools, ...)




    :)

  • Ich nehm das mal kurz auseinander, mal sehen was wirklich "gut" davon ist


    Scannen der Datein im GTA Ordner. Also das vergleichen der Hashes im Ordner mit eine auf dem Server liegenden Datenbank

    Ja klar und wer lässt das freiwillig machen ?
    Ich möchte doch sehr stark anzweifeln, dass dies überhaupt eine verlässliche Möglichkeit sein würde, Cheats zu detecten. Schließlich gibt es die Cleos nicht nur einmal.


    Module des Prozesses an den Server senden und auch mit einer Liste abgleichen. (Unbekannte Module == Ban)

    Ich schätze mal du hast keinen Plan davon wie "s0beit" überhaupt funktioniert, das lädt sich nicht einfach als "modul" in GTA, das liegt als d3d9.dll in GTA Verzeichnis, weil GTA directx9 benötigt.
    Nein es hilft auch nicht einen Hash daraus zuermitteln...


    Prozess bzw. Memory mit bestimmen Patterns von Cheats scannen.

    Ist ne gute Idee nur viel zu Aufwendig um einen guten Schutz zu gewähren, bei jeder neuen "Version" ändern sich die Memoryplätze


    Fenster Titel auslesen von Programmen die geöffnet sind und Windowsclass sowie Pfad der Anwendung an Server senden

    s0beit ist doch kein Programm. Würdest du dir deinen PC einfach so durchleuten lassen ?


    Halb-Stündlich Screenshots von Game durch eigenen DX Hook uploaden. (neuen Hochladen, alten ersetzen)

    Schätzungsweise wird auch das nicht wirklich funktionieren, wenn sich der Hook vor "s0beit" hängt, statt dahinter wirst du keinen Screenshot mit dem "s0beit" Layout bekommen.


    Ban Waves spieler Loggen und die DNS Cache auf Anti-Cheatseiten auslesen (keine Privatsphäre verletzen!)

    Ach aufeinmal soll die Privatsphäre gewart werden...
    Merkst selbst.


    Task's / Prozesse auf bekannte Scannen

    Ich hab schon gesagt das das nichts bringen wird.


    Abgleiche ingame treffen z.B Datenbank mit zwischen Werte abgleichen (Geld von z.b $1000 in 1 Stunde auf $1.000.000)

    Das sollte anders funktionieren, aber seis drum.


    Carspeed auslesen (Hooking von GTA) Differenz von A zu B ausrechnen (Wenn Speed >= erlaubt == Ban)

    Du meinst Distanz und nicht Geschwindgkeit.
    "s0beit" kann, oder tut es sogar, GetVehicle/PlayerVelocity so minpulieren, dass die Geschwindigkeit im normalen Bereich bleibt.


    Anti-Cheat protcten mit bestimmen Tools.

    Klar sollte man tun, aber kaum jemand wird sich wohl die mühe machen den Auseinander zu nehmen. Nicht zu vergessen das es noch reverse Engineering gibt.


    Encrypted verbindung von Client und Server (Wichtig!)

    Dazu muss ich wohl nichts sagen :D


    Strings verschlüsseln vom Anti-Chear

    Das bringt bitte was ? :D
    Wer seine MySQL Daten direkt im Source hinterlegt, gehört geschlagen.


    GTA EXE modifizieren das ändert z.b die Memory-Addressen

    Dann funktioniert samp auch nicht mehr.
    Klasse :thumbup:

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich frage mich sowieso immer, wofür man einen Anti-Cheat Client braucht. Die Admins sollten kompetent genug sein, um zu bemerken, dass sich jemand mit zu schneller Geschwindigkeit über die Straßen bewegt. Geld-Cheats funktionieren sowieso nicht, HealHack auch nicht. ( Wenn man mit Serverside-Variablen arbeitet ).
    Das einzige Problem ist Aimbot. ( Wobei das auf einem Reallife/Roleplay-Server sowieso sinnlos wäre ). Aber wer von 20 Schüssen 21 trifft, hat wohl externe Hilfe :whistling:

  • Aber wer von 20 Schüssen 21 trifft, hat wohl externe Hilfe :whistling:

    Wurde schon oft genug gebannt wegen Aimbot, auch wenn man ihn nicht hat.
    Ich persönlich habe nichts gegen einen Anti-Cheat, vorallem gegen Hacks wie Nametag, Aimbot o.Ä. wäre das hilfreich.
    Aber wenn ein kleiner GF Server einen Anti-Cheat Client hat, denke ich mir meistens das sich gleich von meinem PC die Maus "alleine" Bewegt. :D


    Lg

  • Also gegen die meisten hacks kann man sich sowieso schützen falls man ein gutes AntiCheat hat dafür braucht man nicht extra einen client zum anderen kann ich dir sagen das viele Leute einfach kein Bock haben sich noch etwas zu downloaden um einen Server zu testen. Ich frag mich wovor Serverbesitzer solch eine Angst haben. Es ist ja nicht so das man auch Personal hat welches die Leute auf dem Server überwachen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • BlackAce

    Zitat

    Ja klar und wer lässt das freiwillig machen ?
    Ich möchte doch sehr stark anzweifeln, dass dies überhaupt eine verlässliche Möglichkeit sein würde, Cheats zu detecten. Schließlich gibt es die Cleos nicht nur einmal.

    Das Anzweifeln würde ich nicht, denn Cleo-Mods besitzen ja eine spezielle Dateiendung.
    Sowohl kann man die gesammte Struktur von dem GTA Ordner an den Server senden und mit Black / Whitelist arbeiten. (Interface lässt grüßen)
    Freiwillig? Es will ja keiner andere Datein anschauen sondern nur die im GTA Ordner. (AGB ftw)


    Zitat


    Ich schätze mal du hast keinen Plan davon wie "s0beit" überhaupt funktioniert, das lädt sich nicht einfach als "modul" in GTA, das liegt als d3d9.dll in GTA Verzeichnis, weil GTA directx9 benötigt.
    Nein es hilft auch nicht einen Hash daraus zuermitteln...


    Nur weil die Datein von S0beit nicht unmittelbar in den Prozess injected werden heißt es nicht das es keine Module läd.
    Starte mal dein OllyDBG und öffne mal die ganzen Modules vom Prozess, wirst merken das die Datei doch geladen wird.
    Wenn sie geladen ist kannst du gern die Größe von dem Module abfragen und das vergleichen.
    Die Chance ist niedrig das es ein Modul im GTA Prozess gibt das die gleiche größe hat. (Memory section)
    Daraus machst dir dann ne Liste wenn du die Daten von den Spielern gesammelt hast und nun hast dein s0beit detected.
    Benutzt es eventuell Module-Hiding und sitzt in ner Driverprotection was unwahrscheinlich ist hast Pech.


    Zitat

    Ist ne gute Idee nur viel zu Aufwendig um einen guten Schutz zu gewähren, bei jeder neuen "Version" ändern sich die Memoryplätze

    Die Mehrzahl der User haben keine Ahnung wenn sie Cheats benutzen das sich die ganzen Speicheraddressen bei ner neuen Version ändern.
    Siehst doch an Punkbuster das es klappt oder? Was denkst du wieso die meisten Public Hacks nach paar Tagen eine Detection haben.
    Weil Hashes, Patterns etc. gecheckt werden und der Public Hack blacklisted ist.
    Und ausserdem, sobald du Patterns benutzt die den Cheat in der Memorysection detecten und müsste man die ganzen Funktion im Cheat recoden bzw. Stark abändern.


    Zitat

    s0beit ist doch kein Programm. Würdest du dir deinen PC einfach so durchleuten lassen ?

    Geht doch nicht nur um S0beit oder? Gibt viele Kinder die versuchen mit Cheat-Engine, Memory zu Editen.
    Auch gibt es Cheat-Engine Tables die ganze Cheats sind und die du damit z.B für Amateure nicht zugänglich machst. CheatEngine, CrySearch, TSearch, u.s.w
    Eventuell auch Tools die dir nen Lag oder nen Extern Aimbot herbeizaubern.
    Ist also kein Durchleuchten denn es wird ja nur nach bekannten Prozessen gesucht und wenn diese gefunden werden => Ban / Prozess Quit


    Zitat

    Schätzungsweise wird auch das nicht wirklich funktionieren, wenn sich der Hook vor "s0beit" hängt, statt dahinter wirst du keinen Screenshot mit dem "s0beit" Layout bekommen.

    Wenn die Leute auf deinem Server eventuell Chams verwenden oder andere Wallhacks, geht ja nicht nur um s0beit, dann hilft es dir was.
    Ebenso kannst du auch Overlays abscreen, wirst es nicht glauben aber es ist möglich trotz Overlay das Fenster "allein" ohne andere Fenster zu Screenen.
    Oder wieso möchtest du dir erklären das Treyarch Anti Cheat dir deine externen Overlays fickt trozt Driverprotection. (ring0 => kernel)
    Also vollkommen richtig! ;)


    Zitat

    Ach aufeinmal soll die Privatsphäre gewart werden... Merkst selbst.

    Ich merk es selbst, wir möchten ja nicht wissen welche Personen auf irgendwelche Pornoseiten herumstreunern.
    Also sollten diese Daten wie Online Banking etc. sowie irgendwelche Accesskeys (Battlelog z.b) nicht eingesehen werden.
    Sondern nur ein virtueller abgleich der Datenbank mit dem Client ohne das man die besuchten Seiten vom Client sieht.
    Also doch ziemlich Sinnvoll wenn man z.B nach IP's von bekannten Cheatseiten sucht.


    Zitat

    Ich hab schon gesagt das das nichts bringen wird.

    Achso, dann erklär mir mal bitte wieso das nicht's bringen soll?
    Man kann zwar Console-Programme umbennen, aber du kannst doch deine Prozesslist laden und die Dateipfade der Prozesse abgleichen und dir die Hashes von den Anwendungen zukommen lassen und die dann auch mit der Datenbank abgleichen.
    Wie schon gesagt, ein Meister verrät nicht alle Tricks sondern gibt nur Hinweise.


    Zitat

    Das sollte anders funktionieren, aber seis drum.

    Wieso sollte das anders Funktionieren? Wenn du dir ein Anti-Cheat Codest das Extern vom Spiel läuft dann kannst du doch sowas gern einbauen.
    Dann Kickt man schon die Kiddies heraus die sich Lokal versuchen das Geld auf den GTA Servern mit Memory zu ercheaten.
    Ebenso Kids die versuchen ihren Speedhacks etc. freien lauf zu lassen. (Spielerhöhe, Geschwindigkeit, Munition wenn zu viel)
    Nebenbei, auch wenn bei der Waffe mittlerweile 999 bei der Munition steht und oder schon im Minus ist wird es in Memory noch immer Addiert.

    Zitat


    Du meinst Distanz und nicht Geschwindgkeit.
    "s0beit" kann, oder tut es sogar, GetVehicle/PlayerVelocity so minpulieren, dass die Geschwindigkeit im normalen Bereich bleibt.

    Nein, ich meine wenn du die Zeit zwischen 2 Punkten berechnest die du brauchst um von A nach B zu kommen dann bekommst die was hast du dann?
    Richtig! Die Zeit die man benötigt um von A nach B zu kommen. Dann den Zurückgelegten weg und Zack! Bingo!

    Zitat

    Klar sollte man tun, aber kaum jemand wird sich wohl die mühe machen den Auseinander zu nehmen. Nicht zu vergessen das es noch reverse Engineering gibt.

    Falls man sein Tool mit verschiedenen Packers und eventuell selbst erstelle Packer schützt wird es schon schwieriger es erstmal zu Entpacken. (Unpacking)
    Dann haust du noch eine Virtualisierung darüber und gewisse Funktionen die Stoppen das man es z.b in IDA öffnen kann.
    Kannst dann auch die Debugger Crashen lassen etc. es lässt einen keine grenzen hier. :)

    Zitat

    Dazu muss ich wohl nichts sagen :D

    In der Welt gibt es ja genug Idioten die denken sie können eine Verbindung in der Öffentlichkeit ohne Encryption stehen lassen.
    Selbst anfänger können damit Packete editieren...


    Zitat

    Das bringt bitte was ? :D
    Wer seine MySQL Daten direkt im Source hinterlegt, gehört geschlagen.

    Wieso soll man denn nicht die ganzen Spieler wenn sie den Client eh benutzen in einer eigenen Datenbank lümmeln lassen?
    Man kann sich extern vom Server nen Interface einrichten und alles drüber laufen lassen.
    Die Datenbank z.B um Hardware ID's und Informationen zum System zu listen um Spieler eventuell zu Bannen vom Client.
    Um alles extern vom Server zu haben. Und es hat auch niemand gesagt seine SQL Daten im Client preis zu geben. (PHP ftw?!)


    Zitat

    Dann funktioniert samp auch nicht mehr.
    Klasse :thumbup:

    Nicht wenn mans richtig macht.


    Und ich denke ich konnte dir nun gut genug Schildern das hier keiner meiner Ideen nicht möglich wären umzusetzen und das du doch ein kleines bisschen Unrecht hast.
    Nur weil du Programmierst und es auch beherschen möchtest brauchst du nicht denken das hier andere User mit 40 Posts keine Ahnung haben.
    Nächste mal hälst du dich ein bisschen Zurück.

    3 Mal editiert, zuletzt von Warren ()

  • Mit deiner anschuldigung würde ich mich mal zurückhalten, BlackAce ist in meinen Augen einer der wenigen, hier im Forum, die sich in dieser Materie wirklich auskennen und darüber hinaus auch weiter.
    Desweiteren, alles was du jetzt argumentierst, zeigt das du nicht wirklich verstanden hast, was er von dir will.

  • Mit deiner anschuldigung würde ich mich mal zurückhalten, BlackAce ist in meinen Augen einer der wenigen, hier im Forum, die sich in dieser Materie wirklich auskennen und darüber hinaus auch weiter.
    Desweiteren, alles was du jetzt argumentierst, zeigt das du nicht wirklich verstanden hast, was er von dir will.

    Ist ja richtig das er mir mitteilen möchte das manche Funktionen im AntiCheat unnütz sind.
    Trozdem sollte er mich nicht hinstellen als wenn ich keine Ahnung hätte.
    Nur weil man sich in der Masse zwischen den Leuten unten hält heißt es nicht das man nichts kann.


  • Hey, ich bräuchte einen kleinen Denkanstoß dazu, wie soetwas aussieht.
    Wärst du so nett :)?
    Also wie man den RAM ausliest, und die Werte auswertet.
    Und gibt es sonst noch eine Möglichkeit direkt Cleo zu blockieren?