Вот у меня есть такой вопрос: на лекции по программированию препод сказал что можно сломать ОС(может не ОС а компьютер) в языке Си при помощи 2-ух функций printf и scanf, используя то что СИ не проверяет выход за пределы массива, типо мы можем обратиться к любой ячейке в памяти компьютера и записать в нее произвольное знаечение... Можно ли такое провернуть? НО он говорил это про чистый СИ не С++, так как С работает с железом напрямую
http://en.wikipedia.org/wiki/Stack_buffer_overflow
Это срыв стэка?
Добавлено shplint, [mergetime]1196797307[/mergetime]
Да еще написано на английском языке, нифига не понятно...Вывод-ребята, учите английский язык!!!
Правильно - переполнение стека. Такое прокатит, пожалуй что в досе или win9x. NT и старше не дадут приложению изменить память другого приложения или системы (исключение могут составить драйверы и всякие отладчики). Другой момент, что если программа (чужая) использует сканф и не проверяет длинну введенной последовательности, в ней можно вызвать пореполнение буфера, выполнив таким образом произвольный код. Если у программы есть особые привилегии ими можно завладеть. На этом, собственно, и основано подавляющее большинство взломов.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)