Page 1 of 2
Astroneer, an instruction is shared with tons of total different address and values.
Posted: Mon Oct 30, 2017 5:55 pm
by squall0833
Hello guys,
Recently I went back to play
Astroneer, and doing some cheats, then I found most of the stuff in the game shared the same instruction.
And I'm running out of idea how to deal with this kind of instruction
im still new to CE, just beginner level
what this cheat does is
Infinite Oxygen
Massive Resources and Soil Collection when harvesting.
(every bit of harvested resource instantly harvested as a stack, end up massive resources explosion)
here's my current code:
note: Oxygen and Massive Resources work as intended.
Values found:
Max Oxygen 277200
Harvested Resource 138600 harvested when reached
Backpack Crafting time 138600 completed when decreased from 138600 to 0
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(INF_OXYGEN,Astro-Win64-Shipping.exe,89 BB 40 01 00 00 85)
alloc(newmem,$1000,"Astro-Win64-Shipping.exe"+1DF9CB)
label(code)
label(return)
label(massiveresources)
//label(instantcraftbp) //not completed
newmem:
cmp [rbx+000000A8],2E480609 //check if it is harvest resource
je massiveresources
// cmp [rbx+000000XX],XXX //check XXX if it is Build/Craft time
// jmp instantcraftbp
cmp [rbx+000000A8],2E480619 //check if it is Oxygen
jne code //jump to original code if not oxygen not resources
mov [rbx+00000140],(int)277200 //Infinite Oxygen
jmp return
massiveresources:
mov [rbx+00000140],(int)138600 // Massive Resources + Soil Collection
jmp return
//instantcraftbp:
// mov [rbx+00000140],(int)0
// jmp return
code:
mov [rbx+00000140],edi
jmp return
INF_OXYGEN:
jmp newmem
nop
return:
registersymbol(INF_OXYGEN)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INF_OXYGEN:
db 89 BB 40 01 00 00
unregistersymbol(INF_OXYGEN)
dealloc(newmem)
However when this cheat is enabled, all building/crafting in the game will be freeze until the cheat is disable, it seems that the building/crafting time is also using the same instruction, I believe when an item is being crafted, the value is the same as harvest resource integer 138600 but decreasing instead, and when it reached 0, item is done,
So I wrote instantcraftbp compare statement, doesn't work, and crafting still freezing at 138600 (0% progression),
did some testing, the code that's freezing the crafting time was coming from massiveresources: code, If i change 138600 to 0, then instant craft works, but can no longer harvesting resources and soil, looks like something is wrong in this code that's still applying 138600 to the crafting time, cmp statement on instantcraftbp doesnt work?
is there any better way to identify what is the "edi" or "rbx+140" for them jump to the right cheat code?
Thanks
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Mon Oct 30, 2017 9:15 pm
by Bloodybone
So Unreal Engine is a bit anoying as you found out because most of the time everything is shared but i made a working code now:
[ENABLE]
aobscanmodule(INF_OXYGEN,Astro-Win64-Shipping.exe,89 BB 40 01 00 00 85)
alloc(newmem,$1000,"Astro-Win64-Shipping.exe"+1DF9CB)
label(code)
label(return)
label(massiveresources)
label(instantcraftbp)
newmem:
cmp [rbx+000000A8],2E480609 //check if it is harvest resource
je massiveresources
cmp [rbx+000000A8],2E480619 //check if it is Oxygen
jne code //jump to original code if not oxygen not resources
mov [rbx+00000140],(int)277200 //Infinite Oxygen
jmp return
massiveresources:
cmp rbp,0 //Compare out Instacraftbp
je instantcraftbp
mov [rbx+00000140],(int)138600// Massive Resources + Soil Collection
jmp return
instantcraftbp:
mov [rbx+00000140],(int)0
jmp return
code:
mov [rbx+00000140],edi
jmp return
INF_OXYGEN:
jmp newmem
nop
return:
registersymbol(INF_OXYGEN)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INF_OXYGEN:
db 89 BB 40 01 00 00
unregistersymbol(INF_OXYGEN)
dealloc(newmem)
If rbp doesn't work this are other offsets that could work:
cmp rax,0
jne instantcraftbp
cmp rcx,0
jne instantcraftbp
cmp rdx,0
jne instantcraftbp
cmp rdi,0
jne instantcraftbp
cmp rcx,0
jne instantcraftbp
cmp r12,0
jne instantcraftbp
cmp r14,1
jne instantcraftbp
cmp r14,306
je instantcraftbp
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 9:11 am
by squall0833
so, putting the cmp on the massive resource area is just for easier better way of coding or there's a reason it wont work if i dont?
gonna try it tonight, thanks for the help
if that rbp = 0 also applies to things other than instantcraftbp by any chance, so i need to look for another different offset to compare right?
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 11:34 am
by Bloodybone
squall0833 wrote: ↑Tue Oct 31, 2017 9:11 am
so, putting the cmp on the massive resource area is just for easier better way of coding or there's a reason it wont work if i dont?
gonna try it tonight, thanks for the help
if that rbp = 0 also applies to things other thanns itantcraftbp by any chance, so i need to look for another different offset to compare right?
Yeah maybe, i knew that massive resources and itantcraftbp go to the same area so i only had to compare these out but i didn't have to compare all out.
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 3:17 pm
by squall0833
Bloodybone wrote: ↑Tue Oct 31, 2017 11:34 am
squall0833 wrote: ↑Tue Oct 31, 2017 9:11 am
so, putting the cmp on the massive resource area is just for easier better way of coding or there's a reason it wont work if i dont?
gonna try it tonight, thanks for the help
if that rbp = 0 also applies to things other thanns itantcraftbp by any chance, so i need to look for another different offset to compare right?
Yeah maybe, i knew that massive resources and itantcraftbp go to the same area so i only had to compare these out but i didn't have to compare all out.
oooh oh i see
maybe they all have the same rbp, but in my code, instead of compare them all in same area, i can just compare it again in the next area where there is no codes for oxygen, but only massive resource value
i get the idea now thanks
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 3:21 pm
by Bloodybone
squall0833 wrote: ↑Tue Oct 31, 2017 3:17 pm
Bloodybone wrote: ↑Tue Oct 31, 2017 11:34 am
squall0833 wrote: ↑Tue Oct 31, 2017 9:11 am
so, putting the cmp on the massive resource area is just for easier better way of coding or there's a reason it wont work if i dont?
gonna try it tonight, thanks for the help
if that rbp = 0 also applies to things other thanns itantcraftbp by any chance, so i need to look for another different offset to compare right?
Yeah maybe, i knew that massive resources and itantcraftbp go to the same area so i only had to compare these out but i didn't have to compare all out.
oooh oh i see
maybe they all have the same rbp, but in my code, instead of compare them all in same area, i can just compare it again in the next area where there is no codes for oxygen, but only massive resource value
i get the idea now thanks
Yeah Your Welcome
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 4:17 pm
by squall0833
Bloodybone wrote: ↑Tue Oct 31, 2017 3:21 pm
squall0833 wrote: ↑Tue Oct 31, 2017 3:17 pm
Bloodybone wrote: ↑Tue Oct 31, 2017 11:34 am
Yeah maybe, i knew that massive resources and itantcraftbp go to the same area so i only had to compare these out but i didn't have to compare all out.
oooh oh i see
maybe they all have the same rbp, but in my code, instead of compare them all in same area, i can just compare it again in the next area where there is no codes for oxygen, but only massive resource value
i get the idea now thanks
Yeah Your Welcome
well i just notice that, even though it's working for instant craft bp now, but massive resource and soil stopped working as they get mov 0 too
hmmmmm
it seems when cmp is success and jump to instantcraftbp, resource harvest will get 0 too, this is weird, the codes seems right
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 4:23 pm
by Bloodybone
squall0833 wrote: ↑Tue Oct 31, 2017 4:17 pm
Bloodybone wrote: ↑Tue Oct 31, 2017 3:21 pm
squall0833 wrote: ↑Tue Oct 31, 2017 3:17 pm
oooh oh i see
maybe they all have the same rbp, but in my code, instead of compare them all in same area, i can just compare it again in the next area where there is no codes for oxygen, but only massive resource value
i get the idea now thanks
Yeah Your Welcome
well i just notice that, even though it's working for instant craft bp now, but massive resource and soil stopped working as they get mov 0 too
hmmmmm
Maybe instead of rbp try somthing else i posted above
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 4:43 pm
by squall0833
now i'm doing this way
rbx+a8 2E480609 (from harvested resources, soil )
rbx+a8 2E480619 (from oxygen base address)
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(INF_OXYGEN,Astro-Win64-Shipping.exe,89 BB 40 01 00 00 85)
alloc(newmem,$1000,"Astro-Win64-Shipping.exe"+1DF9CB)
label(code)
label(return)
label(massiveresources)
label(instantcraftbp)
newmem:
cmp [rbx+000000A8],2E480609 //check if it is resource
je massiveresources //jump to massive resources
cmp [rbx+000000A8],2E480619 //check if it is oxygen
jne code //going down to infinite oxygen, OK
mov [rbx+00000140],(int)277200 //Infinite Oxygen
jmp return
massiveresources:
cmp [rbx+000000A8],2E480619 //check again if this is oxygen's +a8 hex value
jne instantcraftbp //it's not oxygen (it's 2E480609 or something else, so jumping to instantcraftbp, OK done.)
mov [rbx+00000140],(int)138600 // Massive Resources //else, doing massive resource
jmp return
instantcraftbp:
mov [rbx+00000140],(int)0 //apply 0 to the address value so it will be instant crafting
jmp return
code:
mov [rbx+00000140],edi
jmp return
INF_OXYGEN:
jmp newmem
nop
return:
registersymbol(INF_OXYGEN)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INF_OXYGEN:
db 89 BB 40 01 00 00
unregistersymbol(INF_OXYGEN)
dealloc(newmem)
it seems that the code jumped to instantcraftbp successfully, and it's working, but at the same time massive resources and soil are also become 0
the massive resource area code don't work anymore like it's being bypassed
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 4:44 pm
by Bloodybone
squall0833 wrote: ↑Tue Oct 31, 2017 4:43 pm
now i'm doing this way
rbx+a8 2E480609 (from harvested resources, soil )
rbx+a8 2E480619 (from oxygen base address)
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(INF_OXYGEN,Astro-Win64-Shipping.exe,89 BB 40 01 00 00 85)
alloc(newmem,$1000,"Astro-Win64-Shipping.exe"+1DF9CB)
label(code)
label(return)
label(massiveresources)
label(instantcraftbp)
newmem:
cmp [rbx+000000A8],2E480609 //check if it is resource
je massiveresources //jump to massive resources
cmp [rbx+000000A8],2E480619 //check if it is oxygen
jne code //going down to infinite oxygen, OK
mov [rbx+00000140],(int)277200 //Infinite Oxygen
jmp return
massiveresources:
cmp [rbx+000000A8],2E480619 //check again if this is oxygen's +a8 hex value
jne instantcraftbp //it's not oxygen (it's 2E480619 or something else, so jumping to instantcraftbp, OK done.)
mov [rbx+00000140],(int)138600 // Massive Resources //else, doing massive resource
jmp return
instantcraftbp:
mov [rbx+00000140],(int)0 //apply 0 to the address value so it will be instant crafting
jmp return
code:
mov [rbx+00000140],edi
jmp return
INF_OXYGEN:
jmp newmem
nop
return:
registersymbol(INF_OXYGEN)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
INF_OXYGEN:
db 89 BB 40 01 00 00
unregistersymbol(INF_OXYGEN)
dealloc(newmem)
it seems that the code jumped to instantcraftbp successfully, and it's working, but at the same time massive resources and soil are also become 0
the massive resource area code don't work anymore like it's being bypassed
Ok gonna look into it
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 4:45 pm
by squall0833
correction at this line, i typed the comment wrong
jne instantcraftbp //it's not oxygen (it's 2E480609 or something else, so jumping to instantcraftbp, OK done.)
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 4:54 pm
by Bloodybone
squall0833 wrote: ↑Tue Oct 31, 2017 4:45 pm
correction at this line, i typed the comment wrong
jne instantcraftbp //it's not oxygen (it's
2E480609 or something else, so jumping to instantcraftbp, OK done.)
Instead of using this:
cmp [rbx+000000A8],2E480619 //check again if this is oxygen's +a8 hex value
jne instantcraftbp //it's not oxygen (it's 2E480619 or something else, so jumping to instantcraftbp, OK done.)
Use this:
cmp rbp,0 //check if it is instacraft
je instantcraftbp //it's than jump
This works for my Game
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 5:01 pm
by squall0833
Bloodybone wrote: ↑Tue Oct 31, 2017 4:54 pm
squall0833 wrote: ↑Tue Oct 31, 2017 4:45 pm
correction at this line, i typed the comment wrong
jne instantcraftbp //it's not oxygen (it's
2E480609 or something else, so jumping to instantcraftbp, OK done.)
Instead of using this:
cmp [rbx+000000A8],2E480619 //check again if this is oxygen's +a8 hex value
jne instantcraftbp //it's not oxygen (it's 2E480619 or something else, so jumping to instantcraftbp, OK done.)
Use this:
cmp rbp,0 //check if it is instacraft
je instantcraftbp //it's than jump
This works for my Game
yeah i know it works , can instant craft
but that also make u no longer able to harvest resources, u get nothing when harvesting
the massive resources no longer works after that, even the code looks right
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 5:06 pm
by Bloodybone
squall0833 wrote: ↑Tue Oct 31, 2017 5:01 pm
Bloodybone wrote: ↑Tue Oct 31, 2017 4:54 pm
squall0833 wrote: ↑Tue Oct 31, 2017 4:45 pm
correction at this line, i typed the comment wrong
jne instantcraftbp //it's not oxygen (it's
2E480609 or something else, so jumping to instantcraftbp, OK done.)
Instead of using this:
cmp [rbx+000000A8],2E480619 //check again if this is oxygen's +a8 hex value
jne instantcraftbp //it's not oxygen (it's 2E480619 or something else, so jumping to instantcraftbp, OK done.)
Use this:
cmp rbp,0 //check if it is instacraft
je instantcraftbp //it's than jump
This works for my Game
yeah i know it works , can instant craft
but that also make u no longer able to harvest resources, u get nothing when harvesting
the massive resources no longer works after that, even the code looks right
OK i can see if i can do something
Re: Astroneer, an instruction is shared with tons of total different address and values.
Posted: Tue Oct 31, 2017 5:13 pm
by squall0833
Bloodybone wrote: ↑Tue Oct 31, 2017 5:06 pm
squall0833 wrote: ↑Tue Oct 31, 2017 5:01 pm
Bloodybone wrote: ↑Tue Oct 31, 2017 4:54 pm
Instead of using this:
cmp [rbx+000000A8],2E480619 //check again if this is oxygen's +a8 hex value
jne instantcraftbp //it's not oxygen (it's 2E480619 or something else, so jumping to instantcraftbp, OK done.)
Use this:
cmp rbp,0 //check if it is instacraft
je instantcraftbp //it's than jump
This works for my Game
yeah i know it works , can instant craft
but that also make u no longer able to harvest resources, u get nothing when harvesting
the massive resources no longer works after that, even the code looks right
OK i can see if i can do something
lol this game's code really something