How to use multilevel pointers with PointerWrite method?

Hexui Undetected CSGO Cheats Paid Help & Consulting with Rake

ZarrocZuckz

Newbie
Apr 2, 2013
2
152
0
Hey folks,
im new here and new in memory hacking in general.
I just watched fleeps c# trainer creation tut and now i wanted to make my own trainer for Plants vs Zombies but i dont know how to access multilevel pointers with the PointerWrite / PointerRead methods. Would be nice if someone could give me a hint how to do it.

Regards
 

till0sch

Respected Hacker
Dank Tier VIP
Dank Tier Donator
Oct 14, 2012
1,107
12,593
51
Hey folks,
im new here and new in memory hacking in general.
I just watched fleeps c# trainer creation tut and now i wanted to make my own trainer for Plants vs Zombies but i dont know how to access multilevel pointers with the PointerWrite / PointerRead methods. Would be nice if someone could give me a hint how to do it.

Regards
Do you have the Trainer class already? If not, download it from here: https://guidedhacking.com/showthread.php?3165-C-Better-Trainer-Class .

If e.g. your pointer is 0x232131 and your offsets are +0x123 and 0x167:

Trainer.ReadPointerInt32("Your process name", 0x232131, new int[] { 0x123, 0x167 });
 

ZarrocZuckz

Newbie
Apr 2, 2013
2
152
0
I attached a pic of my multilevel pointer, 2262 is my ammo, so 0033D7E8 is my base pointer, right? so i can do it like:

Trainer.ReadPointerInt32("gamename", 0x0033D7E8, new int[] { 0x64, 0x54, 0x4, 0x80 });
right?

multiptr.jpg
 

till0sch

Respected Hacker
Dank Tier VIP
Dank Tier Donator
Oct 14, 2012
1,107
12,593
51
I attached a pic of my multilevel pointer, 2262 is my ammo, so 0033D7E8 is my base pointer, right? so i can do it like:

Trainer.ReadPointerInt32("gamename", 0x0033D7E8, new int[] { 0x64, 0x54, 0x4, 0x80 });
right?

View attachment 1743

Trainer.ReadPointerInt32(GAMENAME, POINTER, new int[] { OFFSET1, OFFSET2, ... });

EDIT: I can see your attachment now, your code (Trainer.ReadPointerInt32("gamename", 0x0033D7E8, new int[] { 0x64, 0x54, 0x4, 0x80 });) is NEARLY correct. The only mistake you made:
The address isn't obviously 0x0033D7E8, it is obviously .....exe+0x0033D7E8

-> You could:
- if the BaseAddress of the program is 0x00400000 (usual), just edit the pointer to 0x0073D7E8. To check this, go to Cheat Engine -> Memory View -> enter your process name +.exe -> Enter -> right click go to address. If it is 0x400000, everything correct.
- Else, you'll need a procedure that can give you the baseaddress.


If it isn't 0x400000, use this:
Process p = Process.GetProcessesByName("gamename")[0];
int baseaddress = p.MainModule.BaseAddress.ToInt32();

In your read out func use this:
Trainer.ReadPointerInt32("gamename", baseaddress + 0x0033D7E8, new int[] { 0x64, 0x54, 0x4, 0x80 });
 

Attachments

Last edited:

Rake

Cesspool Admin
Administrator
Jan 21, 2014
11,496
78,998
2,306
The attachments have been approved now. :)
 
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 League of Legends Accounts