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 


Cheat Engine Forum Index
PostGo back to topic
jgoemat
Master Cheater
Reputation: 22
Joined: 25 Sep 2011
Posts: 252

PostPosted: Wed Jan 29, 2020 7:56 pm    Post subject: Mono goodies

1/5/2021 - I've updated this to make it easier to install and develop. The github pages site has links to 'the current release' which is the 'monohelper.lua' file to put in your autorun folder. There's also a link to a table with it as the table script if you don't want to do that, and a page with a short tutorial on using it with the game 'Raft':

http://jasongoemaat.github.io/CheatEngineMonoHelper

----- original post -----

It's a work-in-progress, but I have a table and supporting scripts to make it easier to find classes, fields, and methods for mono games.

https://github.com/JasonGoemaat/CheatEngineMonoHelper

It's not packaged up nice, the forms are in the cheat table and the table script runs other lua files in the directory. Having them separated like that made it a lot easier to work on for me...

There's a new 'Search' option in the Mono menu. The first time you use it a window will open for you to select the image (normally 'Assembly-CSharp'). It'll take a few seconds to pre-process and organize all the classes. Then the search form will open up and the Classes, Fields, and Methods lists are populated with results as you type. Double-clicking on any of them will open the corresponding class in a new Class window. That shows field offsets and types (including from base classes if you check that option in a menu) and methods with signatures. Double-clicking on a method will create a script to hook that method with comments showing the parameters and expected return type. For this method it is easy to just 'mov rax,1' and 'ret' so the navigation system thinks all systems are connected and it will let you fly to any of them:

Code:
define(hook,"CryingSuns.Navigation:NavigationSystem:IsConnectedTo")
define(bytes,55 48 8B EC 56)

[enable]

assert(hook, bytes)
alloc(newmem,$1000, hook)
{
  RCX: NavigationSystem (this)
  RDX: CryingSuns.Navigation.NavigationSystem _system

  Returns (RAX) System.Boolean
}

newmem:
  // original code
  push rbp
  mov rbp,rsp
  push rsi
  jmp hook+5

hook:
  jmp newmem

[disable]

hook:
  db bytes

dealloc(newmem)


Last edited by jgoemat on Tue Jan 05, 2021 7:39 am; edited 3 times in total
Back to top
View user's profile Send private message
Post reviews:   Approve 1
Author Review
ByTransient
Review: Approve
Post reference:
ReviewPosted: Fri Jan 15, 2021 8:35 am

Thank you.
Back to top
View user's profile Send private message
Display:  
Cheat Engine Forum Index


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites