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 


.NET/mono type detection for AA?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
jgoemat
Master Cheater
Reputation: 23

Joined: 25 Sep 2011
Posts: 264

PostPosted: Fri Jul 04, 2014 7:31 pm    Post subject: .NET/mono type detection for AA? Reply with quote

I love the new .NET/mono features in 6.4 and was wondering if there is some way to detect an object's type in AA. I haven't had time to look through the source and try to understand how DotNetDataCollector works, but the pointer to the vtable at offset 0 seems to define what type an object is. I would love to be able to use some symbol in AA to get that vtable value. For example:

Code:
playerType:
  dd RogueLegacy.EnemyObj_Platform_vtable

code:
  push eax
  mov eax,[esi]
  cmp eax,[platformType]
  jne skip
  // do something for platforms only here
skip:
  pop eax
  cmp [esi+00000118],0 // original code
  jmp return


Could I maybe use LUA to set those symbols? I see the monoscript.lua as a mono_findReferencesToObject function that seems to get the vtable value, is that what I need to use?

Something I just noticed that would be handy would be to have a vtable type for the data dissector or just display the type name for offset 0's vtable if structure has it selected that would show the class name, and a column in the watch windows that could be enabled to show the same. That's really pie-in-the-sky I know.

Thanks for the great new features!
Back to top
View user's profile Send private message
justa_dude
Grandmaster Cheater
Reputation: 23

Joined: 29 Jun 2010
Posts: 891

PostPosted: Fri Jul 04, 2014 9:02 pm    Post subject: Reply with quote

I haven't tried it myself, but you could probably call system.type.gettype yourself to get a type from a name and then interrogate further w/ the type members. To go the other way, and get a string from a type, you'd probably use object.getype passing your object's address as the implied this argument.
_________________
A nagy kapu mellett, mindig van egy kis kapu.
----------------------
Come on...
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