Re: 关于条件断点之字符串比较
WinDbg
关于条件断点之字符串比较
Crazy0root
2015-03-20, 06:34 上午
先起了个cmd,然后windbg attach这个cmd进程,设置条件断点如下:
0:000> bl
0 e 7577204d 0001 (0001) 0:**** kernel32!CreateProcessW "r @$t1=poi(esp+4); as /mu ${/v:pszCP} @$t1;
.if($spat(\"${pszCP}\", \"*epad.exe\")){kv; du @$t1} .else{gc}"
就是想在cmd中启动notepad.exe时断下来。
在cmd中交替启动calc.exe和notepad.exe发现两个个问题(见图):
1.当前一次断在创建notepad进程后,下一次启动calc.exe时,也会断下来
2.当前一次运行的是calc.exe没有断下时,下一次运行notepad也不断下来,再下一次才能断下
请问大家有没有出现这个诡异的问题?
Re: 关于条件断点之字符串比较
Crazy0root
2015-03-20, 06:37 上午
试着用ad清了下别名,反而启动calc.exe都断不下来了,但输出$spat()比较的结果又没问题啊~(如图所示)
bp命令如下:
bp kernel32!CreateProcessW "r @$t1=@rcx;
as /mu ${/v:pszKC} @$t1;
.if($spat(\"${pszKC}\", \"*calc.exe\")){du @rcx; kv; ad ${/v:pszKC}}
.else{? $spat(\"${pszKC}\", \"*calc.exe\"); du rcx; ad ${/v:pszKC};gc}"
Re: 关于条件断点之字符串比较
Crazy0root
2015-03-20, 18:12 下午
设置两个断点,第一个处理别名,第二个真断,测试可以直接断下来,没有出现断在下一个的问题!
bp kernel32!CreateProcessW "r @$t1=poi(esp+4); as /mu ${/v:pszCP} @$t1; gc"
bp kernel32!CreateProcessW+2 ".if($spat(\"${pszCP}\", \"*epad.exe\")){kv; du @$t1} .else{gc}"
请问各位,有没有直接的方法!!!