Jump to content

Recommended Posts

Posted

I can't do this with interface - you say to write a script (in many times harder task which may be done only if to know how it works in general - via interface). How to do this with interface? In ArtMoney possible just to refine pointers by an interesting game value. And it is very helpful there.

  • Administrators
Posted

Manually it open each pointer context menu - go to pointer - watch value in memory editor - remember it.

Repeat 65 times.

 

You can not do this in simple way without script.

[added 1 minute later]

Scripts are not just automation of actions through the interface. On the basis of scripts, you can do something that can not be done through the interface. And your task, just from such.

Posted

Why need search of pointers if no refine of pointers? Pointers for a single value are very rare. Most of them works for the beginning of a memory block. So the pointers option is almost useless without refining. Believe - most of users can't write scripts and use more than 50% features of GameGardian. Please add refining of pointers. You can see how it works in ArtMoney without any scripts.

  • Moderators
Posted

So, if you learn patterns and structure of values in a game, you can eliminate the "guess work" and many variables around the value you want.

This is what @BadCase and myself do with scripts.

We don't search for the value you want to edit. Because sometimes it's unique to qty or Encryption on that launch etc etc. But navigate through the 'tree' of pointers to find some constants that are the same EVERY LAUNCH for every or most devices. 

It's not easy, extremely time consuming.

Posted

To find some constants - it is something like to find a raft among the see if the game is big. Need very big luck and very big knowledge.

Refining of pointers is a very important feature. It works so in ArtMoney:

1) Here is some value of gold. We use this value to search for pointers with offset. The program itself gives the maximum possible offset - no need to enter it.

2) When the gold value was changed - we can refine pointers by that new value of gold (concrete or reduced/increased). So the search and refining are closely related to the gold value.

Please try to implement.

  • Administrators
Posted

You do not feel the difference between embedded devices and a PC. Between their capacities and capabilities. What is possible on a PC is not always possible on embedded devices.

Posted (edited)

I understand that they are very different. And I am not sure about auto detecting maximum possible offset. But refining pointers by some game value should be possible but probably not easy.

I remember that they use the formula - pointer address + offset. So just need to refine the final address values by some game parameter.

Edited by oled
  • Administrators
Posted

If you all know and understand so - describe in detail and step by step what should be the algorithm for finding pointers with an indefinite offset.  And what is the refine algorithm, after that.  At least to the depth of one pointer.

 Even for a very good and convenient number, you will have at least 1000 results in the first search.  For uncomfortable and small numbers you will have hundreds of thousands of results.

 You offer to spend hundreds of thousands of searches, for the reverse of the pointer?

 And do not forget that the search is not instant.  If you are looking for something for a long time, the pointers may already change.  Even if the process can be paused, there are time limits after which the network connections are closed, the system will detect that the application is not responding and can close it without asking.

Posted

The offset is definite — it starts at the beginning of the current memory block with the desired value.

Here is the step-by-step description how it works in ArtMoney (also pointer on pointer structures).

 

Pointers.pdf

Posted
22 minutes ago, oled said:

Quote from the first page:

Quote

Address of the pointer does not change when the game is restarted. If the
address stored in the table is a pointer, then we can get the real addresses of the
values by following the pointer, even after restarting the game.

While this may be true for PC, it is not for Android. On Android there is ASLR. After the process is restarted, all values change their location.

Therefore, the method described in the document won't help with finding the value after the process is restarted.

Posted (edited)

So do you mean that pointers stop to work and become useless after restarting a process?

Edited by oled
Posted
5 minutes ago, oled said:

So do you mean that pointers stop to work and become useless after restarting a process?

They don't stop to work, but their address will be different after every process restart.

For example, you found a pointer. It's address is 0x5522AA00. Then you restart a process and check the address. There will be another value. It may be just some regular value or it may be a pointer, but different one, that points not to the structure/value you expect. And the pointer you have found before, will be located, for example, at address 0x4488AA00.

Posted

So does it means that need to find pointers again after every process restart and their old addresses generally can't help?

Posted
Just now, oled said:

So does it means that need to find pointers again after every process restart and their old addresses generally can't help?

Yes, just as I have written in one of the previous messages.

Posted

It is very sad.

But there are often values which sometimes change even without restarting a game. May the method (from pointers.pdf) work without restarting?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.