OldSchoolHack

Register / Login English

[CS:S] externer Triggerbot

icon Thread: [CS:S] externer Triggerbot

Join Date: Sep 2010

Posts: 136

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 Handle

Das Handle vom Process bekommt ihr indem ihr folgendes macht:

TEXT Code:
  1. Dim hl2 As Process ' der wird spaeter unseren Process darstellen
  2. Dim p() As Process = Process.GetProcessesByName("hl2") ' Array von Process's die HL2.exe heissen.
  3. If p.Length > 0 Then ' wenn ein Element im Array vorhanden ist (hl2.exe laeuft) dann...
  4. hl2 = p(0) ' ... setze Process
  5. End If
  6.  

2. readMemory


Im folgenden ist eine Funktion die den Speicher auslist (int32):

TEXT Code:
  1.  
  2. Public Function readmem(ByVal Address As Integer, ByVal proc As Process, Optional ByVal size As Int32 = 4) As Integer
  3. Dim buff As Int32
  4. ReadProcessMemory(proc.Handle.ToInt32, Address, buff, size, Nothing)
  5. Return buff
  6. ' Erfordert denke ich keine weiteren erklaerungen!
  7. End Function
  8.  

dazu brauchen wir folgendes am Anfang des Programms:

   
TEXT Code:
  1. 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
  2.  


und last but not least

3. getBaseAddress

Da wir ja mit pointer arbeiten habe ich hier noch eine Function die die base Adresse von einer bestimmten DLL zurükliefert:


TEXT Code:
  1. Public Function getBaseAddr(ByVal DLLName As String, ByVal proc As Process) As Integer
  2. Dim erg As Integer
  3. For Each moz As System.Diagnostics.ProcessModule In proc.Modules
  4. If moz.FileName.IndexOf(DLLName) <> -1 Then
  5. erg = moz.BaseAddress
  6. End If
  7. Next
  8. If Not erg = Nothing Then
  9. Return erg
  10. Else
  11. Return -1
  12. End If
  13. ' Erforder denke ich auch keine weiteren Erklaerungen
  14. End Function

Yippieeeeeeeeeee fast fertig!
Nein, eigentlich fertig, aber weil ich so nett bin hier ein beispiel anhand einer Function:

TEXT Code:
  1. If readmem((getBaseAddr("client.dll", hl2) + &H508170) + (&H140 * (readmem(readmem(getBaseAddr("client.dll", hl2) + pointer, 4) + offset, 4) - 1)) + &H2C, 1) = 2 Then
  2. msgbox("Du ziehlst auf einen Terrorist!")
  3. 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!


__________________

[21:43:44] <-> Reita heißt jetzt R|GW2
[21:44:08] <-> Igromanru heißt jetzt Reita
[21:44:20] <-> Cycode2 heißt jetzt Igromanru
[21:44:27] <-> R|GW2 heißt jetzt Cyode2