Geschütze PID auslesen - Wie?

07/01/2011 10:45 jackicola#1
Hi,
ich hab ein Programm das seine PID schützt. Wenn ich versuche sie auszulesen bekome ich "000000" zu sehen. Gibt es eine Möglichkeit das ganze richtig auszulesen??

MFG!
07/01/2011 14:49 Bot_interesierter#2
Mit derart wenig Information, Nein!
Wenn du uns mitteilst um welches Spiel es sich hier dreht, dann besteht die möglichkeit das jemand hier weiß wie das Anticheattool dieses Spiels zu umgehen ist.
07/01/2011 16:48 jackicola#3
Das Spiel heist Airrivals, ist leider ziemlich unbekannt...
07/01/2011 22:12 Bot_interesierter#4
Also es handelt sich bei dem Anticheattool des Spiels um Hackshield, ich persönlich kenne mich damit nicht wirklich aus.

Ich kann dir allerdings sagen dass Hackshield einen Treiber benützt um Windows API Funktionen zu hooken, dass dürfte auch erklären weshalb du die ProcessID nicht bekommen kannst.
Leider kann man nicht einfach das Laden des Treibers verhindern, weil das Spiel über eine Interface Dll mit Hackshield kommuniziert und es wohl eine Art Keepalive Paket gibt, also der Spieleserver würde die Verbindung trennen wenn du Hackshield einfach "abschaltest".

Du kannst aber auch einfach eine Dll injizieren bevor Hackshield gestartet ist, also am besten den Prozess mit deiner Dll starten, über diese kannst du dann Schreib/Lesbare Speicheradressen in dem Spiel beschreiben und/oder lesen.
Modifikationen am Spielclient selbst könntest du natürlich auch machen, bevor Hackshield geladen ist, aber soweit ich weiß führt Hackshield CRCs durch.

Die ProcessId würde dir auch nichts nützen, denn die Windows API Funktionen mit denen du auf den Prozess zugreifen könntest werden von Hackshield gehookt.
Ich hoffe ich konnte dir wenigstens ein bisschen weiterhelfen.
07/02/2011 16:10 jackicola#5
Ja, geholfen hast du mir auf jeden Fall!

Aber das Problem ist, wie soll ich denn die DLL injecten wenn das game die PID schützt?
Weil ich kenne nur eine Methode wozu man die PID braucht...
07/02/2011 16:33 ms​#6
Wenn du den Prozess mit CreateProcess startest, kannst du an die PID kommen.
07/02/2011 16:35 Bot_interesierter#7
Der Klassiker ist es den Prozess als Suspended mit CreateProcess zu erstellen und dann die Dll zu injizieren, die Detours Bibliothek von Microsoft hat dafür soweit ich weiß auch fertige funktionen.
07/02/2011 17:43 MrSm!th#8
Oder probier Windows Hooks.
Damit wird jeder Prozess gezwungen, die Dll zu laden.

Du erstellst also eine Dummy Dll, die nichts anderes tut, als von jedem Prozess geladen zu werden. Wenn sie im Zielprozess (dein Spiel) gelandet ist, lädt sie deine eigentliche Dll hinterher und du entfernst den Hook wieder, dann wird sie wieder aus alle Prozessen entladen.

Du könntest auch probieren, HS an den entscheidenden Stellen zu patchen (Laden des Treibers, Treiberaktivitäts-Checks, usw), ist nicht ganz so schwer und wird in den meisten Versionen auch nicht vom Server kontrolliert.