Достали вирусы? Вините во всём фон Неймана!

Jun 17, 2011 16:50

Доброе время суток. Ползая по интернету, наткнулся на такую вот статейку.
При прочтении возникает неоднозначное ощущение - вроде каждый абзац в отдельности понятен, но вот смысл текста в целом получается весьма странным. Автор воспевает гарвардскую архитектуру, но совершенно упускает из виду то, что она более пригодна для специализированных ( Read more... )

Leave a comment

Comments 23

poor_sysadm June 17 2011, 16:16:40 UTC
ну это что-то типа того: "холодильники ломаются => давайте не будем пользоваться холодильниками"

Reply


vlsergey June 17 2011, 16:25:17 UTC
Скорее вы неправильно понимаете слово "фричество".

Автор не делает ошибок, он просто рассказывает о том, что могло бы быть по другому. Но не стало. И почему не стало тоже рассказывает.

Reply

ctype June 17 2011, 16:36:03 UTC
ну не стало, потому что и не могло стать - ибо неудобно для обычных задач.

Reply

shark_ru June 20 2011, 07:25:33 UTC
Как часто в "Обычных Задачах"(тм) используются возможности модификации кода и исполнения данных?

Reply

ext_256967 June 20 2011, 08:05:06 UTC
Подгрузка на лету плагинов (драйверов устройств, или ещё чего) не считается?

Reply


ctype June 17 2011, 16:42:31 UTC
ну вообще-то проблема существует, фричество скорее уж в воспевании "панацейности" предложенных альтернатив

Reply


abs8192 June 17 2011, 17:21:51 UTC
Фричество тут в незнании современного состояния дел.
1) Память компьютеров давным давно поделена на страницы.
2) Страницы памяти процесса объединяются как минимум в два различных сегмента - данных и кода. (На самом деле есть ещё стек как разновидность данных).
3) Сегмент кода закрыт на запись, его нельзя модифицировать во время выполнения программы. Это уже давным-давно не классическая фон-Неймановская архитектура.

По-крайней мере так обстоят дела в ОС UNIX.

Reply

abs8192 June 17 2011, 17:23:52 UTC
Ах да: и стало быть имеет аппаратную поддержку в Memory Management Unit того или иного типа - на разных платформах разную. Но функционал "закрыть страницу на запись" есть практически везде.

Reply

abs8192 June 17 2011, 17:27:42 UTC
И ещё: вирусы как правило не модифицируют код программы, а передают управление в троянский код, размещённый в сегменте данных (точнее - в стеке). Это несколько иная проблема: что можно выполнять программу в сегменте данных. Во многих современных архитектурах это тоже уже запрещено.

Reply

arifg June 17 2011, 18:52:22 UTC
Это происходит потому, что система зачастую просто позволяет им это сделать. Вот, например, в Windows есть целый набор абсолютно легальных API функций, позволяющих писать в память чужого процесса, читать оттуда и запускать внедренный код на выполнение (ReadProcessMemory, Write ProcessMemory и CreateRemoteThread). Также есть целый средства для управления виртуальной паматью, например VirtualProtect. Их вполне могло бы не быть, и тогда вирусы писать было бы чуть-чуть сложнее, однако они есть, потому, что без них жилось бы сложнее.

Reply


svchost1101 June 17 2011, 17:30:01 UTC
не фричество, автор тоже некоторых вещей недопонимает и просто посчитал нужным аккуратно умолчать.

Reply


Leave a comment

Up