Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


[Suggestion] AoB Pointer Type
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Nvr22
Newbie cheater
Reputation: 0

Joined: 02 May 2012
Posts: 14

PostPosted: Fri Aug 10, 2012 2:50 pm    Post subject: [Suggestion] AoB Pointer Type Reply with quote

In auto-assembly you can use AoBs to find a specific address which works wonders on things you can't find a solid pointer for,
not to mention it's much, much quicker to find a good AoB than pointer if you can isolate the AoB to a single result or the first resulting address.


So what I'm suggesting is adding in a way to input AoBs (with offsets) to the Pointer menu- so, after you've selected the process you want,
it will automagically run a background AoB scan using the AoB you typed into the Address' Pointer menu, then proceed to fill out the Address field with the first result it finds +/- the offset (as per usual).

Any changes to the value of the address found using this method won't alter the AoB in the Pointer menu.

This allows for using AoBs in the same manner as with scripts outside of them which will-
make small changes to a single dynamic address less of a hassle, since you won't have to go through your AoB script just to change the value from 05 to 0A*,
allow for patch resistant addresses in the Address List, as well as create a viable alternative to pointers.

The whole point of a script using AoB is to continue to find dynamic addresses despite restarts or patches, and that's exactly why I would like this implemented-
So every time you restart the process or it gets patched you won't have to go back and manually scan for everything in the Address List all over again, consequently having to refind its pointer on top of that, or--
be forced to create and alter scripts for the simplest of tasks merely due to frequent patching.


*Keep in mind you have to change the AoB after [DISABLE] to reflect the change from 05 to 0A as well, which quickly becomes time consuming if you have to do it 15+ times consecutively-
especially when considering this is all what would just be a double click and typed "10" if it were in the address list.


Last edited by Nvr22 on Sun Aug 26, 2012 7:12 am; edited 1 time in total
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25779
Location: The netherlands

PostPosted: Fri Aug 10, 2012 4:16 pm    Post subject: Reply with quote

I don't really get what you are suggesting, or the reason, but i think i may have some suggestions for your current script

You can use registersymbol in the first aa script you do to store all aob's .
The addresslist will then recognize those symbolnames and if they are combined with an offset deal with that automatically

Disable should of course also make use of the registered symbol address when restoring

If you're asking because the aob has changed and you wish to change all scripts easily, you can do that as well. Just keep ALL aob's in the initial script, and use that to store the original bytes when injected.(you can store the original bytes before overwriting)

In the secondary scripts make use of the registered addresses and when disabled restore with the stored original bytes

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Nvr22
Newbie cheater
Reputation: 0

Joined: 02 May 2012
Posts: 14

PostPosted: Sat Aug 11, 2012 4:12 pm    Post subject: Reply with quote

I believe I've used what you're talking about before, but it's quite a bit different from what I'm suggesting as well as what I'm using the script for.
It might just be easier to explain it with an image.


Just follow the arrows in the attachment - sorry if it's a bit messy.


The reason I'm suggesting this is so there can be an easily accessible alternative to pointers that's patch resistant,
so when something's updated you don't have to go through finding the Address' pointer all over again.

With applications that are patched quickly (hourly, daily, biweekly) using pointers is just a waste of time,
but if the game crashes and you don't have them then you're out of luck- unless you use AoBs,
however the usability and ease of access with AoBs isn't quite on the same level as pointers with the exception of turning to scripts which helps slightly but only improves time by a matter of merely a three or four minutes.

I'm hoping, if you decide to try it out, this will allow for pointers to no longer be the only way to automatically get an address in the Address List.
Plus finding a compatible AoB can be quite a bit quicker than going through pointers until you dig up a static one.

Edit: Using scripts speeds up my time, but it may just be a me thing so I edited it out. Irregardless the suggestion was intended as an alternative to pointers anyway so the scripts part hardly mattered.



Untitled-4.png
 Description:
 Filesize:  178.05 KB
 Viewed:  14957 Time(s)

Untitled-4.png


Back to top
View user's profile Send private message
Nvr22
Newbie cheater
Reputation: 0

Joined: 02 May 2012
Posts: 14

PostPosted: Mon Aug 13, 2012 9:05 pm    Post subject: Reply with quote

Bump for response.
Impractical?
Already in and I just missed it?
Hard to implement?

Only you can decide! *pans*
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25779
Location: The netherlands

PostPosted: Tue Aug 14, 2012 5:45 am    Post subject: Reply with quote

I'm just not sure how useful this is as aob's tend to be used with code most of the time (and don't use value changes to change code, that's just horrible practice)

I might expand the userdefined symbol list with the ability to do an aob scan when the table is loaded/process opened/referenced when not yet defined, but I don't think it's a good fit as a cheatentry element

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Jeffrey_
Expert Cheater
Reputation: 1

Joined: 10 Jun 2011
Posts: 164

PostPosted: Fri Aug 17, 2012 5:39 pm    Post subject: Reply with quote

This does seem quite useful for me really. Because I'm not the best in auto assembly but I like to use pointers a lot. But in some games e.g Minecraft, finding a good pointer that's works every time is practically impossible. So this would be very useful for creating easy pointers and for games like Minecraft. Plus it would save time and most likely make the pointer work in every version of the game. So I agree with Nvr22 and would like this implemented in the next beta.

Smile
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25779
Location: The netherlands

PostPosted: Fri Aug 17, 2012 7:27 pm    Post subject: Reply with quote

I don't see how this would help at all with pointers to data
AOB's are mainly for code (JITed for example in java). You could use it to find signatures for specific structures, but still you'd find too many to be of use then

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Nvr22
Newbie cheater
Reputation: 0

Joined: 02 May 2012
Posts: 14

PostPosted: Sat Aug 18, 2012 3:22 am    Post subject: Reply with quote

(You can skip to the edit if you don't want to read this wall)

Simply because AoBs original intent was for use in code, doesn't mean it needs to be limited by it.

In most cases that I've needed to use AoBs I've been able to whittle it down to 1 to 4 results easily.
If it's 2 or more it's almost always the first result, which is the one an AoB in auto-assembly will pick.

However, if you can't whittle it down or it isn't the first- that's where offsets come into play.
Since the AoB you were trying won't work, you go a few lines back until you find one that's alone when searched (usually doesn't take long) then add the +6 or +B to it to lead to the exact address you want.

So in almost every case it's very possible.

Furthermore it's purpose -isn't- to replace pointers, or help them- but to provide a alternative -to- them, even if a rarely circumstantial one.

In some cases, as you've said, you may find too many resulting AoBs for it to be useful- then you'll have to go with regular pointers.
But in other cases when you can't legitimately get a solid pointer you'll now have an -option- to use AoB Pointers so you're not stuck with finding the address through manual scanning every time you restart the application, or using scripts for simplistic tasks.
With the added bonus that the AoB Pointers will be patch resistant, so you won't always have to change them when whatever you're using is updated (Pic is specifically aims at this)

If you think it would be too confusing to the random person who downloads CE to hack the latest flash game, it could always be a defaulted:off with an option for it in the settings.
Though that wouldn't really help its use in Tables or Trainers for the average user either.


Oh and I was actually using code to change values, not the other way around.
Sorry for the late response, I was a bit busy for the last few days.





EDIT: God I suck at explaining things.
Summarized AoB Pointers will be useful (or "help") by:

1. Being much quicker to find than Pointers (Saving some time- especially if it's multi-level)

2. Being Patch Resistant (Saving even -more- time* See pic)

3. Opening an alternative to Pointers
3a. Releases AoB from the awful, cruel binds of scripts

At -least- give it a shot in the beta, all this is doing is bringing aobscan(AA BB CC DD 99) to the Pointer menu.
And if you haven't already, -please- look though the pic.



*Remember that game you hacked months ago? If you used an AoB Pointer on the gold value and it's been patched since then, you won't have to go searching for it all over again the next time you play!
Alternatively, if the game you're hacking updates daily you won't have to go searching for that gold multi-level pointer with every. Single. Patch.



Untitled-6.png
 Description:
 Filesize:  93.91 KB
 Viewed:  14724 Time(s)

Untitled-6.png


Back to top
View user's profile Send private message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Sun Aug 19, 2012 8:31 pm    Post subject: Reply with quote

If I understand correctly you want to scan for a signature like 11 22 33 44 55 66 and you know that -for example- your money is always stored 20 bytes after this signature. Is that it?


If it is, rejoice, you can already do that with CE's built in LUA script engine. I'm not very experienced with CE lua scripts but the concept is:
Code:
AOBScanResults=AOBScan("11 22 33 44 55 66","+W-C")
MyAddressList=getAddressList()
MoneyCheatEntry=addresslist_createMemoryRecord(MyAddressList)
memoryrecord_setAddress(MoneyCheatEntry,AOBScanResults[0]+20)
--some deallocation for AOBScanResults ?

After due fixing, save it as your cheat table's lua script, and now you should get a popup when opening this table, asking if you want to run the table's lua script (=aobscan for your money).
Back to top
View user's profile Send private message
Nvr22
Newbie cheater
Reputation: 0

Joined: 02 May 2012
Posts: 14

PostPosted: Mon Aug 20, 2012 4:36 pm    Post subject: Reply with quote

That's actually quite close. Near the same in fact, but what you're suggesting goes against the point behind adding it to the pointer menu.

Lua isn't easily accessible, without prior knowledge the typical user won't know this type of usage even existed.

The purpose of adding it to the pointer menu is to make that option easily accessible to people that just want to hack Minecraft per se but find it impossible to get a pointer.
Quite simply, just to add another option for the people who -don't- know Lua (would that not be most of the people who use Cheat Engine?) so they -don't- have to turn to scripting for very simple tasks.

But yes, you pretty much have the -idea- down to a T. I'm just trying to get this specifically in the pointer menu for the sake of people who are like I was 11 months ago.


@Dark Byte
How wouldn't this be useful in pointing to addresses exactly? You've practically even listed it here yourself /viewtopic.php?t=531962&sid=d33b31d2c2786c9563f21903c90fc27e
Every bit of usefulness that had (in using AoBs to point to Addresses, not that script specifically) will be exactly the same with this, so how is it -not- useful?
There could even be an option for choosing if it's the 2nd or 3rd+ address.

Of course it won't be used for big things that absolutely NEED scripting, but only for simply things that merely need one address and simple value changes like gold or experience. That's its entire intention.
This could even effect trainers in the fact that since these simple single addresses will now have a method of being patch resistant, people can use input boxes instead of "Press 5 to up your gold by 50".
It's merely creating a simplified usage for AoBs where there otherwise isn't one. So how is it bad?
Back to top
View user's profile Send private message
Nvr22
Newbie cheater
Reputation: 0

Joined: 02 May 2012
Posts: 14

PostPosted: Tue Aug 28, 2012 2:42 am    Post subject: Reply with quote

Bump for the hopes and dreams that drive us into tomorrow..! I meant to bump it sooner but was busy again.

It's EXACTLY what Gniarf talked about but instead in a place where regular users who don't know Lua, like me or Jeff up there, can utilize it if we need to.
If it's useful as a Lua script, why wouldn't it be just as useful here?
They operate in nearly the same manner.

Are you refusing to even try it because you thought I was using values to change code?
Which wasn't the case at all, I was using code to change values so I didn't have to search for the latest address every time it was patched (which was often).

At -least- give it a shot.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 470

Joined: 09 May 2003
Posts: 25779
Location: The netherlands

PostPosted: Tue Aug 28, 2012 3:04 am    Post subject: Reply with quote

Quote:

You've practically even listed it here yourself /viewtopic.php?t=531962&sid=d33b31d2c2786c9563f21903c90fc27e

That's not used for data addresses, but code addresses, and it doesn't pick the first aobscan result either


The thing is that there is only an extremely limited use for it for data addresses that only occur one time in memory
add to that if the game starts a new map, and has a memory leak and doesn't clean up the old value+aob, you won't find the correct one (you keep finding the old one)

Anyhow, in the rare case that you need something like this just go for an auto assembler script (auto executed if needed)
Code:

label(aob1)
registersymbol(aob1)
aobscan(_aob1, 11 22 33 44)
_aob1:
aob1:

label(aob2)
registersymbol(aob2)
aobscan(_aob2, 55 66 77 88)
_aob2:
aob2:

Once activated your cheat table can use as address aob1+xxx and aob2+xxx to set specific addresses (addresses in ce don't need to be hexadecimal, they can be defined strings and formulas as well)

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Nvr22
Newbie cheater
Reputation: 0

Joined: 02 May 2012
Posts: 14

PostPosted: Tue Aug 28, 2012 7:10 am    Post subject: Reply with quote

I doubt we're even on the same page but that may just be me.
Quote:
That's not used for data addresses, but code addresses, and it doesn't pick the first aobscan result either

Yes, that's why I clarified in the sentence after with "(in using AoBs to point to Addresses, not that script specifically)".
It still points -to- data addresses (as in the "Address"es you would also get from regular scans if I'm understanding correctly, since that's where all code is stored. Then again I -don't know Lua-.) it's simply being -used- for code.
Or rather it points to code which in itself is an address.

But it's more or less this to be precise-
Code:
AOBScanResults=AOBScan("11 22 33 44 55 66","+W-C")
MyAddressList=getAddressList()
MoneyCheatEntry=addresslist_createMemoryRecord(MyAddressList)
memoryrecord_setAddress(MoneyCheatEntry,AOBScanResults[0]+20)
--some deallocation for AOBScanResults ?

Except edited to actually work, or at least I can't get it to work as it should. Not knowing Lua and all.
Quote:
The thing is that there is only an extremely limited use for it for data addresses that only occur one time in memory

That's the idea, this would make use of that specific limited usage because it currently can only be done in scripts.
The point was to avoid scripts for any of the thousands of -average- users that install this every week.
Quote:
add to that if the game starts a new map, and has a memory leak and doesn't clean up the old value+aob, you won't find the correct one (you keep finding the old one)

This has never happened to me before, and I've used AoBs almost exclusively for at least 15+ different games. Patch Resistance = Don't have to edit again months later.
Not to mention that's what wildcards (66 ?? ?? ?9 AA) are for. And the new one generally ends up being the first anyway (iiwitii), since it would have to operate like AoB not Lua anyway unless the option to choose if you wanted the 1st, 2nd, 3rd etc address in the results list was added.
Quote:
Anyhow, in the rare case that you need something like this just go for an auto assembler script (auto executed if needed)
Once activated your cheat table can use as address aob1+xxx and aob2+xxx to set specific addresses (addresses in ce don't need to be hexadecimal, they can be defined strings and formulas as well)

Are we on the same page? This doesn't seem at all like what I suggested, nor similar in use as the code I copied and posted up there ↑↑↑↑↑↑↑↑
Unless I'm doing something horribly wrong.
Back to top
View user's profile Send private message
Gniarf
Grandmaster Cheater Supreme
Reputation: 43

Joined: 12 Mar 2012
Posts: 1285

PostPosted: Tue Aug 28, 2012 7:54 pm    Post subject: Reply with quote

Nvr22 wrote:
Dark Byte wrote:
The thing is that there is only an extremely limited use for it for data addresses that only occur one time in memory

That's the idea, this would make use of that specific limited usage because it currently can only be done in scripts.
What Dark Byte is trying to say is that since the "aob pointer" approach is only used for verrrrry few games you can make a little bit of effort and learn lua (learning doesn't hurt anyway) or make an AA script for those.

Nvr22 wrote:
The point was to avoid scripts for any of the thousands of -average- users that install this every week.
If by "this" you mean a cheat table, then there is something odd:
Case A: the average user isn't capable of making a lua script, but he can find himself signatures and adapt his "aob pointers", each time he plays -> No, finding a signature is way above the average user's skill.
Case B: The average user is unable - and doesn't need to - update the signatures each time he runs the game (that one makes more sense). In this case the average user won't have to touch the script (and the signature within). Heck he won't probable even know what a script is.

If "this" meant cheat engine, well, if a hacker has reached the point where he looks at the bytes near his variable on his own, then he can easily learn lua/AA script. If I don't know lua it's because I don't use it, not because learning it is hard.

Nvr22 wrote:
Quote:
add to that if the game starts a new map, and has a memory leak and doesn't clean up the old value+aob, you won't find the correct one (you keep finding the old one)

This has never happened to me before, and I've used AoBs almost exclusively for at least 15+ different games.
Good for you, but in the standard average game your data should be reallocated when you load a save, hence make an "aob pointer" invalid. AND you don't need a memory leak to have the old signature left as is while the real data is somewhere else.


Nvr22 wrote:
Dark Byte wrote:
Anyhow, in the rare case that you need something like this just go for an auto assembler script (auto executed if needed)
Once activated your cheat table can use as address aob1+xxx and aob2+xxx to set specific addresses (addresses in ce don't need to be hexadecimal, they can be defined strings and formulas as well)

This doesn't seem at all like what I suggested, nor similar in use as the code I copied and posted up there.
And yet it is.

"scan for a signature like 11 22 33 44 55 66 and you know that your money is always stored 0x20 bytes after this signature" translates into:
1-this script:
Code:

[enable]
label(MoneyAddress)
registersymbol(MoneyAddress)
aobscan(MoneyAddressSignature, 11 22 33 44 55 66)
_MoneyAddressSignature+20:
MoneyAddress:

[disable]
unregistersymbol(MoneyAddress)

2-and "add address manually"->paste MoneyAddress in the address box (yes, as is, the words, no need to convert it to an hex number).

Then save & ship that to your users. They'll just have to tick the script and use the variable as usual, no need for them to know scripting.
Back to top
View user's profile Send private message
Nvr22
Newbie cheater
Reputation: 0

Joined: 02 May 2012
Posts: 14

PostPosted: Wed Aug 29, 2012 5:21 am    Post subject: Reply with quote

Quote:
What Dark Byte is trying to say is that since the "aob pointer" approach is only used for verrrrry few games you can make a little bit of effort and learn lua (learning doesn't hurt anyway) or make an AA script for those.

And yet there manage to be enough for this to come up at all, and for one of the average users to think it could be useful, curious how that works.

But wait! You're saying that he merely doesn't feel like making the effort to implement something that's practically already in yet wants his average user to spend that exact effort learning Lua and scripting.
...Perhaps you would be best to not put words in peoples mouths from now on, ok? Though who am I to say you're wrong, everyone's human after all.
Quote:
Case A: the average user isn't capable of making a lua script, but he can find himself signatures and adapt his "aob pointers", each time he plays -> No, finding a signature is way above the average user's skill.

Oh my, was that.. hard for you? The only logical reason you would think something like finding signatures, which is as simplistic as finding pointers or actually more so, is if you had trouble yourself. But that can't be. You? I've been lead to believe so differently, my world is shaking right now.
While we're on the topic of absurdity, mind informing me how one "installs" a table? It's baffling. In order to use it you'd have to install Cheat Engine, but since that's true then your two "cases" are entirely pointless, and that just can't be, not with you, can it? Surely you understood that much.
Quote:
If I don't know lua it's because I don't use it, not because learning it is hard.

And just when I was beginning to doubt, it's like you knew... beforehand.....
Quote:
Quote:
...15+ different games.
...in the standard average game...

Of course! How could I not have known?! Every one of those games were just the exceptions that proved the rule!
Such utter brilliance, I can hardly believe I didn't think of that.
Quote:
your data should be reallocated when you load a save, hence make an "aob pointer" invalid. AND you don't need a memory leak to have the old signature left as is while the real data is somewhere else.

This may seem incredibly foreign to you but bear with it, does the word "static" ring a bell? Or do you need to google it? It's almost as if, even when the data's relocated the signature is still the same! ...but oh no, I almost forgot again. It's an incredible rarity! In the -average- -normal- game the old signature is aaalways left behind to mess everything up when you scan again!
Quote:
And yet it is.

Mhm. I did all of that, but simply forgot I had my other scripts hotkeyed to my numpad for the game I was using, so when I was editing the script it changed the AoB I went with and I then proceeded to mistake the effects of my 5 month old script for this. Awful.
Hence why I said "Unless I'm doing something horribly wrong" which seems to be missing in your post... but... now that I look back... Quite a bit of what I said is oh so inconspicuously missing, most of which could have answered practically everything you've said until now.
And here I was wondering just how the idea could fly so high, oh there it goes again!

But maybe I'M the one who needs to re-evaluate what the "average user" is, right? After all finding a signature is in such a realm of its own! Only the most advanced of hackers could possibly pull it off!

Oh and I'll be sure to tell my non-existant users about how you read about them in my statement that made it clear I had any, I'm sure they'll be pleasantly surprised.
Now to solve the issue of how to send it...

Have fun~
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites