_chkstk
routine, вызов которой вставляется компилятором C когда нужно объявить локальную переменную больше 4Кб (8Кб в 64-битных системах):_chkstk (wwlib+0x4571):
push ecx
lea ecx,[esp+4]
sub ecx,eax
sbb eax,eax
not eax
and ecx,eax
mov eax,esp
and eax,0FFFFF000h
.loop (wwlib+0x4585):
cmp ecx,eax
jae .leave_loop (wwlib+0x4592)
sub eax,1000h
test dword ptr [eax],eax
jmp .loop (wwlib+0x4585)
.leave_loop (wwlib+0x4592):
mov eax,ecx
pop ecx
xchg eax,esp
mov eax,dword ptr [eax]
mov dword ptr [esp],eax
ret
wwlib!GetAllocCounters+0x5992f
хочет 5110h места на стеке, и в результате работы _chkstk
routine мы получаем Stack overflow - code c00000fd
вследствие исчерпания стека. Такие ошибки в комбинации с другими недочетами в коде при некоторых условиях действительно могут быть использовано для выполнения произвольного кода, но «надо что бы сошлись планеты». Копаю дальше.