View previous topic :: View next topic |
Author |
Message |
Meiyoh Master Cheater
Reputation: 1
Joined: 14 Mar 2015 Posts: 402
|
Posted: Sun Mar 12, 2017 12:01 pm Post subject: How to DEALLOCATE Aobscan address? |
|
|
Hello.
Is it a bug or something but I want to use an AOBSCAN for a static address. The reason is this address is being used by various stuff. I want to separate it. So I want to make say Two options in Cheat Engine table which When an AOBScan is run - find the SAME address. But I want so I can disable on (Untick it) and thus make it so it's Result address goes ?? and nothing can freeze the program/game when I run with INCORRECT value being put.
How to make so when I disable and AOBScan script the found address goes "??"
Thanks
_________________
I am the forgotten one the dead one. |
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sun Mar 12, 2017 12:55 pm Post subject: |
|
|
To clarify, you have an instruction that is static, that accesses many addresses -- one of which, you wish to manipulate? You are able to find that address with an AOBscan?
I really do not understand what you are saying/wanting. Can you explain it better, please?
|
|
Back to top |
|
 |
Meiyoh Master Cheater
Reputation: 1
Joined: 14 Mar 2015 Posts: 402
|
Posted: Sun Mar 12, 2017 1:05 pm Post subject: |
|
|
I locate say A moves Address.
Each character uses this SAME address - static.
I want to make some moves work - add some custom combos by manipulating the address's value. However if I put a wrong value - Animation/attack id that works with one character to another = CRASH.
So I have assigned hotkeys to those options. They are GLOBAL for each character. I want so players when use my table they toggle ONLY 1 Character Moves Mod option thus not freezing the game when pressing hotkeys. Eg hotkeys are set with values specific to the character the option is named
Example "Bobby Moves Mod". "Johnny Moves Mod"
all those options use the SAME hotkeys and ADDRESS.
But if both are activated GAME will freeze.
So how can I make when only 1 is ticked the other is ?? so game will not crash.
This is why I use AOBScan because each char has specific animation IDs wroten in a memory Which I use to "find" the static address. The purpose of me using AOBscan is to prevent crash. So it won't find the moves address if you do not play as the specific character. How Can I make so the
Address (JohhnyMovesMod+0) goes "??" when it's parrent AOBScan is UNTICKED.
thank you.
_________________
I am the forgotten one the dead one. |
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sun Mar 12, 2017 1:17 pm Post subject: |
|
|
Do you have a way of automatically differentiating which character is being used, in real time? If so, then that would be the obvious way to avoid any issues, as you can use that for your compare to activate/nullify any segments of code. If you have no way of differentiating characters automatically, then you will need to set up different hotkeys for each character's move set. For example:
Bobby move set hotkeys:
Shift+1
Shift+2
Shift+3
Johnny move set hotkeys:
Ctrl+1
Ctrl+2
Ctrl+3
|
|
Back to top |
|
 |
Meiyoh Master Cheater
Reputation: 1
Joined: 14 Mar 2015 Posts: 402
|
Posted: Sun Mar 12, 2017 1:19 pm Post subject: |
|
|
++METHOS wrote: | Do you have a way of automatically differentiating which character is being used, in real time? If so, then that would be the obvious way to avoid any issues, as you can use that for your compare to activate/nullify any segments of code. If you have no way of differentiating characters automatically, then you will need to set up different hotkeys for each character's move set. For example:
Bobby move set hotkeys:
Shift+1
Shift+2
Shift+3
Johnny move set hotkeys:
Ctrl+1
Ctrl+2
Ctrl+3 |
Ok. Lets say I have addresses that have specific values when playing as specific Char.
How can I make so Cheat Engine asks first if the values MATCH and then runs the hotkeys?
I don't want to use KEYBOARD I use pad. It's a beat them up game.
Can you write me an example script.
_________________
I am the forgotten one the dead one. |
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sun Mar 12, 2017 1:31 pm Post subject: |
|
|
1. You do not want to use the values that you are wanting to manipulate for your compare without have countermeasures in place to return those values to default once you are finished with them.
2. CE supports hotkey integration for controllers, so hotkeys can be assigned via controller buttons now.
3. Writing an example script will do little good unless you have determined that you can differentiate characters in some way.
If you have not already done so, I would recommend studying the last step of the CE tutorial covering data structure dissection. Additional strategies for code segregation:
++METHOS wrote: | - You can use a pointer address for your filter, inside of your script, for the value that you are trying to manipulate.
- You can use pointer trees inside of the data structure to find something viable.
- You can shift the data structure (+ or -) and/or expand its size to find something useful.
- You can use the structure spider to find workable strings and/or for comparative analysis.
- You can check the register values by attaching the debugger or setting a breakpoint to see if something can be used for your filter.
- You can check to see if there are any instructions that are exclusive to the address/value that you are trying to manipulate and store the address for your filter by creating a second injection point.
- You can check to see if there are any instructions that are exclusive to any other address/value inside of the data structure for the address/value that you are trying to manipulate and store the address for your filter by creating a second injection point.
- You can analyze assembly code to see if an identifier is being checked or assigned somewhere.
- Et al.
|
|
|
Back to top |
|
 |
Meiyoh Master Cheater
Reputation: 1
Joined: 14 Mar 2015 Posts: 402
|
Posted: Sun Mar 12, 2017 1:50 pm Post subject: |
|
|
Ok simpler stuff.
How can I make aobscan FOUND address "begone" when I disable the script that finds it?
Example The found address that uses symbol "JohhnyMoves" goes ?? when
script is disabled.
_________________
I am the forgotten one the dead one. |
|
Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Sun Mar 12, 2017 2:01 pm Post subject: |
|
|
I think you are approaching this all wrong. Nonetheless, if you have a script that finds an address, and you store that address using a custom symbol (not globally allocated, and with unregistersymbol in disable section), then disabling that script should nullify its value.
So...
Code: | label(address)
registersymbol(address)
newmem:
push edi
lea edi,[register+offset] //address that you want to store
mov [address],edi
pop edi
originalcode:
//code
address:
dd 0
//stuff
[DISABLE]
//stuff
unregistersymbol(address) |
Once the script is activated, manually add an address to your table, click on the pointer checkbox and put address in the bottom address/text field.
|
|
Back to top |
|
 |
Meiyoh Master Cheater
Reputation: 1
Joined: 14 Mar 2015 Posts: 402
|
Posted: Sun Mar 12, 2017 2:14 pm Post subject: |
|
|
Quote: |
[ENABLE]
aobscanregion(JohnyMoves,C9000000,CF000000,?? ?? ?? ?? 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 89 88 08 3D 01)
registersymbol(JohnyMoves)
label(_JohnyMoves)
JohnyMoves:
_JohnyMoves:
[DISABLE]
unregistersymbol(JohnyMoves) |
But when I untick the script the address (JohnyMoves+0) doesnt get its value
nullified. What am I wrong here?
_________________
I am the forgotten one the dead one. |
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25785 Location: The netherlands
|
Posted: Sun Mar 12, 2017 3:55 pm Post subject: |
|
|
it won't get nullified, it just becomes invalid, so if you add a new address with the name JohnyMoves it will be an invalid entry
existing entries will remaim their last known good address
_________________
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 |
|
 |
Meiyoh Master Cheater
Reputation: 1
Joined: 14 Mar 2015 Posts: 402
|
Posted: Sun Mar 12, 2017 3:57 pm Post subject: |
|
|
[quote:91b261542b="Dark Byte"]it won't get nullified, it just becomes invalid, so if you add a new address with the name JohnyMoves it will be an invalid entry
existing entries will remaim their last known good address[/quote:91b261542b]
Yes... I see this even after program reload the table remembers the STATIC
address and that's the biggest issue here.
Perphaps a pointer like thing is better. Not an AOB .
Thank you BOTH so far!
_________________
I am the forgotten one the dead one. |
|
Back to top |
|
 |
panraven Grandmaster Cheater
Reputation: 62
Joined: 01 Oct 2008 Posts: 958
|
Posted: Sun Mar 12, 2017 4:06 pm Post subject: |
|
|
The problem is it allow edit a previous address, but now 'begone'.
The behavior that when the symbol 'begone' (eg. by unregistersymbol), but still able to write/edit the symbol address value is strange, ie. the symbol not existed in user symbol list.
I'm not sure, the CE used to be not behave like this.
To test, try make a address symbol having zero value at its address, like
this in AA: (this use ce 6.6 feature that offset field accept symbol, (and also lua expression))
Code: |
globalalloc(pZero,16)
|
Then set a memory record with address:
Pointer Type-
base : pZero,
offset1 : your symbol address.
Now, it should show ?? when the symbol 'begone', as expected.
It seems if the base address was readable then became not readable, the calculated address doesn't update (to the unreadable/non-existed one, so that the value dispay ??).
Now with pZero, pZero as base address, it will be readable as long as the symbol is not unregistered, so it keep update the calculated result address, and if final result is not readable or symbol not exist, it show ?? as value.
bye~
_________________
- Retarded. |
|
Back to top |
|
 |
Meiyoh Master Cheater
Reputation: 1
Joined: 14 Mar 2015 Posts: 402
|
Posted: Sun Mar 12, 2017 4:26 pm Post subject: |
|
|
panraven wrote: | The problem is it allow edit a previous address, but now 'begone'.
The behavior that when the symbol 'begone' (eg. by unregistersymbol), but still able to write/edit the symbol address value is strange, ie. the symbol not existed in user symbol list.
I'm not sure, the CE used to be not behave like this.
To test, try make a address symbol having zero value at its address, like
this in AA: (this use ce 6.6 feature that offset field accept symbol, (and also lua expression))
Code: |
globalalloc(pZero,16)
|
Then set a memory record with address:
Pointer Type-
base : pZero,
offset1 : your symbol address.
Now, it should show ?? when the symbol 'begone', as expected.
It seems if the base address was readable then became not readable, the calculated address doesn't update (to the unreadable/non-existed one, so that the value dispay ??).
Now with pZero, pZero as base address, it will be readable as long as the symbol is not unregistered, so it keep update the calculated result address, and if final result is not readable or symbol not exist, it show ?? as value.
bye~ |
So my AOB Scan find an address C147DEF6 as a result.
What exactly I shall do.
?
_________________
I am the forgotten one the dead one. |
|
Back to top |
|
 |
panraven Grandmaster Cheater
Reputation: 62
Joined: 01 Oct 2008 Posts: 958
|
Posted: Sun Mar 12, 2017 4:36 pm Post subject: |
|
|
Suppose your AA like this:
Code: |
globalalloc(pZero,16) // add somewhere in AA for use in memory record
[ENABLE]
aobscan(mytarget, ...)
registersymbol(mytarget)
[DISABLE]
unregistersymbol(mytarget)
|
Make a memory record just like yours but make to check the box [] Pointer, move the original base address (mytarget) to 1st offset field, then set base address to pZero.
If it is already a Pointer type address, move also other offsets one level up.
Hope it work~
Description: |
|
Filesize: |
148.51 KB |
Viewed: |
9975 Time(s) |

|
_________________
- Retarded.
Last edited by panraven on Sun Mar 12, 2017 6:16 pm; edited 1 time in total |
|
Back to top |
|
 |
Meiyoh Master Cheater
Reputation: 1
Joined: 14 Mar 2015 Posts: 402
|
Posted: Sun Mar 12, 2017 4:56 pm Post subject: |
|
|
panraven wrote: | Suppose your AA like this:
Code: |
globalalloc(pZero,16) // add somewhere in AA for use in memory record
[ENABLE]
aobscan(mytarget, ...)
registersymbol(mytarget)
[DISABLE]
unregistersymbol(mytarget)
|
Make a memory record just like yours but make to check the box [] Pointer, move the original base address (mytarget) to 1st offset field, then set base address to pZero.
If it is already a Pointer type address, move also other offsets one level up.
Hope it work~ |
Thank you but it goes in a wrong address far far away from my resulted address.
It does disable the address on script disable but the address is wrong.
The address is static btw so I need not use pointers for it - I mean I only Add the registeredsymbol of the address found and the Pzero part in the Pointer.
Can you show me a screenshot or something. I did everything but it gives me a wrong address.
It gives -FFFFFFFFXXXXXXXX- where the XXXXXXXX is the correct address?
_________________
I am the forgotten one the dead one. |
|
Back to top |
|
 |
|