Solved Trying to use a pointer for my trainer in Visual basic 2010?

Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat

Soulreaper93

Newbie
Full Member
Feb 22, 2013
23
238
0
Ok, I have found the base address for ammo and I was working on adding it into my trainer, which I am using Visual Basics 2010 express.

I have to post source code instead of images, for some reason they are blocked.

So far I have this:



C++:
 WriteDMAInteger("ac_client", &H247A330, Offsets:={}, Value:=TextBox1.Text, Level:=1, nsize:=4)
That's my code that I have to make the pointer work, the problem is it has 3 different offsets and I was confused on how to go about doing this.

Heres the address and offsets(Based off of Cheat Engine):


C++:
Address: 026BA480 = 20

Type: 4 Bytes

Offset:8 026BA478+8 = 026BA480
Offset:4c [026BA848+4C] -> 026BA478
Offset:35c [026BA330+35C] -> 026Ba848

"ac_client.exe"+0011E20C -> 026B330
Here's the pic of cheat engine above, if you can see it:



Also I know this is open source and that using C++ would get me better results, but I was using VB at the time and have run into this and will not rest until I overcome how to go about fixing it lolXD
~Lawl
 
Last edited:

OmegaExtern

Newbie
Full Member
Jan 19, 2014
10
169
1
Nah I don't want to judge about c/p. I wanted to give you particularly some kind of solution for your problem. But, can you please explain it more in details?
Also provide more source, so somebody else or either I can help you more on it. From what I see in the first post, your base address is wrong, you specified no offsets, incorrect level...
I already have C#/C++/VB solution "Assault Cube trainer" with some basic functions (including hotkeys/GUI/ini config).

Complete vb.net memory class Source Code - Nether's VB Memory Class
 
Last edited by a moderator:

OmegaExtern

Newbie
Full Member
Jan 19, 2014
10
169
1
Assault cube? Heh. Let me guess where you got address(es) from. Fleep Hacks video?
Read carefully entire post, then get to work on second read.
Ok. Well, it doesn't matter C++ or C#/VB.NET (generally .NET framework). C++ is for "tuning it up" like a pro.
I made my own library that currently has over 50k lines (tons of useful and complex stuff). Well, what happened when I went to compare between 'so known benchmark' .NET writeprocessmemory and C++ writeprocessmemory, guess what? They both have great performance/speed (I think .NET even taken over C++), with Cheat Engine when I wanted to push C++, .NET still winning(...), I have both tweaked equally. It is actually how you implement it.
From what I remember, copy/pastes, this is how you use WriteDMAInteger function for VB.NET:
WriteDMAInteger("ac_client", &H1, New Integer() {&H2, &H3}, buffer, 4)
"&H" prefix represents a hexadecimal value (and "0x" in C#/C++).
&H1 = base address
And integer array containing offset elements.
To make it easy for you:
Const processName = "ac_client"
Const baseAddress = GetModuleHandle(processName, 0, "ac_client.exe") + &H0011E20C
Const offsetArray = New Integer() { &H8, &H4C, &H35C }
WriteDMAInteger(processName, baseAddress, offsetArray, 4) ' 4 because it is Integer = 32 bits = 4 bytes
GetModuleHandle is a function that you may have, if not, basically I will need to force you to make it yourself. Well, it takes a process name, index, and a module name you want to obtain a base address of. Start from For Each (process.GetProcessesByName(name)(index).Modules)
And then one simple statement inside of it (checking for module name matching moduleName paramater (3rd one)). Here I am, to save your lazy arse again:
Public Function GetModuleHandle(ByVal name As String, ByVal index As Integer, ByVal moduleName As String) As Integer
For Each (m As ProcessModule In Process.GetProcessesByName(name)(index).Modules)
' Think of its body for yourself. *OmegaExtern* I explained it to you, what do you have to do here.
Next
End Function
If you're experienced with LINQ expressions (like me), you can tweak it down so it finds module base address even faster (tip: "Where extension" to For Each loop).
Due copy/pasting, you maybe also screwed up the WinAPIs (I am pretty sure it uses incorrect signature too).
But still, use Visual C++ bro, you get access to all Windows APIs with including one piece of line (#include <Windows.h> in this case) - save yourself dying :D
NOTE: I wrote this all directly out of my head, if there are some mistakes, guess what? I don't care X)
Tip: Stop copy pasting. That is my strong advice to you. Learn how to code, use MSDN documentation/search. First write how you want your program to work. Write code. Have fun hacking!
 

Soulreaper93

Newbie
Full Member
Feb 22, 2013
23
238
0
Assault cube? Heh. Let me guess where you got address(es) from. Fleep Hacks video?
Read carefully entire post, then get to work on second read.
Ok. Well, it doesn't matter C++ or C#/VB.NET (generally .NET framework). C++ is for "tuning it up" like a pro.
I made my own library that currently has over 50k lines (tons of useful and complex stuff). Well, what happened when I went to compare between 'so known benchmark' .NET writeprocessmemory and C++ writeprocessmemory, guess what? They both have great performance/speed (I think .NET even taken over C++), with Cheat Engine when I wanted to push C++, .NET still winning(...), I have both tweaked equally. It is actually how you implement it.
From what I remember, copy/pastes, this is how you use WriteDMAInteger function for VB.NET:
WriteDMAInteger("ac_client", &H1, New Integer() {&H2, &H3}, buffer, 4)
"&H" prefix represents a hexadecimal value (and "0x" in C#/C++).
&H1 = base address
And integer array containing offset elements.
To make it easy for you:
Const processName = "ac_client"
Const baseAddress = GetModuleHandle(processName, 0, "ac_client.exe") + &H0011E20C
Const offsetArray = New Integer() { &H8, &H4C, &H35C }
WriteDMAInteger(processName, baseAddress, offsetArray, 4) ' 4 because it is Integer = 32 bits = 4 bytes
GetModuleHandle is a function that you may have, if not, basically I will need to force you to make it yourself. Well, it takes a process name, index, and a module name you want to obtain a base address of. Start from For Each (process.GetProcessesByName(name)(index).Modules)
And then one simple statement inside of it (checking for module name matching moduleName paramater (3rd one)). Here I am, to save your lazy arse again:
Public Function GetModuleHandle(ByVal name As String, ByVal index As Integer, ByVal moduleName As String) As Integer
For Each (m As ProcessModule In Process.GetProcessesByName(name)(index).Modules)
' Think of its body for yourself. *OmegaExtern* I explained it to you, what do you have to do here.
Next
End Function
If you're experienced with LINQ expressions (like me), you can tweak it down so it finds module base address even faster (tip: "Where extension" to For Each loop).
Due copy/pasting, you maybe also screwed up the WinAPIs (I am pretty sure it uses incorrect signature too).
But still, use Visual C++ bro, you get access to all Windows APIs with including one piece of line (#include <Windows.h> in this case) - save yourself dying :D
NOTE: I wrote this all directly out of my head, if there are some mistakes, guess what? I don't care X)
Tip: Stop copy pasting. That is my strong advice to you. Learn how to code, use MSDN documentation/search. First write how you want your program to work. Write code. Have fun hacking!
:facepalm:
Let's start off by saying, assuming makes an ass out of you and me. These addresses are not from fleeps hacks, believe it or not Fleep isn't the only coder and or person who has ever messed with this game. I decided to try my hand at making a trainer with visual basics for this, not to hard as long as you are familiar with Visual Basics, the reason for visual basics is because it's more simple and I haven't seen pointers used before with this particular language.

I kept running into a block, so I messaged another coder and he suggested this line of code, however he has yet to contact me back about why it may not exactly be working. What you have posted above, the useful information that is and not the parts where you believe I am C/P'ing, I have already tried and it has technically worked. You see, the code is correct, however the game still won't change the value of anything, leading me to believe that maybe an offset is wrong or something else entirely.

Next time you decide to post and insult someone, make sure you have the knowledge and the evidence to back up your claim, because if it turns out your wrong, like it did in this case, you look like a complete ass.

~Soul
 
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Community Mods