Search code examples
assemblyx86x86-64ollydbg

Why conditional breakpoint doesn't work in some address in ollydbg?


I use ollydbg with a 64bit program, in some address the conditional bp work like normal bp,for example

LEA RDX,[REL 7FF7_8127B320] 
MOV RCX,QWORD PTR [RSI+3D0]
CALL 00007FF7_80805210

inside of 00007FF7_80805210

MOV QWORD PTR [RSP+8],RBX
PUSH RDI
SUB RSP,20
MOV RAX,RDX
MOV R11,R9
.
.
.

After I set the conditional bp with R9==5 at MOV R11,R9,then it break with R9 == 10 or other value just like a normal bp. It happens in the whole address inside the call,but if i set conditional bp at outside like MOV RCX,QWORD PTR [RSI+3D0] with [RSI+3D0]==19DB0258BD0 or RSI==19D_730D6DB0 it work.

I try R9 == 00000005 or R9 == 00000000_00000020 or R9 == 12345678 and other address inside the call but all fails,the conditional bp all work like a normal bp break when execute to the line.


Solution

  • Because OllyDbg64 is incomplete/frozen version. Try x64dbg.