[Tutorial] Trainer Visual Basic 6

07/09/2010 12:37 .CяeαTiVe#1
Hallo,
das Tutorial habe ich in **** gefunden und wollte es hier nun mal schreiben.
Dies ist auch auf Deutsch :).

Was man braucht:
Visual Basic 6
Hex Codes (Cheat Engine Codes)
Finger
Gehirn

Teil 1
Öffne VB6 dann wähle standart EXE aus und klicke auf Open.
Nun fügt ihr ein Module hinzu.
So geht es: Rechts oben neben der Form ist ein Ordner mit den Namen "Forms" noch ein darüber klickt ihr Rechte Maustaste wählt Add und dann Module.
Jetzt solltet ihr ein Module Code Fenster offen haben.
Dort schreibt ihr folgendes rein.
Code:
Public Const PROCESS_ALL_ACCESS = &H1F0FFF
Dim f1holder As Integer
Dim timer_pos As Long

'API Declaration
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal Classname As String, ByVal WindowName As String) As Long
Public Declare Function GetKeyPress Lib "user32" Alias "GetAsyncKeyState" (ByVal key As Long) As Integer
Public Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long

Public Function WriteAByte(gamewindowtext As String, address As Long, value As Byte)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "The Game Is Not Working", vbCritical, "Error"
End
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Can't get ProcessId", vbCritical, "Error"
Exit Function
End If
WriteProcessMemory phandle, address, value, 1, 0&
CloseHandle hProcess
End Function

Public Function WriteAnInt(gamewindowtext As String, address As Long, value As Integer)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "The Game Is Not Working", vbCritical, "Error"
End
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Can't get ProcessId", vbCritical, "Error"
Exit Function
End If
WriteProcessMemory phandle, address, value, 2, 0&
CloseHandle hProcess
End Function

Public Function WriteALong(gamewindowtext As String, address As Long, value As Long)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "The Game Is Not Working", vbCritical, "Error"
End
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Can't get ProcessId", vbCritical, "Error"
Exit Function
End If
WriteProcessMemory phandle, address, value, 4, 0&
CloseHandle hProcess
End Function

Public Function ReadAByte(gamewindowtext As String, address As Long, valbuffer As Byte)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "The Game Is Not Working", vbCritical, "Error"
End
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Can't get ProcessId", vbCritical, "Error"
Exit Function
End If
ReadProcessMem phandle, address, valbuffer, 1, 0&
CloseHandle hProcess
End Function

Public Function ReadAnInt(gamewindowtext As String, address As Long, valbuffer As Integer)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "The Game Is Not Working", vbCritical, "Error"
End
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Can't get ProcessId", vbCritical, "Error"
Exit Function
End If
ReadProcessMem phandle, address, valbuffer, 2, 0&
CloseHandle hProcess
End Function

Public Function ReadALong(gamewindowtext As String, address As Long, valbuffer As Long)
Dim hwnd As Long
Dim pid As Long
Dim phandle As Long
hwnd = FindWindow(vbNullString, gamewindowtext)
If (hwnd = 0) Then
MsgBox "The Game Is Not Working", vbCritical, "Error"
End
Exit Function
End If
GetWindowThreadProcessId hwnd, pid
phandle = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
If (phandle = 0) Then
MsgBox "Can't get ProcessId", vbCritical, "Error"
Exit Function
End If
ReadProcessMem phandle, address, valbuffer, 4, 0&
CloseHandle hProcess
End Function
Dieses Module erlaubt euch die Memory zu bearbeiten (keine Ahnung wie ich es ausdrücken soll.)

Part 2
Nun erstellt einen "CommandButton" und klickt 2x auf den Button nun schreibt ihr folgendes rein:
Code:
Call WriteALong("FENSTERNAME", &HEUERCODE, 1)
Das &H muss unbedingt stehen bleiben, damit VB weis das nun ein Hex Code kommt!
Nun erstellt ihr eine Textbox neben dem Button und klickt 2x auf die Textbox!
Nun schreibt ihr folgendes hinein:
Code:
Dim Value1 As Long
Call ReadALong("FENSTERNAME", &HEUERCODE, Value1)
Text1.Text = Value1
Value1 steht für die Value das heißt wenn ihr einen HP Trainer machen wollt oder Munition, schreibt ihr die gewünschte Munition rein und dann habt ihr X Munition. Daher auch Text1.Text = Value1 .

Part 3
Erstellt nun einen weiteren Button und schreibt folgendes rein
Code:
Timer1.Interval = 1
Falls ihr nochmehr Adressen freezen wollt, müsst ihr dementsprechend entweder noch mehr Buttons machen oder bei dem Button wo Timer1.Interval = 1 ist noch Timer2.Interval = 1 und so weiter reinschreiben.
So würde es bei 3 Timern aussehen
Code:
Timer1.Interval = 1
Timer2.Inteval = 1
Timer3.Interval = 3
Nun erstellt ihr einen Timer, und klickt 2x auf ihn drauf und schreibt folgendes rein.
Code:
Call WriteALong("FENSTERNAME", &HEUERCODE, 1120403456)
Natürlich brauchen wir noch einen ausschalter, also erstellt ihr einen weiteren Button und klickt 2x Drauf und schreibt rein
Code:
Timer1.Interval = 0
'Timer2.Interval = 0
'Timer3.Interval = 0
Jetzt kommt noch ein bisschen hilfe für mehr CheatCode Hack dinger^^.

Pro Hack braucht ihr eigentlich 1 Timer, natürlich müsst ihr in den Butteon wo Interval = 1 ist den Timer auch hinzufügen und bei dem Button wo Interval = 0 ist auch.

PS: Ihr könnt es natürlich auch mit einen Timer versuchen.

Ist zwar nicht gut erklärt, doch jeder der ein bisschen Ahnung von VB hat sollte es verstehen.

MFG
~ich
07/10/2010 15:21 Jeoni#2
So ich schreib auch mal was.
Das tut ist an sich ganz nett, allerdings ist VB6 veraltet und wird daher kaum noch benutzt. Außerdem kann man (zumindest ist es nicht erklärt) keine Float, Text oder Double Values verändern. Nur, soweit ich es richtig beurteile, 2 Bytes (Single oder Short; ka), 4 Bytes (Integer) und 8 Bytes (Long). Für mich also unnütz.
Jeoni

Ahja, pushen ist verboten!
#reportet
07/10/2010 15:47 .CяeαTiVe#3
Jeoni, ja du hast recht.
Aber eig. arbeite ich mit VB.net, damit kann man au D3D's machen^^.
Naja, ich sag mal so das soll ja nur ein kleiner Trainer sein damit Leute aus solchen Sachen was lernen.
Will den jez ja nich iwas von C++ andrehen was die eh nicht verstehen^^.

VB6 is zwar veraltet aber wird immernoch häufig genutzt.
07/19/2010 13:37 N1GHTLIFE#4
Was versteht ihr denn bitte unter einem Tutorial ? Ein Tutorial ist dafür da, dass man etwas lernt. Du hast eine Erklärung gemacht : "How to C&P your own 1337 Hack"... Du hast nichts erklärt, niemand wird daraus etwas lernen. Sry aber sowas ist für mich kein Tutorial. Die ganzen VB6 Leute die 2 Tage VB gelernt haben und unbedingt ihren eigenen Cheat machen wollen müssen einfach nur das ganze Zeugs kopieren und Form1.Capture = "Made by Me" ins Form Load Event schreiben....

mfG
07/21/2010 09:17 .CяeαTiVe#5
Joa, hast recht werde mich wenn ich Wach bin &' Zeit habe nochmal dransetzen -=ô,ô=-
07/21/2010 13:09 N1GHTLIFE#6
Quote:
Originally Posted by $k!LL3D View Post
Joa, hast recht werde mich wenn ich Wach bin &' Zeit habe nochmal dransetzen -=ô,ô=-
Das wäre cool :) War nicht böse gemeint oder so nur es gibt leider immer Leute die das immer nur kopieren und nichts lernen wollen ;-)

mfG
07/23/2010 17:05 .CяeαTiVe#7
Naja, auch mit ner Anleitung brauchen die nur C&'P
04/28/2012 04:01 Tyrar#8
Quote:
Originally Posted by Wolfteam1997 View Post
Was labberst du digga das geht nicht lol

Fehler 1 "As Any" wird in Declare-Anweisungen nicht unterstützt. C:\Users\\AppData\Local\Temporary Projects\DeinHode\Module1.vb 10 111

SCHEIS ERROR IMMER
1. alter thread
2. du homo hast wohl keine ahnung?
3. reported