Detect code Patching

03/03/2011 15:06 Lazeboy#1
hi,
wie kann man herausfinden ob jmd von meinen programm code bearbeitet hat.
Wie macht Hackshield es oder online games ^^ ?
03/03/2011 21:43 Adroxxx#2
Gibt es viele Möglichkeiten. Die einfachste wäre wohl eine Checksum zu erstellen und dann zu vegleichen.
03/04/2011 16:54 Lazeboy#3
Quote:
Originally Posted by Adroxxx View Post
Gibt es viele Möglichkeiten. Die einfachste wäre wohl eine Checksum zu erstellen und dann zu vegleichen.
ich vermute das nur bestimmte bereiche geprüft werden wie kann man sowas umgehen wenn ich ein wert in dem bereich ändern möchte ?
03/04/2011 17:13 Bot_interesierter#4
Quote:
Originally Posted by Lazeboy View Post
ich vermute das nur bestimmte bereiche geprüft werden wie kann man sowas umgehen wenn ich ein wert in dem bereich ändern möchte ?
Du willst also doch etwas ganz anderes als du in den Titel geschrieben hast.

Und um einen Check zu umgehen, musst du erst einmal herausfinden wie dieser Funktioniert, das sollte doch eigentlich kein großes Problem darstellen.
03/04/2011 18:00 lolkop#5
Quote:
Originally Posted by Adroxxx View Post
Gibt es viele Möglichkeiten. Die einfachste wäre wohl eine Checksum zu erstellen und dann zu vegleichen.
da mich dieses thema auch mal interessieren würde, an dieser stelle mal die frage, ob du jetzt vom speicher oder von dem programm als datei sprichst.
wenn der check einmal zum start des programm durchgeführt wird, um zu gucken, ob die files modifiziert wurden, ist das natürlich kein problem.

will ich jetzt aber gewisse speicherbereiche komplett gegen modifikationen sichern, erscheint mir ein solcher checksum check doch als recht ineffizient, da ja durchgängig checksummen von riesigen datenmengen berechnet werden müssten
03/04/2011 19:58 Akorn#6
Es werden ja nur die bereiche durch cheksummen überprüft die potentielle angriffsziele für gamehacker sind. Zudem wird nicht kontinuierlich der Speicher überprüft sondern man lässt in gewissen zyklen (z.b. 2min) die cheksummen errechnen.
03/05/2011 00:41 Lazeboy#7
Quote:
Originally Posted by Akorn View Post
Es werden ja nur die bereiche durch cheksummen überprüft die potentielle angriffsziele für gamehacker sind. Zudem wird nicht kontinuierlich der Speicher überprüft sondern man lässt in gewissen zyklen (z.b. 2min) die cheksummen errechnen.
ja das ist mir aufgeefallen das ich den hack einmal nutze und dann geht der aus durch das entdfecken wie kann ich das umgehen ?
03/05/2011 00:52 lolkop#8
wen das wirklich über timer läuft, kannst du entweder den check umgehen, oder eine codecave in den timer packen, welche vor dem check das original wieder herstellt, und danach den mod wieder aktiviert
03/05/2011 12:20 Lazeboy#9
könnte ich nicht in einer dll das modifizierte laufen lassen und dann hinter die funktion springen also das ich praktisch die komplette funktion kopiere und per dll ausfphre und den call ausschalte :D
dann schreib ich am anfang des calls nen jmp zu meiner dll und mache da alles und jmp dann an den ret

between wie könnte ich die funktion die das checkt finden, weil ich ja nicht weiß von wo sie uafgerufen wird
03/05/2011 21:17 MrSm!th#10
Quote:
Originally Posted by lolkop View Post
da mich dieses thema auch mal interessieren würde, an dieser stelle mal die frage, ob du jetzt vom speicher oder von dem programm als datei sprichst.
wenn der check einmal zum start des programm durchgeführt wird, um zu gucken, ob die files modifiziert wurden, ist das natürlich kein problem.

will ich jetzt aber gewisse speicherbereiche komplett gegen modifikationen sichern, erscheint mir ein solcher checksum check doch als recht ineffizient, da ja durchgängig checksummen von riesigen datenmengen berechnet werden müssten
Es war ja die Rede vom Code und nicht von dynamisch alloziierten Daten.
Der Code ist ja auch statisch in der Datei geschrieben, von daher funktioniert es geanu so.
Diverse Anti Cheat Programme machen es auf die Weise: Sie berechnen eine Checksum der Code Section der Datei und überprüfen sie.
03/05/2011 21:55 Lazeboy#11
ja wenn ich es änder stimmts nicht mehr aber wie könnte ich diese funktion finden die das checkt vlt breakpoint auf exitproces ode so ?= XD
03/06/2011 14:00 meak1#12
breakpoint on access(breaken wenn die stelle die du änderst aufgerufen wird) auf den part den du änderst und dort wirst du dann da landen wo er es vermutlich überprüft...
03/27/2011 17:51 Lazeboy#13
Quote:
Originally Posted by meak1 View Post
breakpoint on access(breaken wenn die stelle die du änderst aufgerufen wird) auf den part den du änderst und dort wirst du dann da landen wo er es vermutlich überprüft...
ich komme einfach auf keinen grünen zweig ich finde die se stelle nicht
03/27/2011 19:20 MrSm!th#14
bp auf ExitProcess ist auch ne möglichkeit, wenn du weißt, dass die funktion sofort genutzt wird, nachdem ein patch entdeckt wurde
03/28/2011 22:11 Lazeboy#15
Quote:
Originally Posted by MrSm!th View Post
bp auf ExitProcess ist auch ne möglichkeit, wenn du weißt, dass die funktion sofort genutzt wird, nachdem ein patch entdeckt wurde
wird sie nicht und geht auch nicht aber ich bin der sache schon nen schritt näher, es wird auf jedenfall von der ehsvc.dll aufgeführt also hackshield. Aber an die stelle muss man doch irgendwie kommen und an die Abfrage