Стэк и переполнение, стэк и системные данные?:)

Тема в разделе "WASM.BEGINNERS", создана пользователем Luzer, 2 сен 2009.

  1. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    Здрасть. Я случайно прокрутил в отладчике стэковую область, далековато в верх, а там разные значения. Некоторые сложно сказать, что за значения, а вот те, что повидимому являются адресами текста в памяти, т.к оли рядом рисует текст, похожи на системные переменные.
    Хоть и это давольно таки далеко, например:
    0012FDDC 77739A78 ntdll.RtlUserThreadStart первое строковое отображение,
    а при старте : 0012FF8C 76E04911 RETURN to kernel32.76E04911
    получается 432 байт памяти

    Еще ниже в стеке какие-то функции в ntdll, потом идет виндовая директория и т.д
    Посему вопрос, так ли критична та информация, что идет ниже в стеке(по оли идет вверх)?

    З.Ы:Создавал локальные переменные по 256 двордов, что получается куда больше 432 байт, и приложение работает нормально.
    З.Ы.Ы: Если это все же критично и чудом мое приложение не вылетало, то как можно повысить стековую память?:)
     
  2. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    нет. Критично только то, что выше текущего esp (т.е. "ниже" в Оле)
     
  3. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    Это хорошо,спасибо, но все равно интересно, что там за данные и кем оставлены. раз не критично, значит просто следы загрузчика, или еще чего )
     
  4. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    Luzer
    Следы загрузчика и отладчика.
     
  5. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Это следы загрузчика и кода, выполняемого при инициализации подгружаемых dll
    Нормальные отладчики в стеке отлаживаемой проги не "гадят" ;)
     
  6. Luzer

    Luzer New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2005
    Сообщения:
    95
    Т.е данные могут быть затерты, если я буду подгружать длл?
     
  7. IceT

    IceT IceT

    Публикаций:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    233
    Адрес:
    RU
    Нет.. по идее не положено обращаться/использовать к стеку по адресам выше ESP + фрейм данной ф-ии (EBP).
     
  8. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Luzer
    Стек ниже текущей границы, а она в регистре Esp может содержать произвольные значения как сказали. Если поток чтото прерывает, обработчик использует стек ниже, ато например обработка апк, исключений и пр. Что интересно в XP ядро при доставке начальной апк(LdrInitializeThunk()) не очищает резервные поля контекста и он содержит часть ядерного стека на момент формирования контекста, поэтому это не следы руткита, а бага в ядре.