Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Наиболее настырные вирусы могут поражать и секции неинициализированных данных. Нет, это не ошибка, такие вирусы действительно есть. Их появление объясняется тем обстоятельством, что полноценный вирус в «дырах», оставшихся от выравнивания, разместить все-таки трудно, но вот вирусный загрузчик туда влезает вполне. Секции неинициализированных данных, строго говоря, не только не обязаны загружаться с диска в память (хотя некоторые UNIX их все-таки загружают), но могут вообще отсутствовать в файле, динамически создаваясь системным загрузчиком на лету. Однако вирус и не собирается искать их в памяти! Вместо этого он вручную считывает их непосредственно с самого зараженного файла (правда, в некоторых случаях доступ к текущему выполняемому файлу предусмотрительно блокируется операционной системой).
На первый взгляд, помещение вирусом своего тела в секции неинициализированных данных ничего не меняет (если даже не демаскирует вирус), но при попытке поимки такого вируса за хвост он выскользнет из рук. Секция неинициализированных данных визуально ничем не отличается от всех остальных секций файла, и содержать она может все, что угодно: от длинной серии нулей, до копирайтов разработчика. В частности, создатели дистрибутива FreeBSD 4.5 именно так и поступают (см. листинг 8).
Листинг 8. Так выглядит секция .bss большинства файлов из комплекта поставки Free BSD
0000E530: 00 00 00 00 FF FF FF FF │ 00 00 00 00 FF FF FF FF
0000E540: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
0000E550: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
0000E560: 00 47 43 43 3A 20 28 47 │ 4E 55 29 20 63 20 32 2E GCC: (GNU) c 2.
0000E570: 39 35 2E 33 20 32 30 30 │ 31 30 33 31 35 20 28 72 95.3 20010315 (r
0000E580: 65 6C 65 61 73 65 29 20 │ 5B 46 72 65 65 42 53 44 elease) [FreeBSD
…
0000F2B0: 4E 55 29 20 63 20 32 2E │ 39 35 2E 33 20 32 30 30 NU) c 2.95.3 200
0000F2C0: 31 30 33 31 35 20 28 72 │ 65 6C 65 61 73 65 29 20 10315 (release)
0000F2D0: 5B 46 72 65 65 42 53 44 │ 5D 00 08 00 00 00 00 00 [FreeBSD] ◘