Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Программирование _ Ломаем ОС при помощи printf\scanf в СИ

Автор: shplint Понедельник, 03 Декабря 2007, 22:36

Вот у меня есть такой вопрос: на лекции по программированию препод сказал что можно сломать ОС(может не ОС а компьютер) в языке Си при помощи 2-ух функций printf и scanf, используя то что СИ не проверяет выход за пределы массива, типо мы можем обратиться к любой ячейке в памяти компьютера и записать в нее произвольное знаечение... Можно ли такое провернуть? НО он говорил это про чистый СИ не С++, так как С работает с железом напрямую

Автор: pan Вторник, 04 Декабря 2007, 9:39

http://en.wikipedia.org/wiki/Stack_buffer_overflow

Автор: shplint Вторник, 04 Декабря 2007, 22:41

Это срыв стэка?

Добавлено shplint, [mergetime]1196797307[/mergetime]
Да еще написано на английском языке, нифига не понятно...Вывод-ребята, учите английский язык!!!

Автор: az Понедельник, 10 Декабря 2007, 21:37

Правильно - переполнение стека. Такое прокатит, пожалуй что в досе или win9x. NT и старше не дадут приложению изменить память другого приложения или системы (исключение могут составить драйверы и всякие отладчики). Другой момент, что если программа (чужая) использует сканф и не проверяет длинну введенной последовательности, в ней можно вызвать пореполнение буфера, выполнив таким образом произвольный код. Если у программы есть особые привилегии ими можно завладеть. На этом, собственно, и основано подавляющее большинство взломов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)