Astroneer, an instruction is shared with tons of total different address and values.

Memory scanning, code injection, debugger internals and other gamemodding related discussion
squall0833
Table Makers
Table Makers
Posts: 196
Joined: Sat Mar 04, 2017 1:46 pm
Reputation: 81

Astroneer, an instruction is shared with tons of total different address and values.

Post 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

Bloodybone
Table Makers
Table Makers
Posts: 288
Joined: Thu Aug 03, 2017 6:19 am
Reputation: 133

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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

squall0833
Table Makers
Table Makers
Posts: 196
Joined: Sat Mar 04, 2017 1:46 pm
Reputation: 81

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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 :D

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?

Bloodybone
Table Makers
Table Makers
Posts: 288
Joined: Thu Aug 03, 2017 6:19 am
Reputation: 133

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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 :D

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.

squall0833
Table Makers
Table Makers
Posts: 196
Joined: Sat Mar 04, 2017 1:46 pm
Reputation: 81

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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 :D

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 :D

Bloodybone
Table Makers
Table Makers
Posts: 288
Joined: Thu Aug 03, 2017 6:19 am
Reputation: 133

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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 :D

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 :D
Yeah Your Welcome

squall0833
Table Makers
Table Makers
Posts: 196
Joined: Sat Mar 04, 2017 1:46 pm
Reputation: 81

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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 :D
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
Last edited by squall0833 on Tue Oct 31, 2017 4:32 pm, edited 1 time in total.

Bloodybone
Table Makers
Table Makers
Posts: 288
Joined: Thu Aug 03, 2017 6:19 am
Reputation: 133

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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 :D
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

squall0833
Table Makers
Table Makers
Posts: 196
Joined: Sat Mar 04, 2017 1:46 pm
Reputation: 81

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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
Last edited by squall0833 on Tue Oct 31, 2017 4:44 pm, edited 1 time in total.

Bloodybone
Table Makers
Table Makers
Posts: 288
Joined: Thu Aug 03, 2017 6:19 am
Reputation: 133

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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

squall0833
Table Makers
Table Makers
Posts: 196
Joined: Sat Mar 04, 2017 1:46 pm
Reputation: 81

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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.)

Bloodybone
Table Makers
Table Makers
Posts: 288
Joined: Thu Aug 03, 2017 6:19 am
Reputation: 133

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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

squall0833
Table Makers
Table Makers
Posts: 196
Joined: Sat Mar 04, 2017 1:46 pm
Reputation: 81

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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

Bloodybone
Table Makers
Table Makers
Posts: 288
Joined: Thu Aug 03, 2017 6:19 am
Reputation: 133

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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

squall0833
Table Makers
Table Makers
Posts: 196
Joined: Sat Mar 04, 2017 1:46 pm
Reputation: 81

Re: Astroneer, an instruction is shared with tons of total different address and values.

Post 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

Post Reply

Who is online

Users browsing this forum: No registered users