![]() |
Hooking
Hallo Leute,
kann ich irgendwie verhindern, bzw. abfragen oder blockieren, das ein Prozess oder ein Programm geHOOKt wird? Ich erstelle ein AntiCheat Tool für ein Spiel und möchte Abfragen, ob irgendwelche Programme (z.B: Trainer) auf das Programm zugreifen, dies ist denke ich nur mit API-Hooking möglich, oder? Ich möchte verhindern, das bestimmte Programme auf das Spiel zugreifen, was allerdings blöd für ein AntiVirus oder eine Firewall wird. Habt ihr da Ideen? Gruß silent |
Re: Hooking
Dafür brauchst du einen Globalen(Dll- Injection) API- Hook.
Trainer z.B. benutzen eigentlich keinen Hook, sie lesen mit ReadProcessMemory den speicher des jeweiligen Prozesses aus, analysieren es und verändern den Speicher mit WriteProcessMemory. Also alles was du brauchst ist eingentlich ein Globaler Hook für die functionen ReadProcessMemory und WriteProcessMemory. Am besten du benutzt die Collection von ![]() Such mal hier im board nach einen Trainer. Dan weist du wie ein Tainer genau funzt. Zitat:
|
Re: Hooking
Danke für deine Antwort.
Jetzt weiß ich schonmal wie ich das Anstellen kann. Ich werde die Dateien des Spiels auf Checksums prüfen und dann wie du gesagt hast einen globalen Hook auf die Funktionen (wenn ich wüsste wie :-) ) Ich hab mir die Examples von der uallCollection schon angeschaut, einige sind sehr einfach, aber ich habe leider nichts zu FunktionenHooks gefunden. Das Beispiel: RelocHook sieht mir sehr danach aus. Nur leider kenn ich mich nicht sehr im Hooking aus. Könntest du oder ein anderer mir ein bisschen auf die Sprünge helfen, vll mit einem CodeExample oder ähnlichem, wie ich so einen globalen Funktionshook auf bestimmte Funktionen mache? Ich müsste ja theoretisch die Funktionen überwachen und schauen, ob eine der beiden Funktionen auf meinen Prozess zugreifen wollen. |
Re: Hooking
guck dir die MadCollection an, die oben gepostet wurde, da sind viele solcher demos dabei (im Ordner Demos --> MadCodeHook)
|
Re: Hooking
schau mal ins Forum bei madshi.net
Da ist unter anderem eine Funktion von mir die Hooks erkennt. |
Re: Hooking
So, ich habe mir jetzt die ganzen Beispiele von der MadCollection nochmal angeschaut, ich finde da keinen Ansatz wo ich sagen kann ich möchte prüfen ob ein Prozess mit einer bestimmen Funktion (z.B: ReadProcessMemory) angesprochen wird.
@brechi Das Forum da ist sehr groß, leider konnte ich dort auch nicht deine Funktion finden. Habe nach Stichworten gescuht und nach deinem Nick, aber leider keine Treffer. Kann mir einer von euch nicht gerade ein Beispielcode liefern? In welche dll müsste ich meinen Hook eigentlich packen, um Global zu schauen, welche Funktionen auf welche Prozesse zugreifen? Danke vielmals! |
Re: Hooking
Zitat:
Der erste Parameter der in ReadProcessMemory übergeben wird ist das Processhandle, damit kannst du prüfen ob dein Spiel (oder was auch immer) das ziel ist. Zitat:
Hier der Link zu dem Thread : ![]() Zitat:
DU kannst mich sonst auch per ICQ anschreiben (318270655) |
Re: Hooking
Danke für deine Antwort, hat mir weitergeholfen!
|
Re: Hooking
Wobei das globale Hooking aber leicht umgangen werden kann.
Du solltest eine Dll in den Prozess des Spiels laden und dann eben schauen ob dort vom Cheat Funktionen gehookt wurden. Cheats die z.b. nur irgend welche Variablen mit WriteProcessMemory ändern wirst du nicht erkennen können. |
Re: Hooking
jo, wobei es bei der IsHooked funktion ja auch gewisse einschränkungen gab oder?
Generell solltest du mit dem Hooken von Read/WriteProcessmemory, VirtualAlloc(ex) etc aufpassen, da fast jede HookinEngine diese Funktionen intern auch benutzt....kann leicht mal zu Problemen führen. @brechi : ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz