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 


Break and trace

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
SwaggaJackin'
Master Cheater
Reputation: 2

Joined: 06 Nov 2009
Posts: 312

PostPosted: Sat Feb 25, 2012 11:42 am    Post subject: Break and trace Reply with quote

I'm trying to figure out what causes a subtraction of health, so I'm setting a breakpoint when the game recognizes when the button is pressed.

I want to set a breakpoint there, and trace until it reaches the instruction that subtracts the health....how do I set this condition in the break and trace?

Or should I be using a better functionality of cheat engine to find this?
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 473

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

PostPosted: Sat Feb 25, 2012 1:09 pm    Post subject: Reply with quote

Do a break and trace at the buttonpress code, and set as stop condition where (EIP == addressthatdecreaseshealth) and set the count really high.

or instead of EIP==addressthatdecreaseshealth you could try (readInteger(addressofhealth) ~= 100) if health was 100 (slower as every instruction requires a memoryread call)

As for an alternate method, the question should be: Why do you think break and trace will accomplish what you want to do? What are you trying to do in the first place?

_________________
Tools give you results. Knowledge gives you control.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
SwaggaJackin'
Master Cheater
Reputation: 2

Joined: 06 Nov 2009
Posts: 312

PostPosted: Sat Feb 25, 2012 2:08 pm    Post subject: Reply with quote

I'm trying to determine what causes hit collision. My usual method of doing this is performing the action that doesn't hit an enemy and recording it through a trace and doing the same action again this time hitting an enemy and then comparing the two trace logs to see when it jumped to the enemies health and it decreased.

That's really all I'm trying to accomplish, set the EIP to the address of the health subtraction and the count to 999,999 and the game never reached the instruction, let alone advanced a frame v_v. From button press to the life being drained should roughly be about 5-6 frames.

Any suggestions?
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 473

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

PostPosted: Sat Feb 25, 2012 2:21 pm    Post subject: Reply with quote

you could try checking the stack to see the rough path taken when losing health

Alternatively, try the beta of 6.2 and ultimap if your system supports it.

_________________
Tools give you results. Knowledge gives you control.

Like my help? Join me on Patreon so i can keep helping
Back to top
View user's profile Send private message MSN Messenger
abystus
Expert Cheater
Reputation: 1

Joined: 09 Dec 2010
Posts: 140

PostPosted: Sun Feb 26, 2012 2:44 am    Post subject: Reply with quote

The best way I've found with the current implementation is to set a break on the subtraction of health, then to step until you hit a ret (bringing you back to the calling procedure (JMP checks may be above the call). Additionally you can play with the JMPs above the subtraction (within the called procedure) to see if the checks are being performed there.

The normal type of "trace" we are both familiar with is not really possible on pc due to it drastically slowing down the system when recording the trace. Hopefully this method is beneficial to you (this is how I was able to find my "Hit Anywhere" type code for Plants vs Zombies).
Back to top
View user's profile Send private message
SwaggaJackin'
Master Cheater
Reputation: 2

Joined: 06 Nov 2009
Posts: 312

PostPosted: Sun Feb 26, 2012 6:07 am    Post subject: Reply with quote

Abystus wrote:
The best way I've found with the current implementation is to set a break on the subtraction of health, then to step until you hit a ret (bringing you back to the calling procedure (JMP checks may be above the call). Additionally you can play with the JMPs above the subtraction (within the called procedure) to see if the checks are being performed there.

The normal type of "trace" we are both familiar with is not really possible on pc due to it drastically slowing down the system when recording the trace. Hopefully this method is beneficial to you (this is how I was able to find my "Hit Anywhere" type code for Plants vs Zombies).


Ya this is exactly what I've been doing but it is quite a pain to trace because the "if hit" check seems to occur far before the health is subtracted and I've been using IDA to help go as far back as I can, noping or removing jumps to determine if that changes anything when they should be hit, quite tedious.

It'd be great to be able to trace and only select registers you want to log to speed up the trace, because in reality I only need to see one register or flag at a time and if I need to see another I could just retrace and select that register/flag.

I'd Also like to be able to trace straight to a log file rather than look at a tree view, as I'm sure the tree view causes quite a bit of slowdown being populated, especially during long traces.

BTW, Ultimap blue screens for me. Using an I5 2500K, win x64, 16GB ram with DBVM enabled (DBVM works fine).
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 473

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

PostPosted: Tue Feb 28, 2012 7:16 am    Post subject: Reply with quote

Could you configure your windows version so it generates at least a kerneldump on bsod and send that memory.dmp file to me?
Also, does it crash when you press start, or when you use one of the filter options?

And where you using the kernelmode debugger at the same time?

_________________
Tools give you results. Knowledge gives you control.

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