jgoemat Master Cheater Reputation: 22 Joined: 25 Sep 2011 Posts: 252
|
Posted: 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
|
|