[C++] OpenGl-Wrapper mit CS1.6

12/11/2011 22:34 daemon7777#1
Hey Leute,
ich bin zum Glück kein absoluter Noob mehr im Bereich des Programmierens und hab vor ein paar Jahren auch schonmal einen Wallhack und co. für Counterstrike geschrieben. Das ist schon länger her und wollte jetzt nochmal mit dem Thema starten. Also hab ich mir kurzerhand einen wrapper downgeloaded und injected. Das Problem an der Sache ist: die dll-Main wird ausgeführt aber die gehookte gl_begin(..)-Methode dummerweise nicht. Jetzt frage ich mich ob diese Methode irgendwie von Steam verhindert wird? Also geht dieser Weg nicht mehr ganz so einfach?

Auch das Injecten scheint sich irgendwie verändert zu haben. Früher unter XP kann mich nicht an Probleme erinnern aber jetzt klappt CreateRemoteThread irgendwie nicht. Vielleicht gibt es ja auch da schon eine Standardantwort, die ich bisher aber nicht gefunden habe. Jedenfalls hoffe ich das denn viel Code ist an so einem Injector ja nicht wo man etwas falsch machen könnte :D

Würde mich sehr über Antworten freuen :)

mfg. daemon
12/12/2011 12:21 XxharCs#2
Quote:
Originally Posted by daemon7777 View Post
Hey Leute,
ich bin zum Glück kein absoluter Noob mehr im Bereich des Programmierens und hab vor ein paar Jahren auch schonmal einen Wallhack und co. für Counterstrike geschrieben. Das ist schon länger her und wollte jetzt nochmal mit dem Thema starten. Also hab ich mir kurzerhand einen wrapper downgeloaded und injected. Das Problem an der Sache ist: die dll-Main wird ausgeführt aber die gehookte gl_begin(..)-Methode dummerweise nicht. Jetzt frage ich mich ob diese Methode irgendwie von Steam verhindert wird? Also geht dieser Weg nicht mehr ganz so einfach?

Auch das Injecten scheint sich irgendwie verändert zu haben. Früher unter XP kann mich nicht an Probleme erinnern aber jetzt klappt CreateRemoteThread irgendwie nicht. Vielleicht gibt es ja auch da schon eine Standardantwort, die ich bisher aber nicht gefunden habe. Jedenfalls hoffe ich das denn viel Code ist an so einem Injector ja nicht wo man etwas falsch machen könnte :D
Da du sagst das die gl_begin()-Methode aufgerufen werden sollte, sollte sie dann in der dll_Main stehen..

Starte den Injector als Admin mal
12/12/2011 16:24 MrSm!th#3
Quote:
Da du sagst das die gl_begin()-Methode aufgerufen werden sollte, sollte sie dann in der dll_Main stehen..
Wieso das? Was hat die Ausführung seiner Dll Main mit der korrekten Funktion eines Detours zu tun?
Und ich bezweifle, dass er auf so einen banalen Fehler wie zu wenig Rechte auch selbst gekommen wäre, zumal ein Guter Injector den Error Code anzeigt.
12/12/2011 21:56 daemon7777#4
Das hört sich ja schonmal so an als wenn es theoretisch so in der Art gehen sollte.

Mit den Admin-Rechten sollte kein Problem sein. Ich hab auch schon versucht den Injector mit Admin-Rechten zu starten aber das hat nichts genützt. Bei der dll kann das Problem nicht damit zusammenhängen schließlich wird die Dll-Main ja injected. Auch das Laden der Original-Opengl32.dll funktioniert. Also tappe ich gerade ein wenig im Dunkeln was schiefgelaufen sein könnte.

Danke aber trotzdem schonmal für eure Antworten. Vielleicht hat ja noch jemand eine Idee :)
12/13/2011 22:51 MrSm!th#5
Du könntest es ja mal mit einem regulären Hook anstatt einem Wrapper probieren.
Oder du machst nen Breakpoint auf dem Call zur Funktion und prüfst, ob überhaupt dein Wrapper aufgerufen wird oder doch von vorne herein die originale.
01/18/2012 22:43 daemon7777#6
Huch ich hab den Thread hier ganz vergessen ^^

Das mit dem Breakpoint hab ich etwas uneleganter gemacht und zwar per MessageBox in der DLL-Main. Diese wurde auch aufgerufen.

Mittlerweile habe ich das Ganze aufgegeben weil ich fürchte, dass CS1.6 das irgendwie nicht mehr mit sich machen lässt (jedenfalls in der Steam-Version). Wenn ich mal wieder ne Lan-Version in die Finger kriegen sollte werde ich das da nochmal probieren. Nur um mal zu schauen ob das da funktioniert.

Ansonsten werde ich mich wohl mach neueren Spielen umsehen müssen wo sich so ein Projekt lohnen könnte :D (lohnen im Sinne von: könnte Spaß machen zu programmieren).