|
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
Romans96 How do I cheat? Reputation: 0
Joined: 21 May 2018 Posts: 7
|
Posted: Mon Sep 17, 2018 8:55 am Post subject: Question about Game Injection |
|
|
Hello! I'm starting in this days to learn/try the Game Injections.
I watched some tables script, and tutorials, from here, from the CE Wiki, from Videos, and trying with the CE Tutorial it works.
But i have some and some questions....
I tried in a singleplayer game (Subanautica), but it's so difficult finding vvariables, and when i create the injection with the right address, it crashes at the use. I founded a functional table, but whatching the script, for oxygen for exemple, it has very low commands, at enable and Disbale only Survival: oxygen+s1+... and db 18 or 20. I also see other table and some of them are so different from all the tutorial/exemple (sometime also completely).
SO i'm asking for more advice/help!
Thank you so much
|
|
Back to top |
|
|
FreeER Grandmaster Cheater Supreme Reputation: 53
Joined: 09 Aug 2013 Posts: 1091
|
Posted: Mon Sep 17, 2018 4:53 pm Post subject: |
|
|
Show specific examples (script and original code) and we can explain what's going on.... pretty much no one is going to sit around and list every possible variation of what you can do in CE from beginner to expert.
not sure what "oxygen+s1+..." is, maybe just adding offsets but I'm not sure if CE supports more than one offset most of the time, "db 18 or 20" - "db" is short for "define byte" and tells CE to write the following values as single bytes (as opposed to dw which is for define word (2 bytes), dd for dword (4), and dq for qword/quadword ().
_________________
|
|
Back to top |
|
|
Romans96 How do I cheat? Reputation: 0
Joined: 21 May 2018 Posts: 7
|
Posted: Tue Sep 18, 2018 7:55 am Post subject: |
|
|
FreeER wrote: | Show specific examples (script and original code) and we can explain what's going on.... pretty much no one is going to sit around and list every possible variation of what you can do in CE from beginner to expert.
not sure what "oxygen+s1+..." is, maybe just adding offsets but I'm not sure if CE supports more than one offset most of the time, "db 18 or 20" - "db" is short for "define byte" and tells CE to write the following values as single bytes (as opposed to dw which is for define word (2 bytes), dd for dword (4), and dq for qword/quadword (). |
Oh yes sorry i forgot them
so the CT that i saw (and works) have this script for Inf Oxygen (for exemple
Code: |
[ENABLE]
Oxygen:RemoveOxygen+51+4:
db 18
//F3 0F 10 4E 18
//movss xmm1,[rsi+18]
[DISABLE]
Oxygen:RemoveOxygen+51+4:
db 20
//F3 0F 10 4E 20
//movss xmm1,[rsi+20]
|
so i tried following the code injection tutorials and after founding the address of oxygen (and i was sure that it was correctly).
With the address founded: 20176F12815 - 89 7E 70 - mov [rsi+70],edi
This is the default:
Code: |
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,20176F12815)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [rsi+70],edi
mov [rsi+74],r15d
exit:
jmp returnhere
20176F12815:
jmp newmem
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
20176F12815:
mov [rsi+70],edi
mov [rsi+74],r15d
//Alt: db 89 7E 70 44 89 7E 74
|
the i tried this:
Code: |
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,20176F12815)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [rsi+70],#500
exit:
jmp returnhere
20176F12815:
jmp newmem
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
20176F12815:
mov [rsi+70],edi
mov [rsi+74],r15d
//Alt: db 89 7E 70 44 89 7E 74
|
and it doesn not change nothing
or this:
Code: |
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048,20176F12815)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [rsi+70],#500
mov [rsi+74],#500
exit:
jmp returnhere
20176F12815:
jmp newmem
nop
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
20176F12815:
mov [rsi+70],edi
mov [rsi+74],r15d
//Alt: db 89 7E 70 44 89 7E 74
|
and the game crashes.
What i'm doing bad? For the CE tutorial in the same way, for an int variable it works
|
|
Back to top |
|
|
FreeER Grandmaster Cheater Supreme Reputation: 53
Joined: 09 Aug 2013 Posts: 1091
|
Posted: Tue Sep 18, 2018 8:10 am Post subject: |
|
|
There's nothing obviously bad there as long as 20176F12815 is still a valid address but its entirely possible that the same code changes other values as well that are used in such a way that having a value of 500 crashes the game (eg. an array index). Which may be why the working script you found is changing different code.
Though in the second one that doesn't work but doesn't crash you should probably still have mov [rsi+74],r15d. I wouldn't expect it to suddenly work with that however.
and yeah presumably Oxygen:RemoveOxygen+51+4: is the same as Oxygen:RemoveOxygen+55:, I just personally do the latter so wasn't certain that the former works.
The db is just changing the offset used from 18 to 20 (hex) or vice versa for disabling. Probably changing it from loading the current oxygen value to loading the max oxygen value.
_________________
|
|
Back to top |
|
|
|
|
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
|
|