Windbg条件断点忽略条件本身

Yak*_*men 2 debugging windbg breakpoints ida conditional-breakpoint

我正在调试没有源代码的应用程序,我使用IDA PRO + Windbg作为调试器.我正在接受CloseHandle使用特定句柄值的调用,例如handle = 0x14

我把条件断点像这样:

bp kernel32!CloseHandle "j (poi(@esp+4)=0x00000014) ''; 'gc'"

断点正常设置,但是每次调用都会中断CloseHandle,与我正在尝试的相反,只有在第一个参数等于时才会中断0x14

bla*_*abb 5

你有一个缺失= 条件等于运算符需要两个==不是一个=

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
Run Code Online (Sandbox Code Playgroud)