Debugging Windbg条件断点忽略条件本身

Debugging Windbg条件断点忽略条件本身,debugging,windbg,breakpoints,ida,conditional-breakpoint,Debugging,Windbg,Breakpoints,Ida,Conditional Breakpoint,我正在调试一个没有源代码的应用程序,我使用IDA PRO+Windbg作为调试器。我正在尝试用特定的句柄值捕捉对CloseHandle的调用,例如handle=0x14 我放置了一个条件断点,如下所示: bp内核32!CloseHandle“j(poi(@esp+4)=0x00000014);“gc” 断点设置正常,但每次调用CloseHandle时它都会中断,与我尝试的相反,仅当第一个参数等于0x14时才会中断。您缺少一个=条件等于运算符需要两个==而不是一个单个= 0:000> bp

我正在调试一个没有源代码的应用程序,我使用IDA PRO+Windbg作为调试器。我正在尝试用特定的句柄值捕捉对
CloseHandle
的调用,例如handle=0x14

我放置了一个条件断点,如下所示:

bp内核32!CloseHandle“j(poi(@esp+4)=0x00000014);“gc”


断点设置正常,但每次调用
CloseHandle
时它都会中断,与我尝试的相反,仅当第一个参数等于
0x14
时才会中断。您缺少一个=条件等于运算符需要两个==而不是一个单个=

0:000> bp kernel32!CloseHandle ".if(poi(@esp+4)!=0xcc) {? dwo(@esp+4);gc}.else{? dwo(@esp+4);.echo our handle;gc}"
0:000> g

Evaluate expression: 60 = 0000003c
Evaluate expression: 56 = 00000038

Evaluate expression: 204 = 000000cc <------
our handle <-------------

Evaluate expression: 200 = 000000c8    
Evaluate expression: 256 = 00000100   
Evaluate expression: 272 = 00000110    
Evaluate expression: 280 = 00000118    
Evaluate expression: 308 = 00000134
Evaluate expression: 312 = 00000138
Evaluate expression: 308 = 00000134
Evaluate expression: 324 = 00000144
Evaluate expression: 328 = 00000148
Evaluate expression: 324 = 00000144
0:000>bp内核32!CloseHandle“.if(poi(@esp+4)!=0xcc){?dwo(@esp+4);gc}。else{?dwo(@esp+4);.echo我们的句柄;gc}”
0:000>g
计算表达式:60=0000003c
计算表达式:56=00000038

求值表达式:204=000000cc您需要一个条件等于==而不是单个=