Good afternoon, I ran into such a problem: I’m manually looking for a static address to a pointer so that when I restart the application, I don’t have to recount the addresses of the parameters I need. But after restarting the application, my pointers provide information on the unused application of memory.

I probably did not put it correctly, I use the Cheat Engine memory editor. And I need to write roughly trainer.

Algorithm for finding a pointer:

  1. I find the necessary parameter (for example health, data type Float)
  2. Set to a given BreakPoint address for access
  3. Found the necessary instructions (received the intended address, register, offset)
  4. Found address is marked as a pointer, using the data found above.
  5. Repeat procedures 2-4 with overwriting the index on item 4.
  • And no one promised that the addresses will be the same. - KoVadim
  • even relative addresses may change. - pavel
  • five
    Moreover , now the so-called "address space randomization" is used in almost all axes - KoVadim
  • trainers are more complicated than you think. They do not require you to change the parameters to track the desired pointer. You can look at the allocation of memory and try to "walk" on the signs. Those. find the starting point (ask the OS). Then take an indent from her to go to a class, repeat the necessary number of times. But for this you need to understand how the program works. - pavel
  • I have a set of working addresses and I don’t have a special need to use a disassembler and write a script, for me it’s enough to manually find the pointers and save them to the table. - SAIBERPRO

0