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 


need some help with this opcode

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
CerberusForHumanity
Newbie cheater
Reputation: 0

Joined: 06 Mar 2019
Posts: 12

PostPosted: Thu Apr 23, 2020 7:25 pm    Post subject: need some help with this opcode Reply with quote

the selected opcode is writing to my address i understand that but i believe it uses a encrypted value. i know my value is in the 2nd opcode at the top the mov edx,[rdi+soandso] my question is once the game goes to that jump/jle is it going directly to that xor or does it just move to the movsdx rax,edx ? my goal is to change the value before it gets encrypted and i thought i would be doing that at the 2nd opcode at the top but when i raise it past a certain value it crashes the game so if anyone can help me in understanding where i should write my script before that xor takes place i would be thankful Smile


helpmaybe.PNG
 Description:
 Filesize:  29.38 KB
 Viewed:  2131 Time(s)

helpmaybe.PNG


Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4719

PostPosted: Thu Apr 23, 2020 11:17 pm    Post subject: Reply with quote

Every path going to exe+4e8144 causes a segfault. Relying on exceptions as an ordinary branching mechanism seems like a stupid thing to do intentionally, so it's probably just crashing the game on purpose.

Check what the values at rdi+b74f4c and rdi+b74f44 are.

The value in edx is being used as an offset from the value in rdi+b74f30. There are a couple places it could segfault if set improperly with respect to rdi+b74f40. Maybe rdi+b74f44 is a negative number that results in a reasonable offset after the add? Or perhaps that value at rdi+b74f30 is important too? The address that results from mov rax,[rax] is read to get the value written to esi and, if the function exe+7efac0 conforms to any standard calling convention, subsequently the value stored at rax+854.

Debug it to look at values in registers and in memory, and use your head to figure out the meaning of the different values. Maybe look at the called function too, especially if esi isn't preserved across it.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
CerberusForHumanity
Newbie cheater
Reputation: 0

Joined: 06 Mar 2019
Posts: 12

PostPosted: Fri Apr 24, 2020 12:42 am    Post subject: Reply with quote

ParkourPenguin wrote:
Every path going to exe+4e8144 causes a segfault. Relying on exceptions as an ordinary branching mechanism seems like a stupid thing to do intentionally, so it's probably just crashing the game on purpose.

Check what the values at rdi+b74f4c and rdi+b74f44 are.

The value in edx is being used as an offset from the value in rdi+b74f30. There are a couple places it could segfault if set improperly with respect to rdi+b74f40. Maybe rdi+b74f44 is a negative number that results in a reasonable offset after the add? Or perhaps that value at rdi+b74f30 is important too? The address that results from mov rax,[rax] is read to get the value written to esi and, if the function exe+7efac0 conforms to any standard calling convention, subsequently the value stored at rax+854.

Debug it to look at values in registers and in memory, and use your head to figure out the meaning of the different values. Maybe look at the called function too, especially if esi isn't preserved across it.


so i tried putting a script in multiple locations but it seems anything before the selected opcode causes a crash regardless of the value i put. i must be messing up i just did not think making a script where it first gets its value would cause crashes. i can make a script after the encryption but not before it until i can figure out the issue.
Back to top
View user's profile Send private message
CerberusForHumanity
Newbie cheater
Reputation: 0

Joined: 06 Mar 2019
Posts: 12

PostPosted: Thu Apr 30, 2020 8:23 pm    Post subject: Reply with quote

so from more digging i found at the compare the value of the cap is 30 and when i do what writes to it instead of seeing 1E (hex for 30) i see no values except zeros at edi like in these images. i also know edi got its value at the push. at the push it shows no value except zeros when using a breakpoint. How do i see the 30/1E if breakpoint and the what writes menu doesnt show it either? i know it is 30 because when i do a what addresses this instruction accesses it shows a address with a byte value of 30. it makes sense since the unit cap is 30. thank you for your time and anyone that helps and has helped.


ergrgdfh.PNG
 Description:
 Filesize:  197 KB
 Viewed:  1986 Time(s)

ergrgdfh.PNG



njdsvgvd.PNG
 Description:
 Filesize:  333.24 KB
 Viewed:  1986 Time(s)

njdsvgvd.PNG


Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4719

PostPosted: Thu Apr 30, 2020 10:05 pm    Post subject: Reply with quote

There's an xor edi,edi just before that write (mov [rcx+3cc],edi), so yes, it's being set to 0.
(xor edi,edi sets edi to 0 always)

The inc instruction probably increments the value until it reaches 30 or something.

CerberusForHumanity wrote:
i also know edi got its value at the push
What push are you talking about? The one at exe+6B1195 (label "tty")? That's just backing up the register, as per standard calling conventions. push instructions don't even write to registers.

Perhaps you should start smaller and learn what instructions do.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
CerberusForHumanity
Newbie cheater
Reputation: 0

Joined: 06 Mar 2019
Posts: 12

PostPosted: Thu Apr 30, 2020 10:14 pm    Post subject: Reply with quote

ParkourPenguin wrote:
There's an xor edi,edi just before that write (mov [rcx+3cc],edi), so yes, it's being set to 0.
(xor edi,edi sets edi to 0 always)

The inc instruction probably increments the value until it reaches 30 or something.

CerberusForHumanity wrote:
i also know edi got its value at the push
What push are you talking about? The one at exe+6B1195 (label "tty")? That's just backing up the register, as per standard calling conventions. push instructions don't even write to registers.

Perhaps you should start smaller and learn what instructions do.

my bad i had thought it was pushing the value that is in edi. i am half awake while trying to figure things out so i apologize for the misunderstanding
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Page 1 of 1

 
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