View previous topic :: View next topic |
Author |
Message |
Telecide Cheater
Reputation: 0
Joined: 30 Sep 2012 Posts: 42
|
Posted: Thu Dec 05, 2013 7:51 pm Post subject: Conditional Breakpoints |
|
|
Hi folks. I'm having a bit of trouble with this. I've managed to get it to break on a simple condition like "EDX == 0x0ED93C50", But I can't figure out how to something like [EDX] == 0x32. I assume I have to use the complex tab, but haven't managed to get it to work. If I have to type a whole lua if... then statement, could I have an example? I haven't tackled any lua stuf yet. Thanks.
Also I've tried using "al", but that doesn't seem to work. Do you have to stick to the full registers like EAX, EBX, etc.?
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25796 Location: The netherlands
|
Posted: Thu Dec 05, 2013 8:51 pm Post subject: |
|
|
if [EDX] points to a 4 byte value then
Code: |
readInteger(EDX)==0x32
|
If it's a 1 byte value, then
Code: |
bAnd(readInteger(EDX),0xff)==0x32
|
Also,
AL=bAnd(EAX,0xff)
AH=bShr(bAnd(EAX,0xffff), 8)
AX=bAnd(EAX,0xffff)
_________________
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 |
|
 |
Telecide Cheater
Reputation: 0
Joined: 30 Sep 2012 Posts: 42
|
Posted: Thu Dec 05, 2013 9:48 pm Post subject: |
|
|
Thanks!
Is that all you write in the condition box? Is it on "easy" or "complex"? Tried it a few times, but no break yet.
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25796 Location: The netherlands
|
Posted: Thu Dec 05, 2013 9:56 pm Post subject: |
|
|
That's on easy. On complex you need to write a multiline script that eventually returns true or false
Remember that the condition check is done before the instruction is executed.
so the address EDX points to isn't yet 0x32 when the check is done. So set the breakpoint after it
_________________
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 |
|
 |
Telecide Cheater
Reputation: 0
Joined: 30 Sep 2012 Posts: 42
|
Posted: Thu Dec 05, 2013 10:05 pm Post subject: |
|
|
Yes!! It worked! Thank you. It's great to be able to get help from the actual creator of this thing. Hacking is becoming more fun than the game itself, heheh.
Edit:
One last question. Can you use an offset like
readInteger(ECX+00000124) == 0x15065874
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25796 Location: The netherlands
|
Posted: Fri Dec 06, 2013 6:19 am Post subject: |
|
|
Yes, but i assume you'd rather do 0x124 else it would be handled as a decimal offset
_________________
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 |
|
 |
0xDEAD10CC How do I cheat?
Reputation: 1
Joined: 08 Feb 2015 Posts: 8
|
Posted: Tue Sep 08, 2020 6:31 pm Post subject: |
|
|
Sorry for necroposting but I do have some issues with conditions for breakpoint. Maybe someone helps me out?
I found an instruction of interest by data breakpoint on 'write access' like this:
This is instruction within the loop and I try to break condition (through 'break and trace instructions') on that instruction when r14 is pointing to specific address. I deduct the offset of 0x40 from the address and try to match r14 to exact value like this:
or this:
Neither of them works. Without condition code breaks just fine. Also the value of interest is changed.
How do I set up condition properly?
|
|
Back to top |
|
 |
Dark Byte Site Admin
Reputation: 470
Joined: 09 May 2003 Posts: 25796 Location: The netherlands
|
Posted: Wed Sep 09, 2020 1:18 am Post subject: |
|
|
R14 not r14
_________________
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 |
|
 |
|