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 


Starbound unstable (upbeat giraffe)
Goto page 1, 2, 3  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
XaneXXXX
Expert Cheater
Reputation: 0

Joined: 29 Nov 2012
Posts: 212

PostPosted: Mon Dec 22, 2014 1:30 am    Post subject: Starbound unstable (upbeat giraffe) Reply with quote

Hello! Trying to make a god mode script for starbound, but i think they some kind of protection. Here is my script:

[ENABLE]
alloc(newmem,100)
label(returnhere)
label(originalcode)
label(health)
label(exit)

newmem:
cmp [eax+1C],43070000
je health
jmp originalcode

health:
nop
nop
nop
jmp exit

originalcode:
fst dword ptr [eax+18]
leave
ret 0008
jmp exit

exit:
jmp returnhere

"starbound_opengl.exe"+4F1A8D:
jmp newmem
nop
nop
returnhere:

[DISABLE]
"starbound_opengl.exe"+4F1A8D:
fst dword ptr [eax+18]

----------------------------------------------------------
Now the problem is that when i enable the script, and get hit ingame i get this error then game crash: Access violation detected at 0x28f0c0 (Read of address 0xffffffff)

But if i nop the function manually, i get no error and i have unlimited health (except that monsters do too) That's why i have used the cmp function. i have tried the stealthedit plugin for cheat engine 6.3 but it is still giving me the same error. Or maybe there is something wrong with my script? I've used this method in many games before and never got this error.

I have also made unlimited stamina and unlimited money using scripts without any issues. Just health that are giving me this error.

Thanks!



error.png
 Description:
Picture of error
 Filesize:  42.18 KB
 Viewed:  24360 Time(s)

error.png


Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Dec 22, 2014 8:15 am    Post subject: Re: Starbound unstable (upbeat giraffe) Reply with quote

Maybe try this:

Code:
[ENABLE]
alloc(newmem,100)
label(returnhere)

newmem:
cmp [eax+1C],43070000
je returnhere
fst dword ptr [eax+18]
jmp returnhere

"starbound_opengl.exe"+4F1A8D:
jmp newmem
nop
nop
returnhere:

[DISABLE]
dealloc(newmem)
"starbound_opengl.exe"+4F1A8D:
fst dword ptr [eax+18]


You should really let CE build the script for you, if you are not already doing that.
Back to top
View user's profile Send private message
XaneXXXX
Expert Cheater
Reputation: 0

Joined: 29 Nov 2012
Posts: 212

PostPosted: Mon Dec 22, 2014 10:29 am    Post subject: Re: Starbound unstable (upbeat giraffe) Reply with quote

++METHOS wrote:
Maybe try this:

Code:
[ENABLE]
alloc(newmem,100)
label(returnhere)

newmem:
cmp [eax+1C],43070000
je returnhere
fst dword ptr [eax+18]
jmp returnhere

"starbound_opengl.exe"+4F1A8D:
jmp newmem
nop
nop
returnhere:

[DISABLE]
dealloc(newmem)
"starbound_opengl.exe"+4F1A8D:
fst dword ptr [eax+18]


You should really let CE build the script for you, if you are not already doing that.

I always let CE built the script for me and work from there.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Dec 22, 2014 10:59 am    Post subject: Reply with quote

1. Did the script work for you?
2. If you let CE build the script, why was dealloc(newmem) removed?
Back to top
View user's profile Send private message
XaneXXXX
Expert Cheater
Reputation: 0

Joined: 29 Nov 2012
Posts: 212

PostPosted: Mon Dec 22, 2014 11:04 am    Post subject: Reply with quote

++METHOS wrote:
1. Did the script work for you?
2. If you let CE build the script, why was dealloc(newmem) removed?


Oh sorry. I have that added in my original script. I was just testing stuff to see what caused the game to crash. Also when you mean that i let CE build the script for me. You mean press "code injection" in the AA right? Because it doesn't add the dealloc, i have to do that myself. Also I'm new with this auto assembler thing. Finished all of the tutorials and have read a lot, still have much to learn.

I can't tell if the script work since the game crashed.. I don't know if the game crashed BECAUSE of my script. of because it has some protection?

have you encountered this error before?

Thanks for your answer.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Dec 22, 2014 11:11 am    Post subject: Reply with quote

Do this to build the script and we can go from there:

In memory viewer, with the instruction highlighted, select 'tools' from the drop-down menu. Click on 'auto assemble'. In the auto assemble window, click on 'template' and select 'cheat table framework code'. Click on 'template' again, and select 'code injection'. Click on 'file' from the drop-down menu...select 'assign to current cheat table'.

You do not have to incorporate NOP's in to your table, just do this:

Code:
newmem:
cmp [eax+1C],43070000
je returnhere
fst dword ptr [eax+18]
jmp returnhere
Back to top
View user's profile Send private message
XaneXXXX
Expert Cheater
Reputation: 0

Joined: 29 Nov 2012
Posts: 212

PostPosted: Mon Dec 22, 2014 11:20 am    Post subject: Reply with quote

Alright, i found the health value > find out what writes to this address, get hit ingame. An address pops up > show in dissembler > what you told me to do. Here is the original non modified code:

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
fst dword ptr [eax+18]
leave
ret 0008

exit:
jmp returnhere

"starbound_opengl.exe"+4F1A8D:
jmp newmem
nop
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"starbound_opengl.exe"+4F1A8D:
fst dword ptr [eax+18]
leave
ret 0008
//Alt: db D9 50 18 C9 C2 08 00

Also do you know what "leave
ret 0008" means? Thanks!
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Dec 22, 2014 11:27 am    Post subject: Reply with quote

psrkallez06 wrote:
Alright, i found the health value > find out what writes to this address,
-Have you tried 'what accesses' instead of 'what writes'? Anyway, you can try this:

Code:
[ENABLE]
alloc(newmem,2048)
label(returnhere)

newmem:
leave
ret 0008
jmp returnhere

"starbound_opengl.exe"+4F1A8D:
jmp newmem
nop
nop
returnhere:

[DISABLE]
dealloc(newmem)
"starbound_opengl.exe"+4F1A8D:
fst dword ptr [eax+18]
leave
ret 0008
//Alt: db D9 50 18 C9 C2 08 00


This is the same thing as NOP'ing the instruction.

If that works, then you can add your filter:

Code:
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(health)

newmem:
cmp [eax+1C],43070000
je health
fst dword ptr [eax+18]
leave
ret 0008
jmp returnhere

health:
leave
ret 0008
jmp returnhere

"starbound_opengl.exe"+4F1A8D:
jmp newmem
nop
nop
returnhere:

[DISABLE]
dealloc(newmem)
"starbound_opengl.exe"+4F1A8D:
fst dword ptr [eax+18]
leave
ret 0008
//Alt: db D9 50 18 C9 C2 08 00
Back to top
View user's profile Send private message
XaneXXXX
Expert Cheater
Reputation: 0

Joined: 29 Nov 2012
Posts: 212

PostPosted: Mon Dec 22, 2014 11:34 am    Post subject: Reply with quote

Your script does work, but the problem is that the monsters also have unlimited health.. That's why i used the cmp function with dissect data etc in my previous script.

No i haven't tried "what accesses this address". There are so many values that pops up, my guess is that it is the two last ones that are interested. Since they pop out once i get hit/heal myself. The other ones are always there.



access.png
 Description:
 Filesize:  31.15 KB
 Viewed:  24277 Time(s)

access.png


Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Dec 22, 2014 11:41 am    Post subject: Reply with quote

As I said, if the script works you can incorporate your filter as I posted above (see my previous post).

Additionally, the reason we check for instructions that access, instead of just write, is because we may be able to use one of those instructions that are exclusive to hero player, so that you are guaranteed to have a proper filter. This should be done before even looking at data structures for dissection.

In the debugger window, once the instructions populate for 'what accesses', you can right-click on an empty space to see an option that will allow you to check if found opcodes also access other addresses. By doing this, you will be able to see if any of the instructions are exclusive to your hero player.
Back to top
View user's profile Send private message
XaneXXXX
Expert Cheater
Reputation: 0

Joined: 29 Nov 2012
Posts: 212

PostPosted: Mon Dec 22, 2014 11:42 am    Post subject: Reply with quote

thanks man!! your latest script worked perfectly! Just what i wanted! Very Happy

But still wondering. why do you have:

leave
ret 0008

In health label instead of: fst dword ptr [eax+18]

What does leave and ret 0008 do? Thanks!
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Mon Dec 22, 2014 11:52 am    Post subject: Reply with quote

It's part of the original code that needs to be executed, that isn't part of the instruction that you are manipulating...due to the amount of bytes and what you are NOP'ing, they needed to be included in the script. See assembly code references to learn more...there are many resources available for learning, but it isn't critical that you understand everything.
Back to top
View user's profile Send private message
XaneXXXX
Expert Cheater
Reputation: 0

Joined: 29 Nov 2012
Posts: 212

PostPosted: Mon Dec 22, 2014 5:28 pm    Post subject: Reply with quote

i see, thank you very much. Could you help me with "infinite items" also?

here is the original script:

[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:

originalcode:
mov [ecx+14],ebx
pop ebx
pop ebp

exit:
jmp returnhere

"starbound_opengl.exe"+1E1067:
jmp newmem
returnhere:




[DISABLE]
dealloc(newmem)
"starbound_opengl.exe"+1E1067:
mov [ecx+14],ebx
pop ebx
pop ebp
//Alt: db 89 59 14 5B 5D

What i want to is just to NOP the funtion. there are 3 nops. But what confuses me is the:
pop ebx
pop ebp

also, how can you tell how many bytes the code is? from what i understand. If my own code is shorter than the original i need to add nop.s to make it the same size or am i wrong?

I've tried it myself but i get the same problem/error as before. The reason why I'm asking you to do it it just so that i can see what you're doing and figure out why. I won't use the script you make directly since i like writing them on my own. just trying to learn. thanks again! Smile
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Tue Dec 23, 2014 12:41 am    Post subject: Reply with quote

If you let CE build the script for you, then this is all you need to do:

Code:
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem:

originalcode:
//mov [ecx+14],ebx    //but it is better to set your value, not just keep it from changing
pop ebx
pop ebp

exit:
jmp returnhere

"starbound_opengl.exe"+1E1067:
jmp newmem
returnhere:


 
 
[DISABLE]
dealloc(newmem)
"starbound_opengl.exe"+1E1067:
mov [ecx+14],ebx
pop ebx
pop ebp
//Alt: db 89 59 14 5B 5D
Back to top
View user's profile Send private message
XaneXXXX
Expert Cheater
Reputation: 0

Joined: 29 Nov 2012
Posts: 212

PostPosted: Tue Dec 23, 2014 6:36 am    Post subject: Reply with quote

I was able to nop the funcion Very Happy

How do i "set" a value instead of noping it? Never done that before. Thanks!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Goto page 1, 2, 3  Next
Page 1 of 3

 
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