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 


data breakpoint condition?

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

Joined: 29 Dec 2013
Posts: 13

PostPosted: Sun Jun 21, 2020 9:11 pm    Post subject: data breakpoint condition? Reply with quote

So I know I can place breakpoint conditions on instructions, but what about data? Say I want to break at address 7BAB96D290 on Write but only if the value written is 1.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 153

Joined: 06 Jul 2014
Posts: 4733

PostPosted: Sun Jun 21, 2020 10:58 pm    Post subject: Reply with quote

Go to the breakpoint list window (memory viewer -> view -> "breakpoints" or something) and right click on the one you want to add a condition to. You can do the same in the hex view (bottom half of memory viewer). Pause the game beforehand if you really don't want the breakpoint to trigger before you've set a condition on it (advanced options window).
When writing conditions, keep in mind data breakpoints trigger after the instruction has been executed.

_________________
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
CERuleZ
Newbie cheater
Reputation: 0

Joined: 29 Dec 2013
Posts: 13

PostPosted: Mon Jun 22, 2020 4:00 am    Post subject: Reply with quote

@ParkourPenguin Thanks! Is there an easy way to know what functions are calling another function? Say I have functions 1,2,3,4,5. Functions 2 and 3 call 5. I'd like to log functions 2 and 3. Or log the address where they call function 5. I came up with a way to do this but it's not easy...I was wondering if there's a better way lol.
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 153

Joined: 06 Jul 2014
Posts: 4733

PostPosted: Mon Jun 22, 2020 10:09 am    Post subject: Reply with quote

CE has a dissect code feature that looks for branches (call, jmp, jcc) among other things. If the code is in a module, use memory viewer -> Tools -> Dissect code; if it's in dynamically allocated memory, use Lua:
Code:
getDissectCode().dissect(0x145AC000, 0x14000)  -- (base, size)
(memory region information can be found by going to memory viewer -> View -> Memory Regions)

Dissect code won't catch indirect branches that go through a register. e.g. "call eax".

You could set a breakpoint at the first instruction and log the return address on the stack. Of course the code will need to be executed in order for you to see it. (tail calls are another problem, but they're rare)

_________________
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
CERuleZ
Newbie cheater
Reputation: 0

Joined: 29 Dec 2013
Posts: 13

PostPosted: Wed Jun 24, 2020 7:03 pm    Post subject: Reply with quote

Thanks I managed to do it with Ultimap. God ultimap is so good, I don't think I'll be using regular scans anymore.
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