You should explain more about how ReadWriteMemory actually works.
Calling a function 3 times isn't really explaining much. Except how to write a value at an address. That's what a trainer is, but I wouldn't say you're explaining 'how to.' ?
You should explain more about how ReadWriteMemory actually works.
Calling a function 3 times isn't really explaining much. Except how to write a value at an address. That's what a trainer is, but I wouldn't say you're explaining 'how to.' ?
Too many flaws in the video. What if they want to hack a game that is protected? Then what? What if the address changes?
agreed. If you're going to make a 'how to' video, if you can, please put audio commentary in the video, not txt :/ just personal preference, but I think a lot of ppl are similar. Also, you don't really explain "how to" make a trainer, you just give 1 very specific example of doing it. Yes, poking new values into a ram address is what a trainer does, and you did that, but you didn't explain how/why. You apparently uploaded the read/writeprocessmemory code, but didn't explain it all. That's where all the juice is. :/
it should have explained:
1) OpenProcess
2) WriteProcessMemory
3) ReadProcessMemory
4) any nuances for 1-3 (ie. PROCESS_ALL_ACCESS vs vm_query, ReadProcessmemory and &actualBytesRead, etc etc)
Thanks man
Im a newbie to and I like your movie, it gives me a good first impression of what VB is.
The other reactions means nothing for me because im not so far yet. Maybe you can those reactions also made on a movie? I hope so....
"Maybe you can those reactions also made on a movie?" - huh?
edit: I retract my previous post...his video does what his title says..just not what I expected it to be. It is what it is.
Last edited by abuckau907; 12-30-2012 at 05:39 PM.
Great as a simple tutorial, however Game Trainer Design can consist of a lot more difficult problems. As mentioned by one of the users above, addresses can change, meaning the program becomes useless. This was a problem I faced when I made a Borderlands Trainer. It worked up until I restarted the program.
Could someone help me with this ?
I tried making a money cheat for SA:MP and i got the address and when i set the value from CE then it works, but when i click the button in my vb program then it shows a msgbox "Failed to open gta_sa" however the process gta_sa (gta_sa.exe) is running and gta_sa is a valid name.I tried both gta_sa and gta_sa.exe and both show the same error.
My button1 click code:
And btw my address is really 00B7CE50 but when i put it to the code those 2 zeros on start got cut automatically, is that normal ?Code:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim money As String = TextBox1.Text Try WriteInteger("gta_sa", &HB7CE50, money) Catch ex As Exception End Try End Sub
@silentus
Removing the 2 zeros is normal.
The problem is with your memory class so no one would beable to help without seeing the code.
That error was put in place by the creator of the class.
If you have team viewer, send me a visitors message with the user/pass and i'll have a look at it.
@silentus - you should really write the mem library yourself (good to understand it all, but)
my guess is, no memory function named writeInteger is going to expect a string for the "value" to write...it probably expect an Integer....change it from string to integer.
edit: if someone else's memory class "can't find the process", like pingo said, it's a problem w/ the class, not your button1 code.Code:Dim money As Int32 = Convert.ToInt32(TextBox1.Text) '' <------- x x x Try WriteInteger("gta_sa", &HB7CE50, money) Catch ex As Exception End Try End Sub
Are you admin?
OR
If you tried every possible "process name", maybe it's not going by "process name" : try "main window title".
# comment: is 0000001 the same as 1 ? It's the same for hex, binary etc.
Last edited by abuckau907; 01-06-2013 at 07:49 AM.
'Some things that can be counted, don't matter. And some things that matter, can't be counted' - A.E.
--
Could you upload the class?
I want to compare it to mine.
What if I have more than one offset?
button code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim czytaj = ReadInteger("Game", &H7ED7B8)
Dim wartosc = TextBox1.Text
Try
WriteInteger("Game", (czytaj + &H11C), wartosc)
Catch ex As Exception
End Try
End Sub
Last edited by Rifju; 08-03-2018 at 12:26 PM.
Code:Public Function GetPointer(ByVal Offsets As Integer()) As Integer Dim BaseAddress As Integer = GetBaseAddress(tProcess) BaseAddress = BaseAddress + Offsets(0) If Offsets.Length > 1 Then Dim RealAddress As Integer = ReadMemory(Of Integer)(BaseAddress) RealAddress = RealAddress + Offsets(1) Dim i As Integer = Offsets.GetUpperBound(0) For index As Integer = 2 To Offsets.GetUpperBound(0) RealAddress = ReadMemory(Of Integer)(RealAddress) + Offsets(index) Next Return RealAddress Else Return BaseAddress End If End Function