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 


Where to Inject, Injection Method, and How to Assemble?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
Ferdilanz
Advanced Cheater
Reputation: 0

Joined: 01 Aug 2012
Posts: 50

PostPosted: Tue Dec 23, 2025 4:57 pm    Post subject: Where to Inject, Injection Method, and How to Assemble? Reply with quote

Hee-yowdy folks. I've been busy making a table for the Road to Vostok Demo on Steam. I've been able to scan for pointers for normal stats and such, but the bottomless magazine cheat I've been working on isn't going well. The pointer scanner can't find a pointer no matter how many pointermaps I throw at it.
I read somewhere that perhaps the value for the number of rounds in the magazine is not stored in an address, but rather in a register, like rax or rsi. I know a little of what I need to be doing since I've been doing this for over a decade, but I've never been good at autoassembly. Always get crashes or unintended effects. I usually inject at the "Write" instruction and try NOPing or MOVing [rcx+08],64 and then Writing but this causes really bad glitching that I can't even begin to describe; also with trying to modify rax and [rax] since that register is involved as well.
My question is, where should I inject in the picrelated? Should I just go with the write instruction like I normally would? And then, what's my most robust method for injection? Full injection, AOB injection? But finally, how am I going to force the magazine capacity to 100?
In the picrelated's Write instruction, rcx is the "value of the address required to find the pointer" if that helps.
One last thing, yes, I've tried looking for the pointer manually. The game (Godot engine) refuses to change the pointer while I have a debugger looking at it. 3 debuggers causes a CTD, by the way.



rtvd_disassembler.png
 Description:
magazine decrease function with write location labeled
 Filesize:  196.09 KB
 Viewed:  145 Time(s)

rtvd_disassembler.png


Back to top
View user's profile Send private message Send e-mail
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4719

PostPosted: Tue Dec 23, 2025 10:19 pm    Post subject: Reply with quote

Right click on that instruction `mov [rcx+08],rax` in the disassembler, select "Find out what addresses this instruction accesses", and play the game for a few seconds. You'll probably find that it accesses tons of addresses.

I've never looked into this much, but it's my understanding that games made with the godot engine run by interpreting GDScript code. Approaching such a game from assembly is a bad idea: you'd be modifying the interpreter, not the game.

There are other tools out there that are better suited to this- e.g. decompilers that specifically target games made with the godot engine.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Ferdilanz
Advanced Cheater
Reputation: 0

Joined: 01 Aug 2012
Posts: 50

PostPosted: Wed Dec 24, 2025 6:16 am    Post subject: Reply with quote

ParkourPenguin wrote:
Right click on that instruction `mov [rcx+08],rax` in the disassembler, select "Find out what addresses this instruction accesses", and play the game for a few seconds. You'll probably find that it accesses tons of addresses.

I've never looked into this much, but it's my understanding that games made with the godot engine run by interpreting GDScript code. Approaching such a game from assembly is a bad idea: you'd be modifying the interpreter, not the game.

There are other tools out there that are better suited to this- e.g. decompilers that specifically target games made with the godot engine.


I was curious about whether that instruction accessed anything that could give me a clue, and yes, I did see that it accessed a bunch of addresses with dynamically changing values.
Your response likely means I'll need to unpack the game and make a mod for a bottomless magazine. I'll put that on the backburner, lol. Thank you for your insight!
When I was pointerscanning for the other stats the demo has, I noticed none of the actual pointers I got began with "Road_to_Vostok_Demo.exe"+abc123. They instead started with "THREADSTACK01+628" and had their associated offsets. I need to get a friend to test whether they persist across machines but regardless, I found myself fortunate in that they were all 5-level offsets instead of the 15 levels Dark_Byte says modern games tend to use now. That would've been helpful to know when I was looking for the health pointer in Far Cry 3 lmao!
Anyway, have a merry holiday and thank you again.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking 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