Cheat Engine Forum Index
Cheat EngineThe Official Site of Cheat Engine
| View previous topic :: View next topic |
| Author |
Message |
Csimbi I post too much Reputation: 97
Joined: 14 Jul 2007 Posts: 3326
|
Post Posted: Sun Oct 05, 2025 3:14 am Post subject: Speeding up Unity region scans: iterators
Reply with quote
Hello peeps,
I am seeking advise on speeding up region scans for iterators based on the Unity engine.
So, here's an AOB scan, which I use to scan specific part for a Unity - with the intention to speed up scans:
Code: aobscanregion(aobMyScan,K.G:GC+20,K.G:GC+C0,41 FF D3 48 8B)
This scan works and it's lightning fast, works as intended.
Here's another:
Code: aobscanregion(aobMyScan2,K.E.P.S+<SR>d__58:MoveNext+100,K.E.P.S+<SR>d__58:MoveNext+200,49 BB)
This scan is slow as if I was scanning through the entire memory, seemingly ignoring the start/end addresses.
I suspect CE has some problem resolving the construct.
I tried using quotes, hoping it would help:
Code: aobscanregion(aobMyScan2,"K.E.P.S+<SR>d__58:MoveNext"+100,"K.E.P.S+<SR>d__58:MoveNext"+200,49 BB)
No luck, I got the same low speed.
Are there any techniques I could use to speed up scans for these type constructs?
Thank you!
PS. This is CE 7.6.0.8629.
|
| Back to top |
|
Dark Byte Site Admin Reputation: 471
Joined: 09 May 2003 Posts: 25816 Location: The netherlands
|
lookup those symbol addresses in the background and store those as an easy symbol and use the simple symbol as range for aobscan
_________________
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 |
|
Csimbi I post too much Reputation: 97
Joined: 14 Jul 2007 Posts: 3326
|
Okay. How would I go on about that?
Google did not really get me an example.
This is what the decompiled source code looks like:
Code:
public class SM : IEnumerable<SI>, IEnumerable
{
...
public IEnumerator<object> SR(SI sI, bool fA = false)
{
...
}
...
}
How would I get from this to:
Code: K.E.P.S+<SR>d__58:MoveNext
Would it be a simple matter of
Code: findMethodAddrBySignature('Assembly-CSharp','SM','SR','SI,bool$',false)
Nope.
These both return zero.
Code: print('--')
print(tohex(findMethodAddrBySignature('Assembly-CSharp','SM','SR','?',true)))
print('...')
print(tohex(findMethodAddrBySignature('Assembly-CSharp','SM','SR','SI,bool$',true)))
Besides, it would not be the iterator's MoveNext...
Zeroes, too
Code: print('--')
print(tohex(findMethodAddrBySignature('Assembly-CSharp','K.E.P.SM+<SR>d__58','MoveNext','?',true)))
print('...')
print(tohex(findMethodAddrBySignature('Assembly-CSharp','K.E.P.SM+<SR>d__58','MoveNext','SI,bool$',true)))
|
| Back to top |
|
Dark Byte Site Admin Reputation: 471
Joined: 09 May 2003 Posts: 25816 Location: The netherlands
|
have you tried
Code:
<SR>d__58:MoveNext
or
Code:
d__58:MoveNext
_________________
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 |
|
Csimbi I post too much Reputation: 97
Joined: 14 Jul 2007 Posts: 3326
|
These all return zeroes:
Code: print('--') -- test to show/print all signature of a given function name
print(tohex(findMethodAddrBySignature('Assembly-CSharp','K.E.P.SM','<SR>d__58:MoveNext','?',true)))
print('...')
print(tohex(findMethodAddrBySignature('Assembly-CSharp','K.E.P.SM','<SR>d__58:MoveNext','SaveInfo,bool$',true)))
print('--') -- test to show/print all signature of a given function name
print(tohex(findMethodAddrBySignature('Assembly-CSharp','K.E.P.SM','d__58:MoveNext','?',true)))
print('...')
print(tohex(findMethodAddrBySignature('Assembly-CSharp','K.E.P.SM','d__58:MoveNext','SaveInfo,bool$',true)))
print('--') -- test to show/print all signature of a given function name
print(tohex(findMethodAddrBySignature('Assembly-CSharp','K.E.P.SM+<SR>','d__58:MoveNext','?',true)))
print('...')
print(tohex(findMethodAddrBySignature('Assembly-CSharp','K.E.P.SM+<SR>','d__58:MoveNext','SaveInfo,bool$',true)))
|
| Back to top |
|
Dark Byte Site Admin Reputation: 471
Joined: 09 May 2003 Posts: 25816 Location: The netherlands
|
I don't know what your findMethodAddrBySignature is but use getAddress while mono is enabled
the K.E.P.S part just means that the class d__58 has access to the fields of the K.E.P.S class instance it belongs to, but the class name is d__58 or <SR>d__58 and methodname is MoveNext
_________________
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 |
|
Csimbi I post too much Reputation: 97
Joined: 14 Jul 2007 Posts: 3326
|
panraven's excellent findMethodAddrBySignature - you helped my bugfix it last year Wink
Could not attach it due to file size limit.
|
| Back to top |
|
C1aref5 Cheater Reputation: 0
Joined: 20 Feb 2025 Posts: 29
|
I致e run into the same thing with iterator-based methods. Anything that looks like <Something>d__ causes CE to take ages because it痴 parsing through the module symbols each time.
|
| Back to top |
|
|
|
Page 1 of 1
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