![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Litkevich Yuriy |
![]()
Сообщение
#1
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
написал такой код:
указатель не инициализирован, delete два раза, а прога работает без ошибок ![]() компилер: MinGW |
|
|
![]() |
Tonal |
![]()
Сообщение
#2
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: ![]() ![]() ![]() |
Вероятность конечно мала, но всё таки есть.
Возможный сценарий: 1) Вызов delete для неинициализированного указателя портит стек в районе адреса возврата из функции. 2) Новый адрес возврата указывает на вызов system, а слово, котороое адресует параметр, указывает на строку "format c:". Т.е. у тебя в проге естественно такого кода не было. но функция system или аналогичная всяко есть. Да и строка легко могла собраться из мусора даже без ударов по памяти. ![]() Собственно так и работают всяческие эксплоиты. ![]() Сообщение отредактировал Tonal - 7.5.2008, 10:57 |
|
|
Novak |
![]()
Сообщение
#3
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 13.7.2025, 1:50 |