DudeFromTamriel wrote: ↑Sat Mar 09, 2024 12:26 am
Trying to learn how to update the achievements and console commands tables, but still not there, yet. Not having updated tables been a good impetus to start learning this stuff for myself. Been using the Cheat Engine documentation + watching some CE Youtube Playlists (akin to the playlist below). If anyone has any understanding of how the scripts, as they were, were working, I'd love to hear whatever you're able to share!
The "quick and dirty" way to update the console command script from 3.10.4 to 3.11.1:
Roll back to 3.10.4, do an aob search for the EnableConsole2 AOB in the table (44 38 A9 D3 00 00 00)
see the code (and copy it somewhere for reference if your memory is as bad as mine):
Code: Select all
stellaris.exe+20E868 - 45 38 AE 80010000 - cmp [r14+00000180],r13b
stellaris.exe+20E86F - 75 1C - jne stellaris.exe+20E88D
stellaris.exe+20E871 - 48 8B 05 B0A77902 - mov rax,[stellaris.exe+29A9028] { (1A8A169B650) }
stellaris.exe+20E878 - 48 8B 88 18090000 - mov rcx,[rax+00000918]
stellaris.exe+20E87F - 44 38 A9 D3000000 - cmp [rcx+000000D3],r13b <-- this is where the AOB hits
stellaris.exe+20E886 - 75 05 - jne stellaris.exe+20E88D
stellaris.exe+20E888 - 40 32 FF - xor dil,dil
stellaris.exe+20E88B - EB 03 - jmp stellaris.exe+20E890
Remove the rollback, get the latest version, search for some bits and hope it is somewhat similar:
48 8b 05 ?? ?? ?? ?? 48 8b 88 ?? ?? ?? ?? 44 38
This checks for the mov, mov, cmp command combo. We get 4 hits, which is little enough to do a quick visual check.
First hit seems to be the one we want (so I didn't check the other ones):
Code: Select all
stellaris.exe+1C9121 - 48 8B 05 E0717402 - mov rax,[stellaris.exe+2910308] { (264624FF7B0) }
stellaris.exe+1C9128 - 48 8B 88 18090000 - mov rcx,[rax+00000918]
stellaris.exe+1C912F - 44 38 A1 DF000000 - cmp [rcx+000000DF],r12b <-- probably this we want
stellaris.exe+1C9136 - 75 05 - jne stellaris.exe+1C913D
stellaris.exe+1C9138 - 40 32 FF - xor dil,dil
stellaris.exe+1C913B - EB 03 - jmp stellaris.exe+1C9140
Check if the AOB is unique enough for that line: 44 38 A1 DF 00 00 00, and it seems to be. Update the EnableConsole2 AOB to this:
aobscanmodule(EnableConsole2,stellaris.exe,44 38 A1 DF 00 00 00) // should be unique
Also update the disable bit with the new byte array:
EnableConsole2:
db 44 38 A1 DF 00 00 00
Load the table, attach it to an ironman game, enable the script (and disable, and enable again, to check that you can toggle it), and try to run a console command.