I am trying to solve a GUI based crackme. https://crackmes.one/crackme/5c68758633c5d4776a837cc4 so that I learn security. I want to set a conditional Break point on user32.CallWindowProcA. Microsoft Documents this function as follows

LRESULT CallWindowProcA(
  WNDPROC lpPrevWndFunc,
  HWND    hWnd,
  UINT    Msg,
  WPARAM  wParam,
  LPARAM  lParam

I set the following conditional break points for WM_LBUTTONDOWN (0x202) as follows. But they are not being hit when I click the button :( help

Type     Address  Module/Label/ State   Disassembly                            Hits Summary                                              
         0041A995 crackme-4.exe Enabled push ebp                               3255 sub_41a995 ?dialogProc?, breakif(arg.get(1) == 0x202)
         0041B9A2 crackme-4.exe Enabled call dword ptr ds:[<&CallWindowProcA>] 1713 breakif((1:[esp+0xc] == 0x202) )
         0041F086 crackme-4.exe Enabled call dword ptr ds:[<&CallWindowProcA>] 0    breakif((1:[esp+0xc] == 0x202))
         0041F11B crackme-4.exe Enabled call dword ptr ds:[<&CallWindowProcA>] 273  breakif((1:[esp+0xc] == 0x202))
         00437E9E crackme-4.exe Enabled mov byte ptr ss:[ebp-4],21             0    
         749055C0 user32.dll    Enabled mov edi,edi                            636  breakif(arg.get(1) == 0x202)

I have read through and tried x64dbg - Conditional breakpoint based on function argument but i could not get it to work for me.

1 Answer 1


I had the same issue some time ago, updating to the latest x64dbg version solved that problem. You also have to set bps like that:

[esp+0xC] == 0x202

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.