Go To Post
Zutaten: Cheat Engine , eine Programmiersprache und ein bisschen Skill
Anmerkung: Es ist nicht immer alles ins Detail oder überhaupt erklärt, teils aus Faulheit, teils als Noob-/LeecherProtection
I : Hintergrundwissen
Um das Tutorial nachvollziehen zu können musst du folgendes wissen...
1. ...die Informationen die benutzt werden um das Radar in CS:S zu zeichnen sind für uns zugänglich.
2. ...diese Informationen sind zum Beispiel: Spielername, Spieler HP, Position (X,Y,Z), Wo er hinschaut (Pitch, Yaw und Roll), usw. Ganz wichtig für uns: Das Team! (ein AimBot wäre also auch denkbar!)
3. ...die Information können wir mit Hilfe einer SpielerID auslesen.
4. ...es gibt eine Variable in der die ID des Objekts gespeichert ist, auf das wir zeigen.
Eigentlich sollte das Tutorial hier schon enden, aber ich werde allen die nicht wissen was sie damit anfangen sollen, zeigen wie das ganze funktioniert.
Anmerkung: Den Coding Part zeige ich in Visual Basic, da ich denke, dass es so am einfachsten für Einsteiger ist.
II : Adressen finden
1. SpielerID vom Objekt auf das wir zeigen:Diese ID ist am einfachsten zu finden, wenn wir auf einem local server (Spiel erstellen/Create Game) sind mit einem Bot.
Sobald die Bedinung erfüllt ist öfnnen wir CE und machen all das routine Zeug (Attach proc., usw.)
Ich sage einfach: Die Variable ist 3 oder 2, wenn wir auf den Bot schauen. Wenn wir nicht auf den Bot zeigen ist sie 0. Achtung: Nicht auf waffen zum Beispiel schauen, die haben oft auch eine ID, was uns beim Suchen stören kann!
Einfaches Vorgehen: Auf den Bot schauen, 3/2 suchen, auf den Boden schauen, 0 suchen und das ganze wieder von vorn'.
Am Ende bekommen wir wahrscheinlich eine nichtgrüne Adresse. Das heißt sie ist kein Pointer, und wird sich geändert haben, sobald wir CS:S neu starten. Ergo: Davon müssen wir den Pointer finden.
Dazu gibt es online gute Videos, wahlweise meins:
2. Das Radar:Das Radar zu finden ist mir zu Aufwendig zu erklären, also gebe ich das vor. (kommt später im Coding Teil)
III : Coding Teil (In VB.NET)
Vom Programmieren her will ich euch wirklich nur die Basics vermitteln, den Rest müsst ihr dann schon selbst machen!
1. HL2.exe Prozess HandleDas Handle vom Process bekommt ihr indem ihr folgendes macht:
TEXT Code:
Dim hl2 As Process ' der wird spaeter unseren Process darstellen
Dim p() As Process = Process.GetProcessesByName("hl2") ' Array von Process's die HL2.exe heissen.
If p.Length > 0 Then ' wenn ein Element im Array vorhanden ist (hl2.exe laeuft) dann...
hl2 = p(0) ' ... setze Process
End If
2. readMemoryIm folgenden ist eine Funktion die den Speicher auslist (int32):
TEXT Code:
Public Function readmem(ByVal Address As Integer, ByVal proc As Process, Optional ByVal size As Int32 = 4) As Integer
Dim buff As Int32
ReadProcessMemory(proc.Handle.ToInt32, Address, buff, size, Nothing)
Return buff
' Erfordert denke ich keine weiteren erklaerungen!
End Function
dazu brauchen wir folgendes am Anfang des Programms:
TEXT Code:
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Int32, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
und last but not least
3. getBaseAddressDa wir ja mit pointer arbeiten habe ich hier noch eine Function die die base Adresse von einer bestimmten DLL zurükliefert:
TEXT Code:
Public Function getBaseAddr(ByVal DLLName As String, ByVal proc As Process) As Integer
Dim erg As Integer
For Each moz As System.Diagnostics.ProcessModule In proc.Modules
If moz.FileName.IndexOf(DLLName) <> -1 Then
erg = moz.BaseAddress
End If
Next
If Not erg = Nothing Then
Return erg
Else
Return -1
End If
' Erforder denke ich auch keine weiteren Erklaerungen
End Function
Yippieeeeeeeeeee
fast fertig!
Nein, eigentlich fertig, aber weil ich so nett bin hier ein beispiel anhand einer Function:
TEXT Code:
If readmem((getBaseAddr("client.dll", hl2) + &H508170) + (&H140 * (readmem(readmem(getBaseAddr("client.dll", hl2) + pointer, 4) + offset, 4) - 1)) + &H2C, 1) = 2 Then
msgbox("Du ziehlst auf einen Terrorist!")
End If
HF & GL!
Geschrieben von: sMp (/_smp)
Inspiert von: Haloshadow (und seiner Community auf 3rdera.com)
Achtung: Bitte Tutorial nur mit meinem Namen versehen kopieren, es wäre auch nett, wenn ihr mich erwähnt in euren Produkten, bitte nicht kommerziell verwenden!
Danke
UD Status: UD!