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 


Mono data collector update
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Tue Aug 19, 2014 7:16 am    Post subject: Mono data collector update This post has 1 review(s) Reply with quote

Since for some reason some people here hardly ever check the main site, I'll post it here as well

There has been an update to the mono data collector that adds 64-bit support and can better deal with renamed mono dll's. (call mono_dissect() yourself in those cases as the menu only checks for a dll called mono.dll as a more invasive scan would probably slow ce down)

http://cheatengine.org/download/monodatacollector.rar

_________________
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
Redouane
Master Cheater
Reputation: 3

Joined: 05 Sep 2013
Posts: 363
Location: Algeria

PostPosted: Tue Aug 19, 2014 8:05 am    Post subject: Re: Mono data collector update Reply with quote

Dark Byte wrote:
Since for some reason some people here hardly ever check the main site, I'll post it here as well

There has been an update to the mono data collector that adds 64-bit support and can better deal with renamed mono dll's. (call mono_dissect() yourself in those cases as the menu only checks for a dll called mono.dll as a more invasive scan would probably slow ce down)

http://cheatengine.org/download/monodatacollector.rar


Did you update the installer as well?
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Tue Aug 19, 2014 8:33 am    Post subject: Reply with quote

no, it's just an add-on you can extract over ce for now
_________________
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
dracoflamulas
How do I cheat?
Reputation: 0

Joined: 09 Oct 2014
Posts: 1

PostPosted: Thu Oct 09, 2014 10:48 am    Post subject: Reply with quote

Would you mind going a bit into detail about what you mean by calling "mono_dissect() yourself"? I've already copy/pasted the autorun folder from within the RAR file to the original and now have a MDC, MDC32, and MDC64 .dll files in the autorun>dlls folder. So what exactly do I rename, where do I find it and/or place into which folder, and what do I rename it to?

Already updated the DotNetDataCollector before doing the MonoDataCollector. Do I add an extension of any kind to the ceserver file? It doesn't have an extension and I cannot find any similar file name.

Thank you in advance for any help.
Back to top
View user's profile Send private message
Hatschi
Master Cheater
Reputation: 2

Joined: 28 Jan 2010
Posts: 327

PostPosted: Thu Oct 09, 2014 10:58 am    Post subject: Reply with quote

If you attach CE to a mono based game a menu called mono appears. Mono_dissect is probably the LUA command to force mono dissection in case CE won't recognize it as a mono game.
Back to top
View user's profile Send private message
tfigment
Advanced Cheater
Reputation: 2

Joined: 12 Oct 2012
Posts: 93

PostPosted: Sat Jan 03, 2015 11:25 pm    Post subject: Reply with quote

I updated the monodatacollector autorun script to do some extra work. Basically, on some games the number of Classes in the assemblies is large and its hard to find so I sorted the classes in the dissect dialog.

It looks like there was an attempt at auto structure population but I couldn't figure out how to make it work for mono unlike .NET which seems to work. As a result, I added a script to export the selected mono class (and references) as a CSX file. Feel free to incorporate this into the main branch if it you think its worthy.

I noticed 2 things which may be bugs.
1. the fields type value may be the wrong thing to return currently. Its currently a pointer that cannot be used directly but what would be valuable is the address to the class that it points to. I workaround this using readInteger but suspect this is not correct behavior. I didn't test on a 64 bit mono game or with the 32-bit CE but it works fine in my testing.

2. When importing CSX files in the Data Dissector it takes a very long time if there are a lot of classes. I suspect that the problem is related to pointer child structure resolution since most of that information is lost even if the referred to structure is present in the file. Also related is that the Structures menu seems corrupted and basically becomes a thin vertical line.

I just edited a CT file directly and inserted the CSX contents and it loads very fast and the menu does not have any issues and scrolls properly.

I also had to update the frm file and since the current lua file with old dlls hangs my CE so I included the current dlls in case anyone wants this.

mediafire /download/7dxwqrua8apnpk4/monocollector-csx.rar

Edit: Updated lua script with some invalid character protection when obfuscators are used



monoscript.lua
 Description:
lua script with Structure file export. Updated.

Download
 Filename:  monoscript.lua
 Filesize:  40.88 KB
 Downloaded:  1434 Time(s)



Last edited by tfigment on Sun Jan 04, 2015 2:32 pm; edited 1 time in total
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Sun Jan 04, 2015 5:23 am    Post subject: Reply with quote

auto structure population works the same as .net but you have to activate the mono features before you can use it, and make sure there are no active breakpoints
_________________
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
tfigment
Advanced Cheater
Reputation: 2

Joined: 12 Oct 2012
Posts: 93

PostPosted: Sun Jan 04, 2015 2:36 pm    Post subject: Reply with quote

Ok. My issue apparently was related to use of the Static data as a pointer since the game I was using uses that as the starting point for most useful pointers. Anyway still a great feature.

It does not seem to work recursively when expanding pointers or handle static fields correctly when dynamically inspecting but overall works well. I'll take a look into extending that for myself and share if it is usable.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Sun Jan 04, 2015 2:38 pm    Post subject: Reply with quote

you may also be interested in this topic: http://forum.cheatengine.org/viewtopic.php?t=577110
_________________
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
tfigment
Advanced Cheater
Reputation: 2

Joined: 12 Oct 2012
Posts: 93

PostPosted: Mon Jan 05, 2015 2:04 am    Post subject: Reply with quote

thanks. I posted some issues I had with static vtables and AA there.

I added more changes to the monocollector.

This version will push the changes directly into the structures directly from a right mouse click on the classname in the dissector. Also fixed the name sanitizer since my understanding of lua is rough and didn't realize the regular expression was not working as expected.

Also added some quick methods for adding the static fields to the table memory records for fast inspection. Makes things much easier to find interesting stuff in an adhoc session.


As an aside there is a bug in getStructureCount it should push the integer on the lua stack before returning. The new structure code does not work without this fix.
Code:

function getStructureCount(L: PLua_State): integer; cdecl;
begin
  result:=1;
  lua_pushinteger(L, DissectedStructs.Count);
end;


mediafire /download/dcclcz9bswzs5ra/monocollector-csx-v2.rar
Back to top
View user's profile Send private message
tfigment
Advanced Cheater
Reputation: 2

Joined: 12 Oct 2012
Posts: 93

PostPosted: Sun Jan 25, 2015 2:07 pm    Post subject: Reply with quote

Next update I have for monocollector fixes more issues I had with regular expression name filtering. Added 2 functions mono_class_from_mono_type and mono_class_get_element_class to better inspect the field types and for Arrays get the underlying element type. I then updated the mono structure generator to create arrays and some generics automatically. The recursive structures are now mostly local to avoid cluttering the global namespace.

More questionably, I added some Autoassembly scripts for generating records to fetch static members for easier table development. I'll understand if this part doesn't make it into the main branch. I only did 80x86 assembly since I could not get x64 assembly to work correctly as pointers were being generated as 32-bit assembly.

Anyway I found this useful so am sharing it back.

Source Patch:
mediafire download/y8286eebudk7qza/ce-monocollector-figment-v3.patch

Binaries: (Requires CE 6.5 when available for getStructureCount fix)
mediafire download/rx4lyrfqux4m6ax/monocollector-figment-v3.7z
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Sun Jan 25, 2015 8:38 pm    Post subject: Reply with quote

thank you
_________________
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
tfigment
Advanced Cheater
Reputation: 2

Joined: 12 Oct 2012
Posts: 93

PostPosted: Mon Feb 16, 2015 2:36 am    Post subject: Reply with quote

Made some more edits of my collector version and sharing back.

I exposed mono_class_findMethodByDesc() which is a more friendly search for method with ability to distinguish overloaded methods by arguments.

Exposed a means of loading arbitrary assemblies via mono_loadAssemblyFromFile().

Added mono_invoke_method() which allows for execution of any method and including marshaling arguments back and forth.


Source Patch:
mediafire download/88vhzvds7707ger/ce-monocollector-figment-v4.patch

Binaries: (Requires CE 6.5 when available for getStructureCount fix)
mediafire download/qrjztq53fdov53k/monocollector-figment-v4.rar
Back to top
View user's profile Send private message
tfigment
Advanced Cheater
Reputation: 2

Joined: 12 Oct 2012
Posts: 93

PostPosted: Sun Mar 29, 2015 2:52 pm    Post subject: Reply with quote

I found and fix a bug in the invoke method function when returning a pointer it was returning the first 4 bytes of the contents of the pointer rather than the pointer. Also added some null domain protections which will default to root domain if no domain is given.

Binaries: http://www.mediafire.com/download/yh6d41j4dbu9lhl/monocollector-figment-v5.rar

Source Patch: http://www.mediafire.com/download/fdgxa3s3ectrq9w/ce-monocollector-figment-v5.patch

Wondering if there is a more appropriate way to request a repository update and whether you are willing to take these changes for next release of CE.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 457

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

PostPosted: Sun Mar 29, 2015 3:29 pm    Post subject: Reply with quote

thanks, i'll check it out and do some tests

i've been a bit busy with other stuff(work and personal stuff) , but i have this topic bookmarked and will apply it when i get to that part of ce (before next version)

_________________
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
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
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