After mono disscection we have reflected .net names for addresses.
And we can do some operation with names, for example aobscanregion(pointer1, Controller:Update, Controller:Update+1000, 0F ** 0F)
But due to .net structure we may get a huge string Controller+<Coroutine>d__42:MoveNext
is it possible to use this generic named adrres some how in variables or with aobscanregion?
ofc, this is not working aobscanregion(pointer1, Controller+<Coroutine>d__42:MoveNext, Controller+<Coroutine>d__42:MoveNext+1000, 0F ** 0F)
I don't think so. Your best bet is either to use a normal AOBScan, or to make a LUA script which gets all classes and does search for the name you input. Which is pretty much what I do.
I don't think so. Your best bet is either to use a normal AOBScan, or to make a LUA script which gets all classes and does search for the name you input. Which is pretty much what I do.
Attempting to do local Controller_ClassID = mono_findClass('Assembly-CSharp', 'Controller+<Coroutine>d__42')
is also nil
what the heck? why?
You should get the last monoscript, which works with those. Just copy/paste the "mono_image_findClassSlow" function into a main script that is enabled before the rest do, and then use "mono_findClass" the same way.
Last monoscript: [Link]
I've used github repo to investigate how it works...
There is no simple methrods, so i've done as enum images -> select image by assemblyid -> enum classes
due to tracing I found that there is no combination as Controller+<Coroutine>d__42
but with print(string.format("%x : %s:%s", classes[i].class, classes[i].namespace, classes[i].classname))
got 22c5af5d5a8 : :Controller
22d6dd8df50 : :<Coroutine>d__42
that means
if I use local Controller_ClassID = mono_findClass('Assembly-CSharp', '<Coroutine>d__42')
and just <Coroutine>d__42:MoveNext
in memory view or in a aobscan
and the final form local Coroutine_MethodID = mono_findMethod('Assembly-CSharp', '<Coroutine>d__42', 'MoveNext')