Thema: Delphi Anti Cheat Engine

Einzelnen Beitrag anzeigen

napsterxx

Registriert seit: 18. Mär 2007
Ort: Borland
556 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Anti Cheat Engine

  Alt 23. Aug 2008, 20:50
Und damit hätte ich das Programm welches diese Prozedur verwendet

Also kurz zu meinem Vorhaben, es könnte sein dass daruch alles etwas eindeutiger wird. Also ich bin dabei ein kleines "Ligen" System aufzubauen - Jetzt bitte nicht mir der ESL vergleichen - und habe eben auch Regeln.

Zum Beispiel:
Keine Modifikationen dürfen benutzt werden
Keine anderen Hilfsprogramme außer den erlaubten

Dadurc hätte ich eigentlich alle DLLs die auf das Spiel zugreifen dürften, und somit ist klar wenn ich eine andere finde das eine DLL injiziert wurde. Oder nicht?

Bleibt noch die Möglichkeit via Memory Patching sich unfaire Vorteile zu verschaffen. Da könnte ich entweder per Hook, sofern dies funktioniert zugreifen, oder alle anderen aktuell laufenden Programme auf zugriff zu dieser Adresse/Prozedur überprüfen.
Dadurch wäre eigentlich ein recht breites Spektrum des Cheatens abgedeckt - gkaube ich

Nachteil, der Anwender dürfte keine anderen Programme als das Spiel, und erlaubte Hilfsprogramme laufen haben

Zitat:
Dazu kommt, dass ein Programm zu bestimmten Anlässen in seinem eigenen Heap herumlesen wird und dabei diese Prozeduraufrufe stattfinden. Wenn du so richtig hart bist, trägst du dein Programm als Systemdienst ein, überwachst jedes startende Programm, disassemblierst es und ersetzt den Kernel32-Aufruf auf WriteProcessMemory mit einer Umleitung auf eine eigene DLL, welche ihrerseits mit Kernel32 kommuniziert und nur beobachtet. An dieser Stelle kannst du dann im Falle eines Fremdzugriffes prüfen, ob der Zielprozess den Dateiname deines Spiels trägt
Diese Methode finde ich sehr schön, jedoch weis ich nicht wie ich ein Programm als Systemdienst starten kann (ich werde mal suchen) und welche Vorteile ich erziele und wie ich dann weiter machen kann.
Wäre schön, wenn der ein oder andere mir da ein paar genauere Informationen geben könnte
Du derefernzierst p2 einmal und weißt die Adresse von i zu. Das heißt p2 (also der Zeiger auf einen Zeiger) zeigt auf den Zeiger p1 welchen du so auf i zeigen lässt.
  Mit Zitat antworten Zitat