Здрасть. Я случайно прокрутил в отладчике стэковую область, далековато в верх, а там разные значения. Некоторые сложно сказать, что за значения, а вот те, что повидимому являются адресами текста в памяти, т.к оли рядом рисует текст, похожи на системные переменные. Хоть и это давольно таки далеко, например: 0012FDDC 77739A78 ntdll.RtlUserThreadStart первое строковое отображение, а при старте : 0012FF8C 76E04911 RETURN to kernel32.76E04911 получается 432 байт памяти Еще ниже в стеке какие-то функции в ntdll, потом идет виндовая директория и т.д Посему вопрос, так ли критична та информация, что идет ниже в стеке(по оли идет вверх)? З.Ы:Создавал локальные переменные по 256 двордов, что получается куда больше 432 байт, и приложение работает нормально. З.Ы.Ы: Если это все же критично и чудом мое приложение не вылетало, то как можно повысить стековую память?
Это хорошо,спасибо, но все равно интересно, что там за данные и кем оставлены. раз не критично, значит просто следы загрузчика, или еще чего )
Это следы загрузчика и кода, выполняемого при инициализации подгружаемых dll Нормальные отладчики в стеке отлаживаемой проги не "гадят"
Нет.. по идее не положено обращаться/использовать к стеку по адресам выше ESP + фрейм данной ф-ии (EBP).
Luzer Стек ниже текущей границы, а она в регистре Esp может содержать произвольные значения как сказали. Если поток чтото прерывает, обработчик использует стек ниже, ато например обработка апк, исключений и пр. Что интересно в XP ядро при доставке начальной апк(LdrInitializeThunk()) не очищает резервные поля контекста и он содержит часть ядерного стека на момент формирования контекста, поэтому это не следы руткита, а бага в ядре.