-
-
[求助]windbg条件断点设置问题2
-
发表于:
2015-3-21 20:47
4636
-
前几天在坛里问了个关于windbg设置字符串断点的问题,非常感谢@啤酒肚给了我不少指导,
但仍有存在两个问题,没弄明白,本人喜欢刨根问底,还请大家多指点啊,先谢了!
情况如下:
想在打开文件C:\1.txt时,断下来,利用windbg设置条件断点如下:
bp kernel32!CreateFileW "
as /mu ${/v:filename} poi(esp+4);
.block{
.if ($sicmp(\"${filename}\", \"c:\\1.txt\") == 0){
.echo \"open 1.txt\";
r
}
}
ad ${/v:filename};
gc;
"
问题:
1.就是不明白为什么最后需要清掉别名?不是如果别名已经定义,再定义的话会覆盖掉之前的吗?
2.当打开C盘时,此时的filename为C:\,此时$sicmp(\"${filename}\", \"c:\\1.txt\")
就相当于$sicmp("C:\", "C:\1.txt"),此时C:\"中的\"会转义成",因此会出现$sicmp语句
会出现语法错误,请问有什么办法解决没,本文尝试在"${filename}"加@禁止转义,但仍有
问题。
加@的方法可以解决下面的问题,如:
$sicmp(@"C:\", @"c:\1.txt")此时是正确的,但由于在设置条件断点时,后面的语句本身在
""里面,所以@的方式似乎不行。
请问大家有没有解决的好方法。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)