Использование Windbg script Я хочу проверить наличие определенной строки в аргументе любой функции.
0:000> g
Breakpoint 0 hit
eax=00000001 ebx=00000000 ecx=00422fc6 edx=00000000 esi=03d574e8 edi=00000005
eip=76d8fd3f esp=000cf7ac ebp=000cf7c8 iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202
USER32!MessageBoxW:
76d8fd3f 8bff mov edi,edi
0:000> du poi(esp+8)
03d574e8 "Cannot find "hello""
Здесь второй параметр, переданный в MessageBoxW
, равен Cannot find "hello"
.
Поэтому я хочу проверить наличие строки hello
внутри второго аргумента.
Основываясь на этой статье MSDN, я пробовал следующие команды, но не работал:
0:000> r $t1 = poi(esp+8)
0:000> as /mu $MSG $t1
0:000> .echo ${$MSG}
Cannot find "hello"
0:000> .if ($spat(@"${MSG}","*hello*") == 0) {.echo NotFound} .else {.echo Found}
NotFound
Он должен вернуться Found
Я думаю!
Спасибо.