Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 16:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Problem mit Counter Strike Source Wallhack

Discussion on Problem mit Counter Strike Source Wallhack within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2010
Posts: 27
Received Thanks: 7
Problem mit Counter Strike Source Wallhack

Hallo, ich kennt ja sicher folgenden Trick:

sv_cheats auf 1 setzen und dann r_drawothermodels 2 in der Konsole eingeben und schon hat man einen "Wallhack".

Mit Cheat Engine krieg ich das alles hin das ist kein Problem.

Folgendes konnte ich rausfinden:


600982EC 8379 30 02 CMP DWORD PTR DS:[ECX+30],2
600982F0 75 05 JNZ SHORT client.600982F7

Wenn ich hier jetzt JNZ auf JE setze dann hab ich meinen Wallhack aktiviert.
Ok mit WriteProcessMemory eben die Opcodes anpassen kriege ich auch hin.

Aber das seltsame ist, sobald ich mein CSS neu starte finde ich die Adresse 600982EC nicht mehr wieder (mit OllyDebugger versucht die Adresse wieder zufinden).

Der ASM Code den ich oben gepostet habe ist laut OllyDebugger in der client.dll zu finden.

Immer wenn ich CSS neustarte dann gibt mir Cheat Engine auch immer ein neues Offset aus (an den Offsets steht dann z.b. mov [esi+30],ecx) ok esi+30 ist ein Pointer das leuchtet mir ja ein das der sich immer ändern kann.

Aber wenn mov [esi+30],ecx z.b. an Offset XY steht dann gehe ich davon aus das mov [esi+30],ecx auch noch an Offset XY steht wenn ich CSS neustarte.

Kann mir wer erklären was ich da falsch mache?
Asul on frenzy is offline  
Old 03/06/2012, 23:46   #2
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Wenn ich hier jetzt JNZ auf JE setze dann hab ich meinen Wallhack aktiviert.
vac ban incoming.^^

bin mir nicht sicher, ob ich dich richtig verstehe, aber die funktion wird relativ zur client.dll sein.
also z.b. client.dll + 0x??????...
zeigt ce normalerweise im code fenster an.
Dr. Coxxy is offline  
Old 03/07/2012, 00:11   #3
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by Asul on frenzy View Post
Immer wenn ich CSS neustarte dann gibt mir Cheat Engine auch immer ein neues Offset aus (an den Offsets steht dann z.b. mov [esi+30],ecx) ok esi+30 ist ein Pointer das leuchtet mir ja ein das der sich immer ändern kann.
Das einzige Offset das ich hier sehe ist +0x30. Register+x ist kein Zeiger, das nennt sich Addition.

Quote:
Originally Posted by Asul on frenzy View Post
Aber wenn mov [esi+30],ecx z.b. an Offset XY steht dann gehe ich davon aus das mov [esi+30],ecx auch noch an Offset XY steht wenn ich CSS neustarte.
Quote:
When you assume, you make an ass out of u and me.
Quote:
Originally Posted by Dr. Coxxy View Post
vac ban incoming.^^
Als ich das letzte Mal in CS:S rumgepatcht habe hat VAC das nicht interessiert. Ist allerdings schon einige Jährchen her.

Quote:
Originally Posted by Dr. Coxxy View Post
die funktion wird relativ zur client.dll sein.
Sehr wahrscheinlich, kann mir nicht vorstellen dass Valve jetzt schon bei jedem Start Opcodes verschiebt.
SmackJew is offline  
Old 03/07/2012, 00:17   #4
 
Dr. Coxxy's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 1,206
Received Thanks: 736
Quote:
Als ich das letzte Mal in CS:S rumgepatcht habe hat VAC das nicht interessiert. Ist allerdings schon einige Jährchen her.
vac macht crc checks auf den .text bereich. afaik
Dr. Coxxy is offline  
Old 03/07/2012, 10:28   #5
 
elite*gold: 0
Join Date: Nov 2010
Posts: 27
Received Thanks: 7
Quote:
bin mir nicht sicher, ob ich dich richtig verstehe, aber die funktion wird relativ zur client.dll sein.
also z.b. client.dll + 0x??????...
zeigt ce normalerweise im code fenster an.
client.dll + 0x

Wo finde ich so etwas in ce O_o.

Ich hab mal ein anderes Programm in ce geladen.




Aber irgendwie sowas wie ... +0x finde ich dort nicht. Der Code den man auf dem Screenshot sieht ist aus der STLP45.DLL

Oder weiss jemand ob es da eine Zufallsfunktion gibt die sagt:
Wenn Zufallszahl = 1 prüfe Offset AB
Wenn Zufallszahl = 2 prüfe Offset CD
und so weiter.

Das sich ein Programm so verhält habe ich bisher noch nicht gesehen.

Und nochmal kurz zu VAC. (Mir egal ob das VAC proof ist oder nicht, es gibt auch Server ohne VAC auf anderen teste ich das sowieso nicht.)
Asul on frenzy is offline  
Old 03/07/2012, 19:13   #6
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by Asul on frenzy View Post
client.dll + 0x

Wo finde ich so etwas in ce O_o.

Ich hab mal ein anderes Programm in ce geladen.




Aber irgendwie sowas wie ... +0x finde ich dort nicht. Der Code den man auf dem Screenshot sieht ist aus der STLP45.DLL

Oder weiss jemand ob es da eine Zufallsfunktion gibt die sagt:
Wenn Zufallszahl = 1 prüfe Offset AB
Wenn Zufallszahl = 2 prüfe Offset CD
und so weiter.

Das sich ein Programm so verhält habe ich bisher noch nicht gesehen.

Und nochmal kurz zu VAC. (Mir egal ob das VAC proof ist oder nicht, es gibt auch Server ohne VAC auf anderen teste ich das sowieso nicht.)
Bibliotheken werden nicht immer an die selbe Stelle geladen.

Adresse des Opcodes - Base Adresse der client.dll = Offset
Base Adresse der client.dll + Offset = Adresse des Opcodes

Bitte hör auf den Begriff "Offset" als Synonym für Adresse zu benutzen.
SmackJew is offline  
Old 03/07/2012, 20:31   #7
 
elite*gold: 0
Join Date: Nov 2010
Posts: 27
Received Thanks: 7
Quote:
Wenn Zufallszahl = 1 prüfe Offset AB
Wenn Zufallszahl = 2 prüfe Offset CD

Bitte hör auf den Begriff "Offset" als Synonym für Adresse zu benutzen.
Stimmt das ließt sich als würde ich das meinen, aber so meinte ich das nicht.^^

Ich schau mal ob ich mir ein Programm schreiben kann was einfache Muster in DLL bzw. PE Dateien findet. So schwer sollte das ja nicht sein ...

Danke für eure Hilfe, falls ich es net hinbekomme melde ich mich nochmal.
( Ich nehme auch gerne Tipps an wie man es besser oder leichter lösen kann. )
Asul on frenzy is offline  
Old 03/07/2012, 20:37   #8
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by Asul on frenzy View Post
Stimmt das ließt sich als würde ich das meinen, aber so meinte ich das nicht.^^

Ich schau mal ob ich mir ein Programm schreiben kann was einfache Muster in DLL bzw. PE Dateien findet. So schwer sollte das ja nicht sein ...

Danke für eure Hilfe, falls ich es net hinbekomme melde ich mich nochmal.
( Ich nehme auch gerne Tipps an wie man es besser oder leichter lösen kann. )
Viel Spaß beim Zeit verschwenden.
SmackJew is offline  
Old 03/07/2012, 21:19   #9
 
elite*gold: 0
Join Date: Nov 2010
Posts: 27
Received Thanks: 7
Ja dann sag halt wie man es besser machen kann ...

Eine möglichkeiten wie ich die Adressen in der DLL finde habe ich nun.

Also ich kann die DLL´s ja einfach umschreiben aber geht das nicht ohne das ich die DLL´s umschreiben muss?
Asul on frenzy is offline  
Old 03/07/2012, 22:17   #10
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by SmackJew View Post
Bibliotheken werden nicht immer an die selbe Stelle geladen.

Adresse des Opcodes - Base Adresse der client.dll = Offset
Base Adresse der client.dll + Offset = Adresse des Opcodes

Bitte hör auf den Begriff "Offset" als Synonym für Adresse zu benutzen.
****
SmackJew is offline  
Old 03/07/2012, 22:27   #11
 
elite*gold: 0
Join Date: Nov 2010
Posts: 27
Received Thanks: 7
Ich such mir den Code in der DLL mit Cheat Engine dann Attach ich CSS an OllyDbg (find ich besser als CE) dann Patche ich die DLL speicher die DLL ab.

Starte CSS, CSS mapped meine DLL in den Virtual Address Space und führt auch meinen Code aus.

@SmackJew: **** sehr sinnvoller Kommentar.
Asul on frenzy is offline  
Old 03/07/2012, 22:32   #12
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Quote:
Originally Posted by Asul on frenzy View Post
Ich such mir den Code in der DLL mit Cheat Engine dann Attach ich CSS an OllyDbg (find ich besser als CE) dann Patche ich die DLL speicher die DLL ab.

Starte CSS, CSS mapped meine DLL in den Virtual Address Space und führt auch meinen Code aus.

@SmackJew: **** sehr sinnvoller Kommentar.
Can't do basic maths? Just patch the file, **** yea!
SmackJew is offline  
Old 03/07/2012, 23:48   #13
 
elite*gold: 0
Join Date: Nov 2010
Posts: 27
Received Thanks: 7
Ich hab mir gerade mal deine Formeln nochmal angeschaut und da ist mir eingefallen das ich sowas schon mal rausgetüfftelt hatte.

So langsam komme ich der Sache näher:

var=611e0000
var + 382F0 = Wallhack Offset JNZ änderen in JE schon hat man den Wallhack

Das Problem ist das var nicht jedes mal 611e0000 also müsste ich noch irgendwie auslesen an welche Stelle die Adresse gemappt wird. Es ist ja immer zufällig daher wird man es denke ich nicht so einfach berechnen können.



Das steht wohl nicht zufällig irgendwo im PEB oder?^^


[Bevor jetzt wieder wer mit Offset bla bla Adresse anfängt das was im OllyDbg ganz links steht (die linke Spalte) das nennt man Offset. Falls wer anderer Meinung ist ok aber vielleicht können wir es hier Offset nennen sonst bin ich ]
Asul on frenzy is offline  
Old 03/08/2012, 00:11   #14
 
elite*gold: 0
Join Date: Jul 2010
Posts: 388
Received Thanks: 196
Was genau willst du eigentlich noch erklärt haben? Du berechnest die Entfernung des Opcodes von der .dll Base, holst dir vorm Patchen die base und addierst die Entfernung. Ich kann's noch zwanzig mal wiederholen, klarer wird's nicht werden.

Das ist nicht "meine Meinung" zu der Definition des Begriffes Offset. Das ist die Definition. Eine andere gibt es nicht. Und nein, Ollys linke Spalte zeigt Adressen, keine Offsets. Ich nenne Elefanten auch nicht Giraffen nur weil's für dich einfacher ist.
SmackJew is offline  
Old 03/08/2012, 00:48   #15


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Da steht sogar "Address" drüber oO

Quote:
@SmackJew: **** sehr sinnvoller Kommentar.
Vielleicht solltest du mal das in seinem Zitat lesen.

Er versucht dir nun schon seit einer Seite zu erklären, dass die Dll wohl immer an eine andere Stelle im Speicher geladen wird.
Offsets innerhalb des Moduls sind aber konstant, also hol dir das Offset von der Dll Base zum Opcode (Rechnung hat er geposted, wobei man da mit Grundschullogik auch drauf kommt) und halte es in deinem Code fest.
Bevor du irgendwas patchst, holst du dir die Dll Base mit GetModuleHandle (Das Handle ist äquivalent zur Base Adresse) und addierst dieses Offset wieder, dann hast du die Adresse deines Pointers und kannst von da weiter rechnen.
Ich hoffe, nun ist es verständlich.

Gerade Cheat Engine nimmt einem die Vorarbeit eigentlich ab, normalerweise stehen Adressen da immer im Format ModulName+Offset, außer, man fügt die Adresse selbst hinzu, du solltest also direkt das Offset sehen und den Modulnamen hast du dann auch und kannst ihn GetModuleHandle übergeben.
Meistens ist es das Main Module, welches oft die Base 0x400000 hat, weshalb man sich die Rechnung auch oft sparen kann. Bei Dlls sieht das auch mal anders aus.
MrSm!th is offline  
Reply


Similar Threads Similar Threads
Counter-Strike Source Wallhack
12/28/2011 - Counter-Strike Hacks, Bots, Cheats & Exploits - 7 Replies
Hey Leute :) Ich stelle euch hier meinen Wallhack zu Verfügung es ist ein ganz normaler Wallhack er ist undetected allerdings ist er nicht mehr undetected, wenn ein neues Steam Update raus kommt sollte eins raus kommen meldet euch bei mir und ihr bekommt einen neuen. Wallhack: Pic-Upload.de - CSS-Wallhack.png Im Spiel: Pic-Upload.de - Im-Spiel.png Mit freundlichen Grüssen s0Nny



All times are GMT +1. The time now is 16:56.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.