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 


Memory addressgetting accessed by pure register instructions

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
sgsgwv$6263
Advanced Cheater
Reputation: 0

Joined: 05 Aug 2020
Posts: 75

PostPosted: Fri Feb 23, 2024 6:49 am    Post subject: Memory addressgetting accessed by pure register instructions Reply with quote

Hi. So I have a memory address and it is getting accessed by this instruction:
Code:

mov rcx,r8

But I think its impossible. Uptil now whenever I tried " what accesses this address" functionality, it always gave me instructions which had [] in them like:
Code:

Mov ebx,[rcx]


So here it seems like the instruction is working with registers but in reality they are accessing memory address.
So, I am confused here. Can someone tell me how to see the actual instruction which is accessing the memory address. Or naybe I have to use some other debugger or is it because of some bug in CE. I am using 6.8.1 version btw
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25298
Location: The netherlands

PostPosted: Fri Feb 23, 2024 8:56 am    Post subject: Reply with quote

bug in old ce
just look at the next instruction

also make sure editing a value has an effect in the game before you debug, this usually happens on display values

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
sgsgwv$6263
Advanced Cheater
Reputation: 0

Joined: 05 Aug 2020
Posts: 75

PostPosted: Fri Feb 23, 2024 11:11 am    Post subject: Reply with quote

Thanks for the reply sir.

I checked there is no instruction around that instruction which access the same memory.

As far as bug in old ce is concerned, I am happy that its a known bug but have not checked with newer version. Can you tell me the version in which it was fixed. I can't check change log for each version after 6.8.1 as a human.

Its also a value which affects the game.

And even if its a display value, the debugger should find the instruction which is accessing it or modifying it. That is the expectation.


Last edited by sgsgwv$6263 on Sat Feb 24, 2024 7:38 am; edited 1 time in total
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25298
Location: The netherlands

PostPosted: Fri Feb 23, 2024 12:40 pm    Post subject: Reply with quote

rep movs* accesses memory as well
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
sgsgwv$6263
Advanced Cheater
Reputation: 0

Joined: 05 Aug 2020
Posts: 75

PostPosted: Sat Feb 24, 2024 7:42 am    Post subject: Reply with quote

Hi,

No, even those instructions are not showing what memory address they use.

I just tried with CE 7.5 and I see the same problem so even if its a bug , its not resolved yet.

Really need help here.

Also I can tell you that the memory I am trying to access is a very big memory region. All of them are getting accessed by the same instruction but the values in the memory region are diversified. I can see 0.5s,0.07s to 1500 to 7500 or -400 or -456. I am not sure how much this will help with understanding my situation but..


The instruction has an address "vcruntime140.memcmp+E8"
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 140

Joined: 06 Jul 2014
Posts: 4307

PostPosted: Sat Feb 24, 2024 1:41 pm    Post subject: Reply with quote

Post the code around the instruction CE thinks is accessing an address.

I'm almost certain it's some string instruction (e.g. rep cmpsb) and you haven't looked up what that instruction does yet.

_________________
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
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25298
Location: The netherlands

PostPosted: Sat Feb 24, 2024 6:08 pm    Post subject: Reply with quote

since the instruction is memcmp I'd have to guess it's rep scas* then
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
sgsgwv$6263
Advanced Cheater
Reputation: 0

Joined: 05 Aug 2020
Posts: 75

PostPosted: Sat Feb 24, 2024 11:16 pm    Post subject: Reply with quote

here is the entire function:

Code:

VCRUNTIME140.memcmp+D6 - 66 66 0F1F 84 00 00000000  - nop word ptr [rax+rax+00000000]
VCRUNTIME140.memcmp+E0 - 57                    - push rdi
VCRUNTIME140.memcmp+E1 - 56                    - push rsi
VCRUNTIME140.memcmp+E2 - 48 8B F9              - mov rdi,rcx
VCRUNTIME140.memcmp+E5 - 48 8B F2              - mov rsi,rdx
VCRUNTIME140.memcmp+E8 - 49 8B C8              - mov rcx,r8
VCRUNTIME140.memcmp+EB - F3 A4                 - repe movsb
VCRUNTIME140.memcmp+ED - 5E                    - pop rsi
VCRUNTIME140.memcmp+EE - 5F                    - pop rdi
VCRUNTIME140.memcmp+EF - C3                    - ret


I tried getting memory addresses getting accessed by both the `nop word ptr..` and `repe movsb` , but both don't access any memory.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 140

Joined: 06 Jul 2014
Posts: 4307

PostPosted: Sun Feb 25, 2024 1:16 am    Post subject: Reply with quote

sgsgwv$6263 wrote:
Code:
repe movsb
This instruction accesses your address. It moves a number of bytes specified by rcx from rsi (source pointer) to rdi (destination pointer).

If you want further information, look it up in an instruction set reference manual

_________________
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
sgsgwv$6263
Advanced Cheater
Reputation: 0

Joined: 05 Aug 2020
Posts: 75

PostPosted: Sun Feb 25, 2024 6:37 am    Post subject: Reply with quote

But how can I see which addresses are getting accessed by this instruction? Coz when I tried "what address this instruction addresses", it showed nothing.
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25298
Location: The netherlands

PostPosted: Sun Feb 25, 2024 10:47 am    Post subject: Reply with quote

1: set a breakpoint at VCRUNTIME140.memcmp+E0
all addresses from rcx to rcx+r8 will get written and all addresses from rdx to rdx+r8 will get read

2: you don't want to, this instruction is a generic copy mem function

you'll have more luck with the s or ipt button to show the trace at execution time

_________________
Do not ask me about online cheats. I don't know any and wont help finding them.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking 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