Holmogorov.ru

Блог
Валентина
Холмогорова

Лучше меньше, да лучше

В те времена, когда я впервые сел за клавиатуру компьютера, никто специально не учил нас экономить аппаратные ресурсы при написании программ. Это попросту никому не приходило в голову: мой первый «настоящий» ПК был оснащен всего лишь 640 килобайтами оперативной памяти, а жесткого диска на нем не было вовсе. На пятидюймовую дискету ёмкостью 720 килобайт помещалась операционная система, файловый менеджер и простенький текстовый редактор вроде «мультиэдита» или «фотона». Компилятор «турбо паскаля» жил на другой дискете. Если не оптимизировать код, приложение вылетало с ошибкой «Outofmemory». Даже мобильный телефон, лежащий сейчас в моем кармане, располагает большим объемом оперативки, чем та старенькая советская «Искра».

Сейчас за эффективным использованием аппаратных ресурсов не следит практически никто. Драйвер для принтера в архиве объемом в 120 мегабайт — скорее правило, чем исключение. Приложения для Android тоже «пухнут» как на дрожжах, с трудом поспевая за эволюцией аппаратных платформ. Пожалуй, единственные, кто сегодня всерьез задумывается об экономии ресурсов при создании программного кода — это вирусописатели.

Средний размер современной вредоносной программы составляет 60-100 килобайт. В этом ряду есть свои исключения: например, самый компактный из известных банковских троянцев — Trojan.Hottrend — занимает всего лишь 20 килобайт, а самый крошечный из известных на сегодняшний день науке вирусов — инфектор COM-файлов — уместился и вовсе в 18 байт. Побить этот рекорд до сих пор не удалось никому. Однако в вирусной вселенной существуют не только «карлики», но и «гиганты». Самой крупной вредоносной программой считается червь Win32.HLLW.Flame, прозванный аналитиками за свой размер, составляющий более 6 мегабайт, «троянским слоном». Но абсолютное первенство  принадлежит отнюдь не ему. Аналитикам «Доктор Веб» известен написанный на Delphiбанковский троянец, относящийся к семейству Trojan.PWS.Banker, размер которого превышает 15 мегабайт. Авторы этой программы не стали размениваться на всякие технические ухищрения вроде попыток встроиться в процессы браузеров, добавить в просматриваемые пользователем веб-страницы постороннее содержимое или перехватить трафик и направить жертву на мошенническую веб-страницу. Они просто-напросто целиком подделали MicrosoftInternetExplorerвместе со всеми кнопками, панелями и меню, в надежде, что жертва не заметит подмены. Другой троянец корейского производства, написанный на VisualBasic, распространялся через торрент-сети под видом видеофильма в формате AVI. Его размер составлял… 650 мегабайт!

Но это скорее исключения из правила: злоумышленники всеми силами стараются уменьшить объем создаваемых ими вредоносных приложений, заставить их работать скрытно и незаметно. Для достижения этих целей они иногда придумывают очень интересные технологические решения. Так, разработчики одного из распространявшихся много лет назад файловых вирусов создали специальный механизм, сжимающий инфицированное приложение после его заражения — таким образом они пытались скрыть присутствие вируса, добиваясь того, чтобы размер зараженного и незараженного файла был одинаков. Однако злодеи допустили в своем коде досадную ошибку: после заражения объем инфицированного файла… становился меньше исходного. Таким образом, они получили, наверное, единственный вирус в мире, позволяющий ничего не подозревающей жертве заметно экономить дисковое пространство.

Разумеется, создателей компьютерных вирусов в большинстве стран мира преследуют по закону. Но всякий раз, выкачивая из Интернета очередной «календарик» для смартфона «весом» в 25 мегабайт, я мучительно хочу высказать одну и ту же крамольную мысль: господа программисты, кое-кому все-таки стоит поучиться у вирусописателей. Программа должна выполнять свои функции, а не поражать пользователя гигантскими размерами.

Поделиться: