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 


AA tip

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Mr.realdoge
Advanced Cheater
Reputation: 1

Joined: 01 Aug 2016
Posts: 56
Location: Lordran

PostPosted: Wed Jun 07, 2017 3:33 am    Post subject: AA tip Reply with quote

Is there anyway to do this:
Code:
aobscan(findit,ABCDEFABCDEF)

and if the above should not work then this:
Code:
aobscan(findit,ABCDEFABCDABCD)

and if the above does not work then this:
Code:
aobscan(findit,ABCDEFABCDABEE)

and so on

_________________
( ͡° ͜ʖ ͡°) its always christmas
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

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

PostPosted: Wed Jun 07, 2017 4:02 am    Post subject: Reply with quote

yes and no. in pure AA, no. if the aobscan doesn't find it the script will terminate.

but with Lua you can do 3 such scans, and then pass that result to the auto assembler.

But why not use a longer aob with wildcards ?

e.g aobscan(findit,ABCDEFABCD****ABC*EF)

_________________
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
Mr.realdoge
Advanced Cheater
Reputation: 1

Joined: 01 Aug 2016
Posts: 56
Location: Lordran

PostPosted: Wed Jun 07, 2017 4:09 am    Post subject: Reply with quote

Actually my problem is that everytime you go into a different area of the game the aob changes , so for different areas of the game i have to use different aobscans.Any ideas what I should do?

P.S.:The aob changes in such a way that my constant bytes become dynamic & my some of my wildcards become constants.
EG:
aob for area 1: AB CD EF ?? ?? ??
aob for area 2: ?? ?? ?? ?? AB CD

_________________
( ͡° ͜ʖ ͡°) its always christmas
Back to top
View user's profile Send private message
Csimbi
I post too much
Reputation: 94

Joined: 14 Jul 2007
Posts: 3110

PostPosted: Wed Jun 07, 2017 4:22 am    Post subject: Reply with quote

Sounds like each map/level/area has its own code. Could be the code generated by some script.

Anyway, try making your AOB search much longer and longer.
At some point, you will surely find a pattern.
You can also try using offsets if need be.

If all that fails and you still want to stick to AA, then just create multiple scripts.
Then, try enabling all. You will find that only the one(s) with the successful AOB scans will be enabled.
Back to top
View user's profile Send private message
Mr.realdoge
Advanced Cheater
Reputation: 1

Joined: 01 Aug 2016
Posts: 56
Location: Lordran

PostPosted: Wed Jun 07, 2017 4:30 am    Post subject: Reply with quote

My actuall aob for one map is already extremly long
aob for 1 map:
Code:
aobscan(find,FF FF FF FF FF FF FF FF ?? ?? ?? ?? ?B ?? ?? 0? 00 00 00 00 ?? ?? ?? ?? ?? ?? ?? 0? ?B ?? ?? 0? 00 00 00 00 ?? ?? ?? ?F 00 00 00 00 00 00 00 00 ?? ?? ?? 4? ?? ?? ?? ?? ?? ?? ?? C1 00 00 80 3F ?? ?? ?? 4? ?? ?? ?? ?? ?? ?? ?? C1 00 00 80 3F 00 00 01 00 01 ?? ?? ?? ?? ?? ?? 10 ?? ?? ?? 10 ?? ?? ?? 10 ?? ?? ?? ?? ?? ?? ?? 0?)


(I'm hoping for some lua magic(from you guys,because idk how to))

_________________
( ͡° ͜ʖ ͡°) its always christmas
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 140

Joined: 06 Jul 2014
Posts: 4299

PostPosted: Wed Jun 07, 2017 9:16 am    Post subject: Reply with quote

Scanning for memory that's being written to usually isn't a good idea for this reason. Look at what code is writing to that address and hook it to get a reference to the address you want.

If you don't want to do that...
Code:
[ENABLE]
{$lua}
local patterns = {'01 23 45 67 FE DC BA 98', -- first pattern to try to find
                  'F0 1E D2 3C B4 5A 96 78', -- second ^
                  -- etc...
                  }
for _,v in ipairs(patterns) do
  local res = AOBScan(v, '+W-C', fsmNotAligned, '') -- change alignment if possible to speed up scans
  if res then
    assert(res.Count == 1, 'Multiple results found.')

    local addr = res[0]
    res.destroy()
    return string.format('define(findit,%s)', addr)
  end
end
error('No results found.')
{$asm}
//...

Note that this may take an extraordinarily long time to complete the scans under the right circumstances. Make the alignment params passed to AOBScan as restrictive as possible to speed up the scans significantly. You could also optimize it in other ways depending on the signatures.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
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
Page 1 of 1

 
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