Компьютерные вирусы. Вредоносные программы и вирусы

Пользуясь советами "Как очистить зараженный компьютер", данными в этой статье, вы сможете удалить любой тип вредоносного ПО с вашего компьютера и вернуть его в рабочее состояние

1. Убедитесь, что компьютер действительно заражён

Прежде чем пытаться убрать какое-либо заражение с Вашего компьютера, нужно удостовериться, что компьютер в самом деле заражен. Чтобы сделать это, пожалуйста, обратитесь к рекомендациям, которые я даю в статье " ". Если в результате этого действительно будет видно, что ваш компьютер заражен, тогда продолжайте выполнять шаги следующего раздела. Следите за тем, чтобы вы выполняли их в должной последовательности.

2. Как очистить ваш компьютер и убедиться, что он действительно чист

Пожалуйста отметьте, что опытные пользователи здесь просто могут перейти к последней части о том, и очистить компьютер соответствующим образом. Это наиболее действенный подход, но он также один из самых трудоемких. Впрочем, при необходимости вы можете перейти сразу к тому разделу и затем снова вернуться обратно к началу, если заражение не было удалено полностью.

2.1 Очищение компьютера с помощью CCE и TDSSKiller

Загрузите Comodo Cleaning Essentials (CCE) вот с этой страницы . Убедитесь, что выбрали подходящую версию для своей операционной системы. Если вы не уверены, под управлением какой операционной системы работает ваш компьютер - 32-битной или 64-битной, - см. . Также, загрузите Kaspersky TDSSKiller вот с этой страницы . Если ни одну из этих программ вам не удастся скачать, или если не будет работать ваше интернет-соединение, вам нужно будет сделать это с помощью другого компьютера и перенести на зараженный, используя флеш-накопитель. Удостоверьтесь, что на флешке не было никаких других файлов. Будьте осторожны с флеш-устройством, поскольку вредоносное ПО может заразить его, когда вы его вставляете в компьютер. Следовательно, не подключайте его ни к каким другим компьютерам после переноса этих программ. Кроме того, я хотел бы заметить, что обе программы портативны. Это означает, что как только вы закончите их использовать, вам не придется их деинсталлировать. Просто удалите их папки, и они будут удалены.

После того, как вы скачали CCE, распакуйте файл, откройте папку и дважды щелкните файл с именем "CCE". Откроется основное окно программы Comodo Cleaning Essentials. Если открытие не произошло, нажмите клавишу Shift и, удерживая ее, дважды щелкните файл с именем "CCE". После того, как CCE успешно откроется, вы можете отпустить клавишу Shift. Однако, не отпускайте ее, пока программа полностью не загрузится в память. Если вы отпустите ее хотя бы во время запроса UAC, она не сможет корректно открыться даже форсированным методом. Удержание Shift поможет ей открыться даже на сильно зараженных компьютерах. Она делает это, подавляя многие ненужные процессы, которые могли помешать ее запуску. Если это все же не поможет ее запустить, тогда загрузите и запустите программу под названием RKill. Ее можно скачать вот с этой страницы . Эта программа остановит известные вредоносные процессы. Таким образом, после ее запуска CCE должна превосходно запуститься.

Как только она будет запущена, в CCE проведите "Разумное" сканирование (Smart Scan) и поместите в карантин все, что она обнаружит. Эта программа также просматривает системные изменения, которые могли быть произведены вредоносным ПО. Они будут показаны в результатах. Я бы посоветовал разрешить программе исправить и это тоже. Перезапустите компьютер, когда будет выведен запрос. После перезапуска компьютера запустите Kaspersky TDSSKiller, выполните сканирование и изолируйте в карантине то, что будет найдено.

Кроме того, если Ваше интернет-соединение ранее не работало, проверьте, работает ли оно теперь. Действующее соединение с интернетом потребуется для дальнейших шагов этого раздела.

Как только сканирование CCE завершится и вы убедитесь, что Ваше интернет-соединение работает, снова откройте CCE. Стоит надеяться, что на этот раз она откроется, но если нет, тогда откройте ее, удерживая клавишу Shift. Затем из меню "Инструменты" ("Tools") в CCE откройте KillSwitch. В KillSwitch в меню "Вид" ("View") выберите опцию "Скрыть безопасные процессы" ("Hide Safe Processes"). Затем щелкните правой кнопкой на всех процессах, которые отмечены как подозрительные или опасные, и выберите опцию их удаления. Вы должны также щелкнуть правой кнопкой на любых неизвестных процессах, которые остались, и выбрать опцию "Завершить процесс" ("Kill Process"). Не удаляйте процессы, отмеченные как FLS.Unknown. Далее, в CCE из меню инструментов запустите Autorun Analyzer и выберите опцию "Скрыть безопасные элементы" ("Hide Safe Entries") в меню "Вид" ("View"). Затем отключите любые элементы, принадлежащие файлам, которые отмечены как подозрительные или опасные. Вы можете сделать это, сняв флажки рядом с элементами. Вы должны также отключить все элементы, отмеченные как FLS.Unknown, но которые по-вашему, скорее всего, принадлежат вредоносным программам. Не удаляйте никаких элементов.

Теперь перезапустите компьютер. После перезагрузки снова проверьте свой компьютер, используя совет, который я даю в статье " ". Если все хорошо, тогда вы можете перейти к разделу " ". Помните, что отключенные записи реестра не опасны. Кроме того, отметьте, что даже если Ваш компьютер оказался чистым от активных заражений, на нем все еще могут быть части вредоносного ПО. Они не опасны, но не удивляйтесь, если сканирование в другой программе все же обнаружит вредоносное ПО на Вашем компьютере. Это бездействующие остатки того, что вы только что удалили. Если вас не устраивает наличие этих остатков на вашем компьютере, то вы можете удалить подавляющее их большинство путем сканирования в программах, упомянутых в следующем разделе.

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

2.2 Если компьютер все еще не очищен, просканируйте, используя HitmanPro, Malwarebytes и Emsisoft Anti-Malware

Если вышеупомянутые шаги не помогли полностью устранить заражение, то вам нужно загрузить HitmanPro вот с этой страницы . Установите программу и запустите "Default Scan" ("Сканирование по умолчанию"). Если она не установится, перейдите к следующему абзацу и установите Malwarebytes. Когда во время установки HitmanPro будет выведен соответствующий запрос, я рекомендую вам выбрать опцию выполнения только одноразовой проверки компьютера. Это должно подойти большинству пользователей. Также, если вредоносное ПО препятствует ее корректному запуску, тогда откройте программу, удерживая клавишу CTRL, пока она не загрузится в память. Перемещайте в карантин любое заражение, которое она найдет. Имейте в виду, что эта программа будет в состоянии удалять инфекции лишь в течение 30 дней после установки. Во время удаления Вас попросят активировать испытательную лицензию.

Как только HitmanPro удалил все обнаруженное заражение, или если Hitman Pro не смог инсталлироваться, вам нужно загрузить бесплатную версию Malwarebytes вот с этой страницы . Обратите внимание, что у нее есть технология хамелеона, которая должна помочь ей инсталлироваться даже на сильно зараженных компьютерах. Я вам советую, чтобы во время инсталляции вы сняли флажок "Включить бесплатный тестовый период Malwarebytes Anti-Malware Pro" ("Enable free trial of Malwarebytes Anti-Malware Pro"). Удостоверьтесь, что программа полностью обновлена и затем запустите быстрое сканирование. Изолируйте в карантине всю заразу, которую она находит. Если какая-либо программа попросит перезагрузить Ваш компьютер, обязательно перезагрузите его.

Затем загрузите Emsisoft Emergency Kit вот с этой страницы . Как только закончится ее загрузка, извлеките содержимое zip-файла. Затем дважды щелкните файл с именем "start" и откройте "Emergency Kit Scanner". Когда будет запрос, позвольте программе обновить базу данных. Как только она обновится, вернитесь в меню "Безопасность". Затем перейдите к "Проверка" и выберите "Быстрая", затем нажмите "Проверить". Как только завершится сканирование, поместите в карантин все обнаруженные элементы. Перезапускайте компьютер каждый раз, когда это требуется.

После сканирования вашего компьютера в этих программах вы должны перезагрузить его. Затем еще раз проверьте ваш компьютер, используя советы, которые я даю в статье " ". Если все хорошо тогда, вы можете перейти к разделу " ". Помните, что отключенные записи реестра не опасны. Однако, если Ваш компьютер все еще не очищен, тогда еще раз пройдите шаги, описанные в этом разделе и посмотрите, поможет ли это удалить инфекции. Если программы в разделе 2.1 ранее не были в состоянии корректно работать, то вы должны вернуться и попробовать запустить их снова. Если ни одна из вышеупомянутых программ не смогла запуститься, загрузитесь в Безопасном режиме с поддержкой сети и попытайтесь выполнить сканирование оттуда. Однако, если они смогли правильно запуститься, и угрозы все еще остаются даже после повторного следования совету в этом разделе, то вы можете перейти к следующему разделу.

2.3 Если необходимо, попробуйте эти не столь быстрые методы

Если вышеупомянутые меры не помогли полностью удалить заражение, тогда в вашей машине, вероятно, проживает некоторая весьма неотзывчивая вредоносная программа. Таким образом, методы, обсуждаемые в этом разделе, намного более мощны, но потребуют больше времени. Первая вещь, которую я советую сделать, состоит в том, чтобы просканировать Ваш компьютер в еще одном противоруткитовом сканере, который называется GMER. Его можно загрузить вот с этой страницы . Удалите все, что будет затенено красным. Обязательно нажмите кнопку Scan сразу после того, как программа закончит свой быстрый анализ системы. Кроме того, если у вас запущена 32-битная операционная система, вы должны загрузить программу для поиска и удаления руткита ZeroAccess. Информацию об этом рутките и ссылку к программе для его удаления из 32-битных систем можно найти вот на . Средство AntiZeroAccess можно загрузить по ссылке во втором абзаце.

После сканирования в вышеупомянутых программах следующим вы должны открыть CCE, перейти в настройки и выбрать опцию "Scan for suspicious MBR modification" ("Искать подозрительные изменения в MBR"). Затем нажмите "OK". Теперь в CCE выполните полное сканирование. Делайте перезагрузку, когда требуется, и помещайте в карантин все, что будет найдено. Обратите внимание, что эта опция может быть относительно опасной, поскольку она может выявить проблемы там, где их нет. Используйте ее с осторожностью и удостоверьтесь, что резервная копия всего важного уже сделана. Обратите внимание, что в редких случаях сканирование с помощью этих опций может сделать систему незагружаемой. Такое редко бывает, но даже если это произойдет, это поправимо. Если после выполнения этого сканирования ваш компьютер перестал запускаться, воспользуйтесь установочным диском Windows для восстановоления системы. Это должно помочь, чтобы ваш компьютер снова стал запускаться.

Как только CCE полностью закончит, снова откройте CCE при удерживании клавиши SHIFT. Это действие завершит большинство ненужных процессов, которые могут помешать вам сканировать. Затем откройте KillSwitch, перейдите в меню "Вид" ("View") и выберите "Скрыть безопасные процессы" ("Hide Safe Processes"). Теперь, еще раз удалите все опасные процессы. Затем, вы должны также щелкнуть правой кнопкой по всем неизвестным процессам, которые остались, и выбрать "Завершить процесс" ("Kill Process"). Не удаляйте их. вы должны следовать совету в этом абзаце каждый раз, когда вы перезапускаете ваш компьютер, чтобы иметь уверенность, что следующие сканирования будут максимально эффективны.

После завершения всех процессов, которые не были расценены как надежные, вы должны открыть программу HitmanPro при удерживании клавиши CTRL. Затем выполните сканирование по умолчанию ("Default Scan") и поместите в карантин все, что она найдет. Затем выполните полное сканирование в Malwarebytes и в Emsisoft Emergency Kit. Изолируйте в карантине то, что они найдут. После этого загрузите бесплатную версию SUPERAntiSpyware вот с этой страницы . Во время установки будьте очень осторожны, поскольку вместе с инсталлятором поставляются и другие программы. На первой странице убедитесь, что убрали флажки с обеих опций относительно установки Google Chrome. Теперь выберите опцию "Custom Install" ("Выборочная установка"). Во время выборочной установки Вы должны будете еще раз убрать два флажка с опции добавления Google Chrome.

Не считая этого, программа прекрасно установится. Когда появится предложение начать бесплатный испытательный период, я советую отказаться. Как только программа полностью загрузится, выберите опцию выполнения полного сканирования (Complete Scan) и нажмите кнопку "Scan your Computer..." ("Сканировать ваш компьютер..."). Затем нажмите кнопку "Start Complete Scan>" ("Начать полное сканирование>"). Удаляйте все обнаруживаемые файлы и перезапускайте компьютер, когда требуется.

После выполнения этих шагов вы должны перезагрузить компьютер. Затем еще раз проверьте его, используя совет, который я даю в статье " ". Если все хорошо, тогда вы можете перейти к разделу " ". Помните, что отключенные записи реестра - это не опасно. Однако, если Ваш компьютер все еще не очищен, тогда выполните шаги, описанные в этом разделе еще раз, и смотрите, поможет ли это в устранении заражения. Если нет, то вам нужно переходить к следующему разделу.

2.4 Если необходимо, сделайте загрузочный диск

Если вышеупомянутые методы не помогли полностью устранить заражение, или если вы не можете даже загрузить компьютер, то для того, чтобы очистить ваш компьютер вам может понадобиться загрузочный CD (или флешка), который еще называют загрузочным диском. Я знаю, что все это может показаться сложным делом, но это, в действительности, не так уж плохо. Просто не забудьте, что создать этот диск нужно на компьютере, который не заражен. Иначе файлы могут быть испорчены или даже заражены.

Поскольку это диск загрузочный, никакое вредоносное ПО не может укрыться от него, вывести его из строя или вмешаться в его работу каким-либо образом. Следовательно, сканирование в разных программах таким способом должно позволить очистить почти любую машину, неважно, насколько она может быть заражена. Единственное исключение здесь, это если на машине были заражены сами системные файлы. Если это так, то удаление заражения может причинить вред системе. Главным образом именно по этой причине вы зарезервировали все важные документы перед тем, как начать процесс очистки. Тем не менее, иногда можно обойти это, следуя совету, который я даю ниже.

Чтобы сделать это, вы должны загрузить . Это превосходная программа, которая позволит вам создать единый загрузочный диск с несколькими антивирусными программами. Она также имеет много других полезных функций, которые я не буду обсуждать в этой статье. Несколько очень полезных учебников для SARDU можно найти вот на этой странице . Будьте очень осторожны относительно дополнительных предложений, теперь включенных в инсталлятор. К сожалению, эта программа теперь пытается надувать людей в целях установки дополнительных программ, которые в основном не нужны.

После ее загрузки распакуйте содержимое и откройте папку SARDU. Затем запустите исполняемый файл, который соответствует вашей операционной системе, - либо sardu, либо sardu_x64. На вкладке Antivirus щелкните те антивирусные приложения, которые вы хотели бы записать на создаваемый вами диск. Вы можете добавлять так много или так мало, как посчитаете нужным. Я рекомендую, чтобы вы просканировали свой компьютер, по крайней мере, в программах Dr.Web LiveCD , Avira Rescue System и Kaspersky Rescue Disk . Одна из приятных вещей в Dr.Web - то, что в нем иногда есть возможность заменить зараженный файл чистой его версией, вместо того, чтобы его просто удалять. Это поможет Вам очистить некоторые компьютеры, не нанося вред системе. Таким образом я очень рекомендую включить Dr.Web в ваш загрузочный диск.

Щелканье по названиям различных антивирусных приложений часто будет направлять Вас на страницу, с которой можно будет скачать ISO-образ с соответствующим антивирусом. Иногда вместо этого вам будет предоставлена опция его загрузки непосредственно через SARDU, которую можно найти на вкладке Downloader. Если есть выбор, всегда выбирайте опцию загрузки ISO. Кроме того, после загрузки файла ISO вам может понадобиться переместить его в папку ISO, находящуюся в основной папке SARDU. Как только вы переместили ISO-образы всех нужных вам антивирусных продуктов в папку ISO, все готово к созданию аварийного загрузочного диска. Чтобы сделать его, перейдите на вкладку Antivirus и проверьте, что у всех выбранных вами антивирусов проставлены флажки. Теперь нажмите кнопку создания либо USB-устройства, либо диска. Любой из этих вариантов будет приемлем. Он зависит лишь от того, как вы хотите запускать аварийный диск - с USB или с CD.

После создания аварийного диска, вероятно, вам нужно будет изменить последовательность начальной загрузки в настройках вашего BIOS, чтобы гарантировать, что, когда вы вставите загрузочный CD или загрузочное флеш-устройство, компьютер загрузит его, а не операционную систему, как обычно. Для наших целей вы должны изменить порядок таким образом, чтобы на первом месте был пункт "CD/DVD Rom drive", если вы хотите загрузиться с CD или DVD, либо "Removable Devices" ("Сменные Устройства"), если вы хотите загрузиться с флеш-накопителя. Как только это сделано, загрузите компьютер с аварийного диска.

После загрузки с диска вы можете выбрать, с помощью какого антивируса вы хотели бы начать проверку своего компьютера. Как я упомянул ранее, я бы рекомендовал начать с Dr.Web. Когда эта программа закончит, и вы восстановите или удалите все, что она найдет, вам нужно будет выключить компьютер. Затем обязательно снова загрузитесь с диска и потом продолжайте сканировать в других антивирусах. Продолжайте этот процесс, пока вы не просканируете свой компьютер во всех антивирусных программах, которые вы записали на загрузочный диск.

После очистки компьютера в программах, которые вы записывали на диск, теперь вам нужно попробовать снова запустить Windows. Если компьютер в состоянии запуститься из-под Windows, тогда проверьте его, используя указания, которые я даю в статье " ". Если все хорошо, то вы можете перейти к разделу " ". Помните, что отключенные записи реестра не могут подвергнуть риску.

Если Ваш компьютер еще не очищен, но вы можете загрузиться из-под Windows, то я советовал бы попробовать очистить его, находясь в Windows, начав с данной статьи и следуя предложенным методам. Однако, если Ваш компьютер все еще не может загрузить Windows, то снова попробуйте привести его в порядок, используя установочный диск Windows. Это должно помочь в том, чтобы ваш компьютер снова начал запускаться. Если даже это не помогает его сделать загружаемым, тогда попробуйте добавить в аварийный загрузочный диск больше антивирусов и потом заново просканируйте компьютер. Если выполнение этого все еще не помогает, то прочтите .

3. Что делать, если вышеупомянутые методы не помогли очистить ваш компьютер

Если вы выполнили все вышеупомянутые указания и все еще не смогли очистить свой компьютер, но вы убеждены, что проблемы вызваны именно вредоносным ПО, мы будем очень признательны, если вы оставите комментарий и объясните, что вы пытались сделать, чтобы очистить компьютер, и какие остались признаки, которые заставляют думать, что компьютер все еще не очищен. Это очень важно в целях улучшения этой статьи. На самом деле надеемся, что никто никогда не дойдет до этого раздела. Эта статья предназначена для того, чтобы дать вам возможность полностью очистить зараженный компьютер.

Вы можете также обратиться за советом на специализированный форум, посвященный удалению вредоносного ПО. Очень полезный форум, который является нашим партнером - . Однако, если даже после обращения за помощью на форум по удалению вредоносного ПО ваш компьютер все еще не освободился от вредных программ, может потребоваться отформатировать ваш компьютер и запустить его так. Это означает, что вы потеряете все, что не скопировали заблаговременно. Если вы это делаете, обязательно произведите полное форматирование своего компьютера, прежде чем переустанавливать Windows. Это позволит уничтожить вредоносное ПО почти любого вида. Как только Windows будет переустановлена, выполните шаги, описанные в .

4. Что делать после того, как все вредоносное ПО окончательно определено для удаления

Убедившись в том, что ваш компьютер очищен, теперь вы можете попробовать восстановить что-либо утраченное. Вы можете воспользоваться утилитой Windows Repair (All In One) - инструмент все-в-одном, который позволяет исправить большое количество известных проблем Windows, включая ошибки реестра, права доступа файлов, Internet Explorer, обновления Windows, брандмауэр Windows. Если после выполнения всех процедур ваш компьютер работает нормально, то вы можете также открыть Comodo Autorun Analyzer и выбрать опцию удаления тех элементов реестра, которые вы ранее лишь отключили. Таким образом, их вообще больше не будет на вашем компьютере.

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

После обеспечения безопасности вашего компьютера вы теперь можете восстановить какие-либо из файлов, потерянных во время процесса очищения, которые были ранее сохранены в резервной копии. Надеюсь, что этот шаг не придется выполнять. Также, прежде чем восстанавливать их, удостоверьтесь, что ваш компьютер очень хорошо защищен. Если вы не защитите компьютер в достаточной мере, то вы можете случайно заразить его, и тогда снова придется на нем вычищать заражение. Кроме того, если вы использовали USB-устройство для перемещения каких-либо файлов на зараженный компьютер, вы можете теперь вставить его обратно в компьютер и убедиться, что на нем нет вредоносного ПО. Я рекомендую сделать это путем удаления всех оставшихся на нем файлов.

Нашли опечатку? Нажмите Ctrl + Enter

Характеристика компьютерных вирусов

Сущность и проявление компьютерных вирусов

Массовое применение персональных компьютеров, к сожалению, оказалось связанным с появлением самовоспроизводящихся программ-вирусов, препятствующих нормальной работе компьютера, разрушающих файловую структуру дисков и наносящих ущерб хранимой в компьютере информации. Проникнув в один компьютер, компьютерный вирус способен распространиться на другие компьютеры. Компьютерным вирусом называется специально написанная программа, способная самопроизвольно присоединяться к другим программам, создавать свои копии и внедрять их в файлы, системные области компьютера и в вычислительные сети с целью нарушения работы программ, порчи файлов и каталогов, создания всевозможных помех в работе на компьютере.Причины появления и распространения компьютерных вирусов, с одной стороны, скрываются в психологии человеческой личности и ее теневых сторонах (зависти, мести, тщеславии непризнанных творцов, невозможности конструктивно применить свои способности), с другой стороны, обусловлены отсутствием аппаратных средств защиты и противодействия со стороны операционной системы персонального компьютера.Несмотря на принятые во многих странах законы о борьбе с компьютерными преступлениями и разработку специальных программных средств защиты от вирусов, количество новых программных вирусов постоянно растет. Это требует от пользователя персонального компьютера знаний о природе вирусов, способах заражения вирусами и защиты от них.Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке компьютера с дискеты, содержащей вирус. Такое заражение может быть и случайным, например, если дискету не вынули из дисковода А: и перезагрузили компьютер, при этом дискета может и не быть системной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление. Зараженный диск - это диск, в загрузочном секторе которого находится программа - вирус.После запуска программы, содержащей вирус, становится возможным заражение других файлов. Наиболее часто вирусом заражаются загрузочный сектор диска и исполняемые файлы, имеющие расширения ЕХЕ, .СОМ, SYS или ВАТ. Крайне редко заражаются текстовые и графические файлы. Зараженная программа - это программа, содержащая внедренную в нее программу-вирус.При заражении компьютера вирусом очень важно своевременно его обнаружить. Для этого следует знать об основных признаках проявления вирусов. К ним можно отнести следующие:
  • прекращение работы или неправильная работа ранее успешно функционировавших программ;
  • медленная работа компьютера;
  • невозможность загрузки операционной системы;
  • исчезновение файлов и каталогов или искажение их содержимого;
  • изменение даты и времени модификации файлов;
  • изменение размеров файлов;
  • неожиданное значительное увеличение количества файлов на диске;
  • существенное уменьшение размера свободной оперативной памяти;
  • вывод на экран непредусмотренных сообщений или изображений;
  • подача непредусмотренных звуковых сигналов;
  • частые зависания и сбои в работе компьютера.
Следует заметить, что вышеперечисленные явления необязательно вызываются присутствием вируса, а могут быть следствием других причин. Поэтому всегда затруднена правильная диагностика состояния компьютера.Основные виды вирусов В настоящее время известно более 5000 программных вирусов, их можно классифицировать по следующим признакам (рис. 11.10): Рис. 11.10. Классификация компьютерных вирусов:а - по среде обитания; б - по способу заражения; в - по степени воздействия; г - по особенностям алгоритмовВ зависимости от среды обитания вирусы можно разделить на сетевые, файловые, загрузочные и файлово-загрузочные. Сетевые вирусы распространяются по различным компьютерным сетям. Файловые вирусы внедряются главным образом в исполняемые модули, т.е. в файлы, имеющие расширения СОМ и ЕХЕ. Файловые вирусы могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков. По способу заражения вирусы делятся на резидентные и нерезидентные. Резидентный вирус при заражении (инфицировании) компьютера оставляет в оперативной памяти свою резидентную часть, которая потом перехватывает обращение операционной системы к объектам заражения (файлам, загрузочным секторам дисков и т.п.) и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера. Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время.По степени воздействия вирусы можно разделить на следующие виды:
  • неопасные , не мешающие работе компьютера, но уменьшающие объем свободной оперативной памяти и памяти на дисках, действия таких вирусов проявляются в каких-либо графических или звуковых эффектах;
  • опасные вирусы, которые могут привести к различным нарушениям в работе компьютера;
  • очень опасные, воздействие которых может привести к потере программ, уничтожениюданных, стиранию информации в системных областях диска.
По особенностям алгоритма вирусы трудно классифицировать из-за большого разнообразия. Простейшие вирусы - паразитические , они изменяют содержимое файлов и секторов диска и могут быть достаточно легко обнаружены и уничтожены. Можно отметить вирусы-репликаторы , называемые червями, которые распространяются по компьютерным сетям, вычисляют адреса сетевых компьютеров и записывают по этим адресам свои копии. Известны вирусы-невидимки , называемые стелс-вирусами, которые очень трудно обнаружить и обезвредить, так как они перехватывают обращения операционной системы к пораженным файлам и секторам дисков и подставляют вместо своего незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты, содержащие алгоритмы шифровки-расшифровки, благодаря которым копии одного и того же вируса не имеют ни одной повторяющейся цепочки байтов. Имеются и так называемые квазивирусные или "троянские " программы, которые хотя и не способны к самораспространению, но очень опасны, так как, маскируясь под полезную программу, разрушают загрузочный сектор и файловую систему дисков.

ПРОГРАММЫ ОБНАРУЖЕНИЯ И ЗАЩИТЫ ОТ ВИРУСОВ

Характеристика антивирусных программ Дня обнаружения, удаления и защиты от компьютерных вирусов разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие программы называются антивирусными . Различают следующие виды антивирусных программ (рис. 11.11): Программы-детекторы осуществляют поиск характерной для конкретного вируса последовательности байтов (сигнатуры вируса) в оперативной памяти и в файлах и при обнаружении выдаютсоответствующее сообщение. Недостатком таких антивирусных про-Рис. 11.11. Виды антивирусных программ
грамм является то, что они могут находить только те вирусы, которые известны разработчикам таких программ. Программы-доктора или фаги, а также программы-вакцины не только находят зараженные вирусами файлы, но и "лечат" их, т.е. удаляют из файла тело программы вируса, возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в оперативной памяти, уничтожая их, и только затем переходят к "лечению" файлов. Среди фагов выделяют полифаги , т.е. программы-доктора, предназначенные для поиска и уничтожения большого количества вирусов. Наиболее известными полифагами являются программы Aidstest , Scan, Norton AntiVirus и Doctor Web . Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление их версий. Программа-ревизоры относятся к самым надежным средствам защиты от вирусов. Ревизоры запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран видеомонитора. Как правило, сравнение состояний производят сразу после загрузки операционой системы. При сравнении проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры. Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже отличить изменения версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа Adinf фирмы "Диалог-Наука". Программы-фильтры или "сторожа" представляют собой небольшие резидентные программы, предназначенные для обнаружения подозрительных действий при работе компьютера, характерных для вирусов. Такими действиями могут являться:
  • попытки коррекции файлов с расширениями СОМ и ЕХЕ;
  • изменение атрибутов файлов;
  • прямая запись на диск по абсолютному адресу;
  • запись в загрузочные сектора диска.
При попытке какой-либо программы произвести указанные действия "сторож" посылает пользователю сообщение н предлагает запретить или разрешить соответствующее действие. Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней стадии его существования до размножения. Однако они не "лечат" файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги. К недостаткам программ-сторожей можно отнести их "назойливость" (например, они постоянно выдают предупреждение о любой попытке копирования исполняемого файла), а также возможные конфликты с другим программным обеспечением. Примером программы-фильтра является программа Vsafe, входящая в состав пакета утилит операционной системы MS DOS. Вакцины или иммунизаторы - это резидентные программы, предотвращающие заражение файлов. Вакцины применяют, если отсутствуют программы-доктора, "лечащие" этот вирус. Вакцинация возможна только от известных вирусов. Вакцина модифицирует программу или диск таким образом, чтобы это не отражалось на их работе, а вирус будет воспринимать их зараженными и поэтому не внедрится. В настоящее время программы-вакцины имеют ограниченное применение.Своевременное обнаружение зараженных вирусами файлов и дисков, полное уничтожение обнаруженных вирусов на каждом компьютере позволяют избежать распространения вирусной эпидемии на другие компьютеры.Антивирусный комплект АО "Диалог-Наука" Среди обилия современных программных средств борьбы с компьютерными вирусами предпочтение следует отдать антивирусному комплекту АО "Диалог-Наука", в который входят четыре программных продукта: полифаги Aidstest и Doctor Web (сокращенно Dr.Web), ревизор диска ADinf и лечащий блок ADinf Cure Module. Рассмотрим кратко, как и когда надо применять эти антивирусные программы. Программа-полифаг Aidstest . Aidstest - это программа, которая умеет обнаруживать и уничтожать более 1300 компьютерных вирусов, получивших наиболее широкое распространение в России. Версии Aidstest регулярно обновляются и пополняются информацией о новых вирусах. Для вызова Aidstest следует ввести команду:AIDSTEST []где path - имя диска, полное имя или спецификация файла, маска группы файлов:* - все разделы жесткого диска,** - все диски, включая сетевые и диски CD ROM;options - любая комбинация следующих ключей:/F - исправлять зараженные программы и стирать испорченные;/G - проверять все файлы подряд (не только СОМ, ЕХЕ и SYS);/S - медленная работа для поиска испорченных вирусов;/X - стирать все файлы с нарушениями в структуре вируса;/Q - спрашивать разрешение на удаление испорченных файлов;/В - не предлагать обработку следующей дискеты. Пример 11.27 Aidstest для проверки и "лечения"" диска В :. Обнаруженные зараженные программы будут исправлены. Проверке подлежат все файлы диска. Если файл исправить не удастся, то программа будет просить разрешение на его удаление:aidstest b: /f/g/qПрограмма-полифаг Doctor Web . Эта программа предназначена прежде всего для борьбы с полиморфными вирусами, которые сравнительно недавно появились в компьютерном мире. Использование Dr. Web для проверки дисков и удаления обнаруженных вирусов в целом подобно программе Aidstest. При этом дублирования проверки практически не происходит, так как Aidstest и Dr.Web работают на разных наборах вирусов. Программа Dr.Web может эффективно бороться со сложными вирусами-мутантами, которые оказываются не под силу программе Aidstest. В отличие от Aidstest программа Dr.Web способна обнаруживать изменения в собственном программном коде, эффективно определять файлы, зараженные новыми, неизвестными вирусами, проникая в зашифрованные и упакованные файлы, а также преодолевая "вакцинное прикрытие". Это достигается благодаря наличию достаточно мощного эвристического анализатора. В режиме эвристического анализа программа Dr.Web исследует файлы и системные области дисков, пытаясь обнаружить новые или неизвестные ей вирусы по характерным для вирусов кодовым последовательностям. Если таковые будут найдены, то выводится предупреждение о том, что объект, возможно, инфицирован неизвестным вирусом.Предусмотрены три уровня эвристического анализа. В режиме эвристического анализа возможны ложные срабатывания, т.е. детектирование файлов, не являющихся зараженными. Уровень "эвристики" подразумевает собой уровень анализа кода без наличия ложных срабатываний. Чем выше уровень "эвристики", тем выше процент наличия ошибок или ложных срабатываний. Рекомендуются первые два уровня работы эвристического анализатора.Третий уровень эвристического анализа предусматривает дополнительную проверку файлов на "подозрительное" время их создания. Некоторые вирусы при заражении файлов устанавливают некорректное время создания, как признак зараженности данных файлов. Например, для зараженных файлов секунды могут иметь значение 62, а год создания может быть увеличен на 100 лет.В комплект поставки антивирусной программы Dr.Web могут входить также файлы-дополнения к основной вирусной базе программы, расширяющие ее возможности. Работать с программой Dr. Web можно в двух режимах:
  • в режиме полноэкранного интерфейса с использованием меню и диалоговых окон;
  • в режиме управления через командную строку.
Для разового нерегулярного применения более удобен первый режим, но для регулярного применения с целью систематического входного контроля дискет лучше применять второй режим. При использовании второго режима соответствующая команда запуска Dr. Web должна быть включена либо в меню пользователя операционной оболочки Norton Соmmander, либо в специальный командный файл.Командная строка для запуска Dr. Web выглядит следующим образом:DrWeb [диск: [путь] ] [ключи]где диск:Х: - логическое устройство жесткого диска или физическое устройство гибкого диска, например F: или А:,* - все логические устройства на жестком диске,путь - это путь или маска требуемых файлов.Наиболее важные ключи:/AL - диагностика всех файлов на заданном устройстве;/CU[P] - "лечение" дисков и файлов, удаление найденных вирусов;P - удаление вирусов с подтверждением пользователя;/DL - удаление файлов, корректное лечение которых невозможно;/НА[уровень] - эвристический анализ файлов и поиск в них неизвестных вирусов, где уровень может принимать значения О, 1, 2;/RР[имя файла] - запись протокола работы в файл (по умолчанию в файл REPORT. WEB);/CL - запуск программы в режиме командной строки, при тестировании файлов и системные областей не используется полноэкранный интерфейс;/QU - выход в DOS сразу после тестирования;/? - вывод на экран краткой справки.Если в командной строке Dr.Web не указано ни одного ключа, то вся информация для текущего запуска будет считываться из файла конфигурации DRWEB.INI, расположенного в том же каталоге, что и файл DRWEB.EXE. Файл конфигурации создается в процессе работы с программой Dr.Web с помощью команды сохранения параметров, необходимых для тестирования. Пример 11.28 . Запуск антивирусной программы Dr.Web для проверки и лечения диска В:. Обнаруженные зараженные файлы будут "вылечены". Проверке подлежат все файлы диска. Если файл "вылечить" не удастся, то программа будет просить разрешение на его удаление. Для поиска вирусов должен использоваться эвристический уровень анализа 1. Программа должна выполняться только в режиме командной строки с выходом в DOS после завершения тестирования:DrWeb В: /AL /CUP /HA1 /QU / CLТехнология работы с программой Dr. Web в режиме полноэкранного интерфейса. Для запуска в режиме полноэкранного интерфейса достаточно ввести в командную строку только имя программы. Сразу после загрузки программы начнется тестирование оперативной памяти компьютера, если оно не отключено предыдущей установкой параметров. Ход тестирования отображается в окне тестирования. После завершения тестирования памяти произойдет остановка. Работу программы можно продолжить, если воспользоваться основным меню, расположенным в верхней строке экрана. Для активизации меню следует нажать клавишу .Основное меню содержит следующие режимы:Dr.WebТест Настройки ДополненияПри выборе любого режима открывается соответствующее подменю.Подменю Dr.Web позволяет временно выйти в DOS, получить краткую информацию о программе Dr.Web и о ее авторе или покинуть программу.Подменю Тест дает возможность выполнить основные операции тестирования и Їлечения" файлов и дисков, а также просмотреть отчеты о произведенных действиях.Подменю Настройки служит для установки с помощью диалоговых окон параметров настройки программы, установки путей и масок поиска и сохранения параметров в файле конфигурации DRWEB.INI.Для подключения файлов-дополнений к основной вирусной базе программы, расширяющих ее возможности, используется режим Дополнения .Антивирус-ревизор диска ADinf . Ревизор ADinf позволяет обнаружить появление любого вируса, включая стелс-вирусы, вирусы-мутанты и неизвестные на сегодняшний день вирусы. Программа ADinf запоминает:
  • информацию о загрузочных секторах;
  • информацию о сбойных кластерах;
  • длину и контрольные суммы файлов;
  • дату и время создания файлов.
На протяжении всей работы компьютера программа ADinf следит за сохранностью этих характеристик. В режиме повседневного контроля ADinf запускается автоматически каждый день при первом включении компьютера. Особо отслеживаются вирусоподобные изменения, о которых немедленно выдается предупреждение. Кроме контроля за целостностью файлов ADinf следит за созданием и удалением подкаталогов, созданием, удалением, перемещением и переименованием файлов, появлением новых сбойных кластеров, сохранностью загрузочных секторов и за многим другим. Перекрываются все возможные места для внедрения вируса в систему. Adinf проверяет диски, не используя DOS, читая их по секторам прямым обращением в BIOS. Благодаря такому способу проверки ADinf обнаруживает маскирующиеся стелс-вирусы и обеспечивает высокую скорость проверки диска. Лечащий блок ADinfCure Module . ADinfCure Module - это программа, которая помогает "вылечить" компьютер от нового вируса, не дожидаясь свежих версий полифагов Aidstest или Dr.Web, которым этот вирус будет известен. Программа ADinfCure Module использует тот факт, что, несмотря на огромное разнообразие вирусов, существует совсем немного различных методов их внедрения в файлы. Во время нормальной работы, при регулярном запуске ревизора Adinf oн сообщает ADinf Cure Module о том, какие файлы изменились с момента последнего запуска. Adinf Cure Module анализирует эти файлы и записывает в свои таблицы информацию, которая может потребоваться для восстановления файла при заражении вирусом. Если заражение произошло, то ADinf заметит изменения и снова вызовет Adinf Cure Module, который на основе анализа зараженного файла и сопоставления его с записанной информацией попытается восстановить исходное состояние файла.Основные меры по защите от вирусов Для того чтобы не подвергнуть компьютер заражению вирусами и обеспечить надежное хранение информации на дисках, необходимо соблюдать следующие правила:
  • оснастите свой компьютер современными антивирусными программами, например Aidstest или Doctor Web, и постоянно обновляйте их версии;
  • перед считыванием с дискет информации, записанной на других компьютерах, всегда проверяйте эти дискеты на наличие вирусов, запуская антивирусные программы своего компьютера;
  • при переносе на свой компьютер файлов в архивированном виде проверяйте их сразу же после разархивации на жестком диске, ограничивая область проверки только вновь записанными файлами;
  • периодически проверяйте на наличие вирусов жесткие диски компьютера, запуская антивирусные программы для тестирования файлов, памяти и системных областей дисков с защищенной от записи дискеты, предварительно загрузив операционную систему также с защищенной от записи системнойдискеты;
  • всегда защищайте свои дискеты от записи при работе на других компьютерах, если на них не будет производиться запись информации;
  • обязательно делайте архивные копии на дискетах ценной для вас информации;
  • не оставляйте в кармане дисковода А: дискеты при включении или перезагрузке операционной системы, чтобы исключить заражение компьютера загрузочными вирусами;
  • используйте антивирусные программы для входного контроля всех исполняемых файлов, получаемых из компьютерных сетей;
  • для обеспечения большей безопасности применения Aidstest и Doctor Web необходимо сочетать с повседневным использованием ревизора диска ADinf.

Министерство образования и науки РФ

Российский торгово-экономический университет

Казанский институт (филиал)

Кафедра математики и высшей математики

Контрольная работа №1

по дисциплине: «Информатика»

КОМПЬЮТЕРНЫЕ ВИРУСЫ

Выполнила:

студентка 1 курса заочного

отделения спец. факультета

«Финансы и кредит» группы

Проверил:

Казань, 2007

ПЛАН

Введение

1. Сущность и проявление компьютерных вирусов

2. Основные типы и виды компьютерных вирусов

3. Как распространяются вирусы?

4. Выявление компьютерных вирусов

5. Профилактические меры против вирусов

Заключение

Список используемой литературы

Введение

Компьютерный вирус – специально созданная программа, предназначенная для выполнения определенных действий, мешающих работать на компьютере. Многие программы – вирусы безобидны, но к сожалению далеко не все безобидны полностью. Во-первых, они занимают место в оперативной памяти и на диске. Во-вторых, они могут содержать ошибки, что может привести к сбоям системы и к перезагрузке. Поэтому, если вирус довольно безобиден, то от него все равно следует избавиться.

В настоящее время существует несколько типов и видов вирусов. Основными типами компьютерных вирусов являются: программные, загрузочные вирусы и макровирусы. В настоящее время известно более 5000 видов программных вирусов, их можно классифицировать по следующим признакам: среде обитания; способу заражения среды обитания; воздействию; особенностям алгоритма.

Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке компьютера с дискеты, содержащей вирус. Такое заражение может быть и случайным, например, если дискету не вынули из дисковода А: и перезагрузили компьютер, при этом дискета может и не быть системной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление. Но наиболее частым способом распространения вирусов является сеть компьютеров, и в частности Интернет, когда переписываются другие программы, например игровые, и их запускают. Могут быть и другие, довольно редкие случаи, когда в компьютер вставляется другой жесткий диск, который был заражен. Чтобы этого избежать, загрузитесь с системной дискеты и либо проверьте жесткий диск специальными антивирусными программами, либо, что лучше, разметьте и отформатируйте диск программами Fdisk и Format.

Для выявления вирусов существуют специальные антивирусные программы, которые позволяют обнаружить и уничтожить вирусы. Имеется довольно широкий выбор антивирусных программ. Это Aidstest (Лозинского), Dr Web, Norton antivirus для системы Windows, комплект DSAV и прочие.

1. Сущность и проявление компьютерных вирусов

Массовое применение персональных компьютеров, к сожалению, оказалось связанным с появлением самовоспроизводящихся программ-вирусов, препятствующих нормальной работе компьютера, разрушающих файловую структуру дисков и наносящих ущерб хранимой в компьютере информации. Проникнув в один компьютер, компьютерный вирус способен распространиться на другие компьютеры.

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

Несмотря на принятые во многих странах законы о борьбе с компьютерными преступлениями и разработку специальных программных средств защиты от вирусов, количество новых программных вирусов постоянно растет. Это требует от пользователя персонального компьютера знаний о природе вирусов, способах заражения вирусами и защиты от них.

Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке компьютера с дискеты, содержащей вирус. Такое заражение может быть и случайным, например, если дискету не вынули из дисковода А: и перезагрузили компьютер, при этом дискета может и не быть системной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и, например, прочитали ее оглавление.

При заражении компьютера вирусом очень важно своевременно его обнаружить. Для этого следует знать об основных признаках проявления вирусов. К ним можно отнеси:

· прекращение работы или неправильная работа раннее успешно функционировавших программ;

· медленная работа компьютера;

· невозможность загрузки операционной системы;

· исчезновение файлов и каталогов или искажение их содержимого;

· изменение даты и времени модификации файлов;

· изменение размеров файлов;

· неожиданное значительное увеличение количества файлов на диске;

· существенное уменьшение размера свободной оперативной памяти;

· вывод на экран непредусмотренных сообщений или изображений4

· подача непредусмотренных звуковых сигналов;

· частые зависания и сбои в работе компьютера.

Однако по всем этим признакам нельзя с уверенностью сказать, что в компьютере завелся вирус. Так как могут быть другие неисправности, причиной которых являются неполадки или неотлаженность системы. Например, в купленном компьютере при его запуске вместо русских символов высвечиваются непонятные символы, которые вы впервые видите. Причиной этого может быть то, что не установлен драйвер кириллицы для дисплея. Этой же причиной – отсутствием драйвера для принтера – может объясняться и странное поведение принтера. Сбои системы могут иметь причиной плохой микросхемы внутри системного блока или в подключении шнура.

2. Основные типы и виды компьютерных вирусов

Основными типами компьютерных вирусов являются:

Программные вирусы;

Загрузочные вирусы;

Макровирусы.

К компьютерным вирусам примыкают и так называемые троянские

кони (троянские программы, троянцы).

Программные вирусы.

Программные вирусы – это блоки программного кода, целенаправленно внедренные внутрь других прикладных программ. При запуске программы, несущий вирус, происходит запуск имплантированного в нее вирусного кода.

Работа этого кода вызывает скрытые от пользователя изменения в файловой системе жестких дисков и/или в содержании других программ. Так, например, вирусный код может воспроизводить себя в теле других программ – этот процесс называется размножением. По прошествии определенного времени, создав достаточное количество копий, программный вирус может перейти к разрушительным действиям: нарушению работы программ и операционной системы, удалению информации, хранящейся на жестком диске. Этот процесс называется вирусной атакой.

Самые разрушительные вирусы могут инициировать форматирование жестких дисков. Поскольку форматирование диска – достаточно продолжительный процесс, который не должен пройти незамеченным со стороны пользователя, во многих случаях программные вирусы ограничиваются умножением данных только в системных секторах жесткого диска, что эквивалентно потере таблиц файловой системы. В этом случае данные на жестком диске остаются нетронутыми, но воспользоваться ими без применения специальных средств нельзя, поскольку неизвестно, какие сектора диска каким файлам принадлежат. Теоретически восстановить данные в этом случае можно, но трудоемкость этих работ может оказаться исключительно высокой.

Считается, что никакой вирус не в состоянии вывести из строя аппаратное обеспечение компьютера. Однако бывают случаи, когда аппаратное и программное обеспечение настолько взаимосвязаны, что программные повреждения приходится устранять заменой аппаратных средств. Так, например, в большинстве современных материнских плат базовая система ввода-вывода (BIOS) хранится в перезаписываемых постоянных запоминающих устройствах (так называемая флэш-память ).

Возможность перезаписи информации в микросхеме флэш-памяти используют некоторые программные вирусы для уничтожения данных BIOS.

В этом случае для восстановления работоспособности компьютера требуется либо замена микросхемы, хранящей BIOS, либо перепрограммирование с помощью специальных программных средств.

Программные вирусы поступают на компьютер при запуске непроверенных программ, полученных на внешнем носителе (гибкий диск, компакт-диск и т.п.) или принятых из Интернета. Особое внимание следует обратить на слова при запуске. При обычном копировании зараженных файлов заражение компьютера произойти не может. В связи с этим все данные, принятые из Интернета, должны проходить обязательную проверку

на безопасность, а если получены незатребованные данные из незнакомого источника, их следует уничтожать, не рассматривая. Обычный прием распространения «троянских» программ – приложении к электронному письму с «рекомендацией» извлечь и запустить якобы полезную программу.

Загрузочные вирусы.

От программных вирусов загрузочные вирусы отличаются методом распространения. Они поражают не программные файлы, определенные системные области магнитных носителей (гибких и жестких дисков). Кроме того, на включенном компьютере они могут временно располагаться в оперативной памяти.

Обычно заражение происходит при загрузки компьютера с магнитного носителя, системная область которого содержит загрузочный вирус. Так, например, при попытке загрузить компьютер с гибкого диска происходит сначала проникновение вируса в оперативную память, а затем в загрузочный сектор жестких дисков. Далее этот компьютер сам становится источником распространения загрузочного вируса.

Макровирусы.

Эта особая разновидность вирусов поражает документы, выполненные в некоторых прикладных программах. Имеющих средства для исполнения так называемых макрокоманд. В частности, к таким документам относятся документы текстового процессора Microsoft Word (они имеют расширение

Doc). Заражение происходит при открытии файла документа в окне программы, если в ней не отключена возможность исполнения макрокоманд.

Как и для других типов вирусов, результат атаки может быть как относительно безобидным, так и разрушительным.

Основные виды компьютерных вирусов.

В настоящее время известно более 5000 программных вирусов, их можно классифицировать по следующим признакам (рис. 1):

· среде обитания;

· способу заражения среды обитания;

· воздействию;

· особенностям алгоритма.

г)

Рис.1 Классификация компьютерных вирусов:

а – по среде обитания; б – по способу заражения;

в – по степени воздействия; г – по особенностям алгоритмов.

В зависимости от среды обитания вирусы можно разделить на сетевые, файловые, загрузочные и файлово-загрузочные.

Сетевые вирусы распространяются по различным компьютерным сетям.

Файловые вирусы внедряются главным образом в исполняемые модули, т.е. в файлы, имеющие расширения СОМ и ЕХЕ. Файловые вирусы могут внедряться и в другие типы файлов, но как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению.

Загрузочные вирусы внедряются в загрузочный сектор диска (Boot) или в сектор, содержащий программу загрузки системного диска (Master Boot Record).

Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.

По способу заражения вирусы делятся на резидентные и нерезидентные.

Резидентный вирус при заражении компьютера оставляет в оперативной памяти свою резидентную часть, которая потом перехватывает обращение операционной системы к объектам заражения (файлам, загрузочным секторам и т.п.) и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера.

Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время.

По степени воздействия вирусы можно разделить на следующие виды:

1. неопасные, не мешающие работе компьютера, но уменьшающие объем свободной оперативной памяти и памяти на дисках, действия таких вирусов проявляются в каких-либо графических или звуковых эффектах;

2. опасные вирусы, которые могут привести к различным нарушениям в работе компьютера;

3. очень опасные , воздействие которых может привести к потере программ, уничтожению данных, стиранию информации в системных областях диска.

3. Как распространяются вирусы?

Имеется несколько путей, прежде всего, через гибкие дискеты. Если вы получили дискету от друга, у которого в компьютере вирус, то скорее всего, дискета будет заражена. Здесь возможны два варианта. Первый – вирус находится в системной области диска, и второй – имеется один или несколько зараженных файлов. Как уже было сказано, вирус должен получить управление, поэтому если это системная дискета, то при загрузке с нее можно заразить компьютер. Если это системная дискета, а вы попробовали загрузить с нее компьютер и на экране появилось сообщение: Non system disk (несистемный диск), то вы и в этом случае могли заразить свой компьютер, так как на любой дискете имеется загрузчик операционной системы и при включении он получит управление.

Второй вариант – это зараженные файлы. Не все файлы могут быть заражены. Так, например, если имеется текст письма или какого-то другого документа, набранный при помощи редактора Norton Commander, то там не будет вируса. Даже если он там случайно оказался, то, просмотрев файл при помощи этого же редактора или ему подобного, можно увидеть в самом начале или конце такого файла непонятные символы, которые лучше уничтожить. Другие редакторы создают файлы, в которых содержится управляющая информация, такая как размер или тип шрифта, отступы, разные таблицы перекодировки и др. Как правило, заразиться через такой файл практически невозможно. Однако редактор Word версии 6.0 и 7.0 имеет возможность в самом начале документа содержать макрокоманды, которым будет передаваться управление, и таким образом через документы может распространяться вирус.

Другие способы распространения вирусов – это перенос на других носителях информации, например на CD – ROM-дисках, что встречается довольно редко. Бывало, что при покупке лицензионного программного обеспечения оно оказывалось, заражено вирусом, но подобные случаи встречаются чрезвычайно редко.

Особенность CD – ROM-дисков в том, что на них не записывается информация. Если CD – ROM-диск, свободный от вирусов побывал в зараженном компьютере, от этого он не станет зараженным. Однако, если на нем записана информация, зараженная вирусом, то в этом случае никакие антивирусные программы не смогут почистить диск от вирусов.

Наиболее частым способом распространения вирусов является сеть компьютеров, и в частности Интернет, когда переписываются другие программы, например игровые, и их запускают. Могут быть и другие, довольно редкие случаи, когда в компьютер вставляется другой жесткий диск, который был заражен. Чтобы этого избежать, загрузитесь с системной дискеты и либо проверьте жесткий диск специальными антивирусными программами, либо, что лучше, разметьте и отформатируйте диск программами Fdisk и Format.

4. Выявление компьютерных вирусов

Для выявления вирусов существуют специальные антивирусные программы, которые позволяют обнаружить и уничтожить вирусы. Однако не все вирусы могут быть обнаружены, так как появляются все новые и новые их формы.

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

Имеется довольно широкий выбор антивирусных программ. Это Aidstest (Лозинского), Dr Web, Norton antivirus для системы Windows, комплект DSAV и прочие. По способу работы их можно разделить на три вида:

1) Детекторы , производящие сканирование . Это самая простая и распространенная форма, которая предполагает просмотр файлов и загрузочных записей с целью проверки их содержимого на предмет обнаружения сигнатуры (сигнатура – код вирусной программы). Помимо просмотра на сигнатуру, может быть использован метод эвристического анализа: проверяя коды с целью выявления характерных для вирусов кодов, детекторы удаляют обнаруженные вирусы, называемые полифагами. Такие программы могут проводить эвристический анализ и обнаруживать новые вирусы.

2) Ревизоры – программы, запоминающие состояние файлов и системных областей, часто подсчитывая контрольную сумму или размер файла.

3) Программы – фильтры, или резидентные сторожа , постоянно находящиеся в оперативной памяти компьютера и анализирующие запускаемые файлы и вставляемые дискеты. Они сообщают пользователю о попытке изменить загрузочный сектор, появлении резидентной программы, возможности записи на диск и т.д.

4) Аппаратная защита представляет собой контроллер, который вставляется в разъем расширения и следит за обращениями к гибким и жестким дискам. можно защитить определенные части, например загрузочные записи, исполняемые файлы, файлы конфигурации и пр. В отличие от предыдущих методов он может действовать и тогда, когда компьютер заражен.

5) Существуют и программы, установленные в BIOS компьютера, когда при попытке записи в загрузочный сектор на экране появляется сообщение об этом.

5. Профилактические меры против вирусов

Для профилактики нужно:

1. Проводить архивацию данных . Архивация – это запись файлов на съемные носители. Чаще всего в такой роли выступают гибкие дискеты или магнитные ленты, используемые в специальных устройствах (стримеры). Например, нет необходимости запоминать файлы Windows, если имеется установочная дискета, с которой можно перезагрузить систему и восстановить файлы. Поэтому, если на компьютере имеются из съемных устройств только гибкие диски, то запоминать нужно информацию, которую трудно восстановить.

Архивирование . Как правило, информацию записывают не на один диск. Допустим, информация помещается на одну дискету, и копирование производится раз в неделю. Сначала информация записывается 4 августа, в следующий раз 11 августа запись производится на другую дискету из тех же директорий. 18 августа запись происходит снова на первую дискету, 25 августа на вторую, затем снова на первую и так далее, для этого нужно иметь как минимум две дискеты. Дело в том, что при записи на дискету может произойти сбой и большая часть информации потеряется. На домашнем компьютере время от времени нужно проводить копирование, частоту же определяет сам пользователь.

2. Чтобы вся информация , получаемая от других компьютеров, проверялась антивирусными программами. Раньше было уже написано, что некоторые файлы, например с графической информацией, довольно безопасны с точки зрения заражения вирусом. Поэтому, если на дискете только такого рода информация, то эта информация неопасна. Если обнаружен вирус, то нужно проверить все компьютеры, которые были связаны с зараженным через дискеты, сеть. Необходимо удалить вирус не только с жесткого диска, но и с дискет, архивных файлов. Если имеется подозрение на существование вируса в компьютере или информация переносится на компьютер при помощи гибких дисков или системы Интернет, то можно установить антивирусные программы в Autoexec . В at , с тем чтобы при включении компьютера они начали работать.

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

Заключение

Массовое применение персональных компьютеров, к сожалению, оказалось связанным с появлением самовоспроизводящихся программ-вирусов, препятствующих нормальной работе компьютера, разрушающих файловую структуру дисков и наносящих ущерб хранимой в компьютере информации.

Компьютерный вирус – специально созданная программа, предназначенная для выполнения определенных действий, мешающих работать на компьютере.

Проникнув в один компьютер, компьютерный вирус способен распространиться на другие компьютеры.

Программа вируса пишется на языке Ассемблера, чтобы иметь небольшой размер и быстрое выполнение, хотя есть программы, написанные на Си, Паскале и др. языках. Многие программы-вирусы – резидентные используют принципы, разработанные в драйверах, то есть в таблице прерываний устанавливают адрес вирусной программы, а после окончания работы вируса передают управление обычной программе, адрес которой находился ранее в таблице прерываний. Это называется перехватыванием управления.

Существуют автоматизированные программы для создания новых вирусов, которые позволяют создать исходный текст вируса в диалоговом режиме на языке Ассемблера. При входе в пакет, можно установить опции, позволяющие указать, какие разрушительные действия будет выполнять вирус, будет ли он шифровать свой текст машинных кодов, насколько быстро он буде заражать файлы на дисках и так далее.

Главное, что нужно для вируса, - получить управление, с тем, чтобы начать свою работу. Если бы вирус сразу же начинал выполнять то действие, которое в нем заложено, то его легче было бы идентифицировать и очистить от него компьютер. Сложность заключается в том, что вирусы могут проявляться не сразу при появлении на компьютере, а через определенное время, например в определенный день.

В современном мире существует множество антивирусных программ, которые позволяют обнаружить и уничтожить вирусы. Однако не все вирусы могут быть обнаружены, так как появляются все новые и новые их формы.

Чтобы не дать программе – вирусу испортить антивирусную программу, ее следует загружать с системной дискеты, загружая компьютер с системного диска и запуская антивирусную программу.

Постоянно обновляйте антивирусные программы, так как поздние версии могут обнаружить больше видов вирусов. Для обновления последних версий антивирусных программ можно получать их через модем, а также можно вызвать специалистов из антивирусных компаний.

Список используемой литературы

1. А. Косцов, В. Косцов. Большая энциклопедия. Все о персональном компьютере. – М.: «Мартин», 2003. – 720с.

2. Информатика: Учебник. – 3-е перераб. изд. / Под ред. Н. В. Макаровой. – М.: Финансы и статистика, 2005. – 768 с.: ил.

3. Информатика для юристов и экономистов. / Под редакцией С. В. Симоновича и др. – СПб.: Санкт-Петербург, 2001. – 688 с.6 ил.

Алгоритм работы файлового вируса

Получив управление, вирус совершает следующие действия (приведен список наиболее общих действий вируса при его выполнении; для конкретного вируса список может быть дополнен, пункты могут поменяться местами и значительно расшириться):

 резидентный вирус проверяет оперативную память на наличие своей копии и инфицирует память компьютера, если копия вируса не найдена. Нерезидентный вирус ищет незараженные файлы в текущем и (или) корневом оглавлении, в оглавлениях, отмеченных командой PATH, сканирует дерево каталогов логических дисков, а затем заражает обнаруженные файлы;

 выполняет, если они есть, дополнительные функции: деструктивные действия, графические или звуковые эффекты и т.д. Дополнительные функции резидентного вируса могут вызываться спустя некоторое время после активизации в зависимости от текущего времени, конфигурации системы, внутренних счетчиков вируса или других условий; в этом случае вирус при активизации обрабатывает состояние системных часов, устанавливает свои счетчики и т.д.;

Метод восстановления программы в первоначальном виде зависит от способа заражения файла. Если вирус внедряется в начало файла, то он либо сдвигает коды зараженной программы на число байт, равное длине вируса, либо перемещает часть кода программы из ее конца в начало, либо восстанавливает файл на диске, а затем запускает его. Если вирус записался в конец файла, то при восстановлении программы он использует информацию, сохраненную в своем теле при заражении файла. Это может быть длина файла, несколько байт начала файла в случае COM-файла или несколько байтов заголовка в случае EXE-файла. Если же вирус записывается в середину файла специальным образом, то при восстановлении файла он использует еще и специальные алгоритмы.

Загрузочные вирусы

Загрузочные вирусы заражают загрузочный (boot) сектор флоппи-диска и boot-сектор или Master Boot Record (MBR) винчестера. Принцип действия загрузочных вирусов основан на алгоритмах запуска операционной системы при включении или перезагрузке компьютера - после необходимых тестов установленного оборудования (памяти, дисков и т.д.) программа системной загрузки считывает первый физический сектор загрузочного диска (A:, C: или CD-ROM в зависимости от параметров, установленных в BIOS Setup) и передает на него управление.

В случае дискеты или компакт-диска управление получает boot-сектор, который анализирует таблицу параметров диска (BPB - BIOS Parameter Block) высчитывает адреса системных файлов операционной системы, считывает их в память и запускает на выполнение. Если же на загрузочном диске отсутствуют файлы операционной системы, программа, расположенная в boot-секторе диска выдает сообщение об ошибке и предлагает заменить загрузочный диск.

В случае винчестера управление получает программа, расположенная в MBR винчестера. Эта программа анализирует таблицу разбиения диска (Disk Partition Table), вычисляет адрес активного boot-сектора (обычно этим сектором является boot-сектор диска C:), загружает его в память и передает на него управление. Получив управление, активный boot-сектор винчестера проделывает те же действия, что и boot-сектор внешнего носителя.

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

Заражение дискет производится единственным известным способом - вирус записывает свой код вместо оригинального кода boot-сектора дискеты. Винчестер заражается тремя возможными способами - вирус записывается либо вместо кода MBR, либо вместо кода boot-сектора загрузочного диска (обычно диска C:), либо модифицирует адрес активного boot-сектора в Disk Partition Table, расположенной в MBR винчестера.

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

Существует несколько вариантов размещения на диске первоначального загрузочного сектора и продолжения вируса: в сектора свободных кластеров логического диска, в неиспользуемые или редко используемые системные сектора, в сектора, расположенные за пределами диска.

Если продолжение вируса размещается в секторах, которые принадлежат свободным кластерам диска (при поиске этих секторов вирусу приходится анализировать таблицу размещения файлов - FAT), то, как правило, вирус помечает в FAT эти кластеры как сбойные (так называемые псевдосбойные кластеры). Этот способ используется вирусами “Brain”, “Ping-Pong” и некоторыми другими.

В вирусах семейства “Stoned” задействован другой метод. Эти вирусы размещают первоначальный загрузочный сектор в неиспользуемом или редко используемом секторе - в одном из секторов винчестера (если такие есть), расположенных между MBR и первым boot-сектором, а на дискете такой сектор выбирается из последних секторов корневого каталога.

Некоторые вирусы записывают свой код в последние сектора винчестера, поскольку эти сектора используются только тогда, когда винчестер полностью заполнен информацией (что является довольно редким явлением, если учесть размеры современных дисков). Реже используется метод сохранения продолжения вируса за пределами диска. Достигается это двумя способами. Первый сводится к уменьшению размеров логических дисков: вирус вычитает необходимые значения из соответствующих полей BPB boot-сектора и Disk Partition Table винчестера (если заражается винчестер), уменьшает размер логического диска и записывает свой код в “отрезанные” от него сектора.

Второй способ - запись данных за пределами физического разбиения диска. Существуют вирусы, записывающие свой код за пределами доступного пространства винчестера, если, разумеется, это допускается установленным оборудованием.

Конечно, существуют и другие методы размещения вируса на диске, например, вирусы семейства “Azusa” содержат в своем теле стандартный загрузчик MBR и при заражении записываются поверх оригинального MBR без его сохранения.

При заражении большинство вирусов копирует в код своего загрузчика системную информацию, хранящуюся в первоначальном загрузчике (для MBR этой информацией является Disk Partition Table, для Boot-сектора дискет - BIOS Parameter Block). В противном случае система окажется неспособной загрузить себя, поскольку дисковые адреса компонент системы высчитываются на основе этой информации. Такие вирусы довольно легко удаляются переписыванием заново кода системного загрузчика в boot-секторе и MBR - для этого необходимо загрузиться с незараженной системной дискеты и использовать команды SYS для обезвреживания дискет и логических дисков винчестера или FDISK/MBR для лечения зараженного MBR-сектора.

Однако некоторые 100%-стелс вирусы не сохраняют эту информацию или даже более того - преднамеренно шифруют ее. При обращении системы или других программ к зараженным секторам вирус подставляет их незараженные оригиналы, и загрузка системы происходит без каких-либо сбоев, однако лечение MBR при помощи FDISK/MBR в случае такого вируса приводит к потере информации о разбиении диска (Disk Partition Table). В этом случае диск нужно переформатировать с потерей всей информации или восставить Disk Partition Table “вручную’, что требует определенной квалификации.

Следует также отметить тот факт, что загрузочные вирусы очень редко уживаются вместе на одном диске - часто они используют одни и те же дисковые сектора для размещения своего кода/данных. В результате код/данные первого вируса оказываются испорченными при заражении вторым вирусом, и система либо зависает при загрузке, либо зацикливается (что также приводит к ее зависанию).

Пользователям новых операционных систем загрузочные вирусы также могут доставить неприятности. Несмотря на то, что перечисленные выше системы работают с дисками напрямую (минуя вызовы BIOS), что блокирует вирус и делает невозможным дальнейшее его распространение, код вируса все-таки, хоть и очень редко, получает управление при перезагрузке системы. Поэтому вирус “March6”, например, может годами “жить” в MBR сервера и никак не влиять при этом на работу и производительность компьютерной системы. Однако при случайной перезагрузке 6-го марта этот вирус полностью уничтожит все данные на диске.

Алгоритм работы загрузочного вируса

Практически все загрузочные вирусы резидентны. Они внедряются в память компьютера при загрузке с инфицированного диска. При этом системный загрузчик считывает содержимое первого сектора диска, с которого производится загрузка, помещает считанную информацию в память и передает на нее (т.е. на вирус) управление. После этого начинают выполняться инструкции вируса:

 как правило, уменьшает объем свободной памяти, копирует в освободившееся место свой код и считывает с диска свое продолжение (если оно есть). В дальнейшем некоторые вирусы “ждут” загрузки операционной системы и восстанавливают размер памяти в первоначальное значение. В результате они оказываются расположенными не за пределами операционной системы, а как отдельные блоки памяти, выделяемые под систему.

 перехватывает необходимые вектора прерываний (обычно INT 13H), считывает в память оригинальный boot-сектор и передает на него управление.

В дальнейшем загрузочный вирус ведет себя так же, как резидентный файловый: перехватывает обращения операционной системы к дискам и инфицирует их, в зависимости от некоторых условий совершает деструктивные действия или вызывает звуковые или видеоэффекты.

Существуют нерезидентные загрузочные вирусы - при загрузке они заражают MBR винчестера и внешних носителей, если те присутствуют в дисководах. Затем такие вирусы передают управление оригинальному загрузчику и на работу компьютера больше не влияют.

Макро-вирусы

Макро-вирусы (macro viruses) являются программами на языках (макро-языках), встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы), анимации и т.д. Для своего размножения такие вирусы используют возможности макро-языков и при их помощи переносят себя из одного зараженного файла (документа) в другие. Наибольшее распространение получили макро-вирусы для Microsoft Word, Excel и Office. Существуют также макро-вирусы, заражающие документы Ami Pro и базы данных Microsoft Access, Flash-анимацию. На сегодняшний день известно множество систем, для которых существуют макро-вирусы. В этих системах вирусы получают управление при открытии или закрытии зараженного файла, перехватывают стандартные файловые функции и затем заражают файлы, к которым каким-либо образом идет обращение.

Для существования вирусов в конкретной системе (редакторе) необходимо наличие встроенного в систему макроязыка с возможностями:

 привязки программы на макроязыке к конкретному файлу;

 копирования макропрограмм из одного файла в другой;

 возможность получения управления макро-программой без вмешательства пользователя (автоматические или стандартные макросы).

Данным условиям удовлетворяют редакторы Microsoft Word, Office и AmiPro, а также электронная таблица Excel и база данных Microsoft Access. Эти системы содержат в себе макроязыки: Word, Excel, Access, Office - Visual Basic for Applications. При этом:

 макропрограммы привязаны к конкретному файлу (AmiPro) или находятся внутри файла (Word, Excel, Office);

 макроязык позволяет копировать файлы (AmiPro) или перемещать макропрограммы в служебные файлы системы и редактируемые файлы (Word, Excel, Office);

 при работе с файлом при определенных условиях (открытие, закрытие и т.д.) вызываются макропрограммы (если таковые есть), которые определены специальным образом (AmiPro) или имеют стандартные имена (Word, Excel, Office).

Данная особенность макроязыков предназначена для автоматической обработки данных в больших организациях или в глобальных сетях и позволяет организовать так называемый “автоматизированный документооборот”. С другой стороны, возможности макроязыков таких систем позволяют вирусу переносить свой код в другие файлы, и таким образом заражать их.

Физическое расположение вируса внутри файла зависит от его формата, который в случае продуктов Microsoft чрезвычайно сложен - каждый файл-документ Word или таблица Excel представляют собой последовательность блоков данных (каждый из которых также имеет свой формат), объединенных между собой при помощи большого количества служебных данных. Этот формат носит название OLE2 - Object Linking and Embedding.

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

Вирусы для Word могут заражать компьютеры любого класса, а не только IBM PC. Заражение возможно в том случае, если на данном компьютере установлен текстовый редактор, полностью совместимый с Microsoft Word.

Следует также отметить, что сложность форматов документов Word, таблиц Excel и особенно Office имеет следующую особенность: в файлах-документах и таблицах присутствуют “лишние” блоки данных, т.е. данные, которые никак не связаны с редактируемым текстом или таблицами, либо являются случайно оказавшимися там копиями прочих данных файла. Причиной возникновения таких блоков данных является кластерная организация данных в OLE2-документах и таблицах - даже если введен всего один символ текста, то под него выделяется один или даже несколько кластеров данных. При сохранении документов и таблиц в кластерах, не заполненных “полезными” данными, остается “мусор”, который попадает в файл вместе с прочими данными.

Следствием этого является тот факт, что при редактировании документа его размер изменяется вне зависимости от производимых с ним действий - при добавлении нового текста размер файла может уменьшиться, а при удалении части текста - увеличиться. То же и с макро-вирусами: при заражении файла его размер может уменьшиться, увеличиться или остаться неизменным.

При работе с документом Word любой версии выполняет различные действия: открывает документ, сохраняет, печатает, закрывает и т.д. При этом Word ищет и выполняет соответствующие “встроенные макросы” - при сохранении файла по команде File/Save вызывается макрос FileSave, при сохранении по команде File/SaveAs - FileSaveAs, при печати документов - FilePrint и т.д., если, конечно, таковые макросы определены.

Существует также несколько “авто-макросов”, автоматически вызываемые при различных условиях. Например, при открытии документа Word проверяет его на наличие макроса AutoOpen. Если такой макрос присутствует, то Word выполняет его. При закрытии документа Word выполняет макрос AutoClose, при запуске Word вызывается макрос AutoExec, при завершении работы - AutoExit, при создании нового документа - AutoNew.

Похожие механизмы (но с другими именами макросов и функций) используются и в Excel/Office, в которых роль авто- и встроенных макросов, выполняют авто- и встроенные функции, присутствующие в каком-либо макросе или макросах, причем в одном макросе могут присутствовать несколько встроенных и авто-функций.

Автоматически (т.е. без участия пользователя) выполняются также макросы/функции, ассоциированные с какой-либо клавишей либо моментом времени или датой, т.е. Word/Excel вызывают макрос/функцию при нажатии на какую-либо конкретную клавишу (или комбинацию клавиш) либо при достижении какого-либо момента времени. В Office возможности по перехвату событий несколько расширены, но принцип используется тот же.

Макро-вирусы, поражающие файлы Word, Excel или Office, как правило, пользуются одним из трех перечисленных выше приемов - в вирусе либо присутствует авто-макрос (авто-функция), либо переопределен один из стандартных системных макросов (ассоциированный с каким-либо пунктом меню), либо макрос вируса вызывается автоматически при нажатии на какую-либо клавишу или комбинацию клавиш. Существуют также полувирусы, которые не используют всех этих приемов и размножаются, только когда пользователь самостоятельно запускает их на выполнение.

Таким образом, если документ заражен, при открытии документа Word вызывает зараженный автоматический макрос AutoOpen (или AutoClose при закрытии документа) и, таким образом, запускает код вируса, если это не запрещено системной переменной DisableAutoMacros. Если вирус содержит макросы со стандартными именами, они получают управление при вызове соответствующего пункта меню (File/Open, File/Close, File/SaveAs). Если же переопределен какой-либо символ клавиатуры, то вирус активизируется только после нажатия на соответствующую клавишу.

Большинство макро-вирусов содержат все свои функции в виде стандартных макросов Word/Excel/Office. Существуют, однако, вирусы, использующие приемы скрытия своего кода и хранящие свой код в виде не-макросов. Известно три подобных приема, все они используют возможность макросов создавать, редактировать и исполнять другие макросы. Как правило, подобные вирусы имеют небольшой (иногда - полиморфный) макрос-загрузчик вируса, который вызывает встроенный редактор макросов, создает новый макрос, заполняет его основным кодом вируса, выполняет и затем, как правило, уничтожает (чтобы скрыть следы присутствия вируса). Основной код таких вирусов присутствует либо в самом макросе вируса в виде текстовых строк (иногда - зашифрованных), либо хранится в области переменных документа или в области Auto-text.

Алгоритм работы Word макро-вирусов

Большинство известных Word-вирусов при запуске переносят свой код (макросы) в область глобальных макросов документа (“общие” макросы), для этого они используют команды копирования макросов MacroCopy, OrganizerCopy либо при помощи редактора макросов - вирус вызывает его, создает новый макрос, вставляет в него свой код, который и сохраняет в документе.

При выходе из Word глобальные макросы (включая макросы вируса) автоматически записываются в DOT-файл глобальных макросов (обычно таким файлом является NORMAL.DOT). Таким образом, при следующем запуске редактора MS-Word вирус активизируется в тот момент, когда WinWord грузит глобальные макросы, т.е. сразу.

Затем вирус переопределяет (или уже содержит в себе) один или несколько стандартных макросов (например, FileOpen, FileSave, FileSaveAs, FilePrint) и перехватывает, таким образом, команды работы с файлами. При вызове этих команд вирус заражает файл, к которому идет обращение. Для этого вирус конвертирует файл в формат Template (что делает невозможной дальнейшие изменения формата файла, т.е. конвертирование в какой-либо не-Template формат) и записывает в файл свои макросы, включая Auto-макрос.

Таким образом, если вирус перехватывает макрос FileSaveAs, то заражается каждый DOC-файл, сохраняемый через перехваченный вирусом макрос. Если перехвачен макрос FileOpen, то вирус записывается в файл при его считывании с диска.

Второй способ внедрения вируса в систему используется значительно реже - он базируется на так называемых “Add-in” файлах, т.е. файлах, являющихся служебными дополнениями к Word. В этом случае NORMAL.DOT не изменяется, а Word при запуске загружает макросы вируса из файла (или файлов), определенного как “Add-in”. Этот способ практически полностью повторяет заражение глобальных макросов за тем исключением, что макросы вируса хранятся не в NORMAL.DOT, а в каком-либо другом файле.

Возможно также внедрения вируса в файлы, расположенные в каталоге STARTUP, - Word автоматически подгружает файлы-темплейты из этого каталога.

Алгоритм работы Excel макро-вирусов

Методы размножения Excel-вирусов в целом аналогичны методам Word-вирусов. Различия заключаются в командах копирования макросов (например, Sheets.Copy) и в отсутствии NORMAL.DOT - его функцию (в вирусном смысле) выполняют файлы в STARTUP-каталоге Excel.

Полиморфные вирусы

К полиморфным вирусам относятся те из них, детектирование которых невозможно (или крайне затруднительно) осуществить при помощи так называемых вирусных масок - участков постоянного кода, специфичных для конкретного вируса. Достигается это двумя основными способами - шифрованием основного кода вируса с непостоянным ключом и случайным набором команд расшифровщика или изменением самого выполняемого кода вируса. Существуют также другие, достаточно экзотические примеры полиморфизма - DOS-вирус “Bomber”, например, не зашифрован, однако последовательность команд, которая передает управление коду вируса, является полностью полиморфной.

Полиморфизм различной степени сложности встречается в вирусах всех типов - от загрузочных и файловых DOS-вирусов до Windows-вирусов и даже макро-вирусов.

Полиморфные расшифровщики

Простейшим примером частично полиморфного расшифровщика является следующий набор команд, в результате применения которого ни один байт кода самого вируса и его расшифровщика не является постоянным при заражении различных файлов:

MOV reg_1, count ; reg_1, reg_2, reg_3 выбираются из

MOV reg_2, key ; AX,BX,CX,DX,SI,DI,BP

MOV reg_3, _offset ; count, key, _offset также могут меняться

xxx byte ptr , reg_2 ; xor, add или sub

Более сложные полиморфные вирусы используют значительно более сложные алгоритмы для генерации кода своих расшифровщиков: приведенные выше инструкции (или их эквиваленты) переставляются местами от заражения к заражению, разбавляются ничего не меняющими командами типа NOP, STI, CLI, STC, CLC, DEC неиспользуемый регистр, XCHG неиспользуемые регистры и т.д.

Полноценные же полиморфные вирусы используют еще более сложные алгоритмы, в результате работы которых в расшифровщике вируса могут встретиться операции SUB, ADD, XOR, ROR, ROL и другие в произвольном количестве и порядке. Загрузка и изменение ключей и других параметров шифровки производится также произвольным набором операций, в котором могут встретиться практически все инструкции процессора Intel (ADD, SUB, TEST, XOR, OR, SHR, SHL, ROR, MOV, XCHG, JNZ, PUSH, POP ...) со всеми возможными режимами адресации.

В результате в начале файла, зараженного подобным вирусом, идет набор бессмысленных на первый взгляд инструкций, причем некоторые комбинации, которые вполне работоспособны, не берутся фирменными дизассемблерами (например, сочетание CS:CS: или CS:NOP). И среди этой “каши” из команд и данных изредка проскальзывают MOV, XOR, LOOP, JMP - инструкции, которые действительно являются “рабочими”.

Уровни полиморфизма

Существует деление полиморфных вирусов на уровни в зависимости от сложности кода, который встречается в расшифровщиках этих вирусов.

Уровень 1: вирусы, которые имеют некоторый набор расшифровщиков с постоянным кодом и при заражении выбирают один из них. Такие вирусы являются “полу-полиморфными” и носят также название “олигоморфные” (oligomorphic). Примеры: “Cheeba”, “Slovakia”, “Whale”.

Уровень 2: расшифровщик вируса содержит одну или несколько постоянных инструкций, основная же его часть непостоянна.

Уровень 3: расшифровщик содержит неиспользуемые инструкции – “мусор” типа NOP, CLI, STI и т.д.

Уровень 4: в расшифровщике используются взаимозаменяемые инструкции и изменение порядка следования (перемешивание) инструкций. Алгоритм расшифрования при этом не изменяется.

Уровень 5: используются все перечисленные выше приемы, алгоритм расшифрования непостоянен, возможно, повторное шифрование кода вируса и даже частичное шифрование самого кода расшифровщика.

Уровень 6: permutating-вирусы. Изменению подлежит основной код вируса - он делится на блоки, которые при заражении переставляются в произвольном порядке. Вирус при этом остается работоспособным. Подобные вирусы могут быть незашифрованны.

Приведенное выше деление не свободно от недостатков, поскольку производится по единственному критерию - возможность детектировать вирус по коду расшифровщика при помощи стандартного приема вирусных масок:

 Уровень 1: для детектирования вируса достаточно иметь несколько масок.

 Уровень 2: детектирование по маске с использованием “wildcards”.

 Уровень 3: детектирование по маске после удаления инструкций – “мусора”.

 Уровень 4: маска содержит несколько вариантов возможного кода, т.е. становится алгоритмической.

 Уровень 5: невозможность детектирования вируса по маске.

Недостаточность такого деления продемонстрирована в вирусе 3-го уровня полиморфичности, который так и называется – “Level3’. Этот вирус, являясь одним из наиболее сложных полиморфных вирусов, по приведенному выше делению попадает в Уровень 3, поскольку имеет постоянный алгоритм расшифровки, перед которым стоит большое количество команд- “мусора”. Однако в этом вирусе алгоритм генерирования “мусора” доведен до совершенства: в коде расшифровщика могут встретиться практически все инструкции процессора i8086.

Если произвести деление на уровни с точки зрения антивирусов, использующих системы автоматической расшифровки кода вируса (эмуляторы), то деление на уровни будет зависеть от сложности эмуляции кода вируса. Возможно детектирование вируса и другими приемами, например, расшифровка при помощи элементарных математических законов и т.д.

Изменение выполняемого кода

Наиболее часто подобный способ полиморфизма используется макро-вирусами, которые при создании своих новых копий случайным образом меняют имена своих переменных, вставляют пустые строки или меняют свой код каким-либо иным способом. Таким образом, алгоритм работы вируса остается без изменений, но код вируса практически полностью меняется от заражения к заражению.

Реже этот способ применяется сложными загрузочными вирусами. Такие вирусы внедряют в загрузочные сектора лишь достаточно короткую процедуру, которая считывает и диска основной код вируса и передает на него управление. Код этой процедуры выбирается из нескольких различных вариантов (которые также могут быть разбавлены “пустыми” командами), команды переставляются между собой и т.д.

Еще реже этот прием встречается у файловых вирусов - ведь им приходится полностью менять свой код, а для этого требуются достаточно сложные алгоритмы. На сегодняшний день известны всего два таких вируса, один из которых (“Ply”) случайным образом перемещает свои команды по своему телу и заменяет их на команды JMP или CALL. Другой вирус (“TMC”) использует более сложный способ - каждый раз при заражении вирус меняет местами блоки своего кода и данных, вставляет “мусор”, в своих ассемблерных инструкциях устанавливает новые значения смещений на данные, меняет константы и т.д. В результате, хотя вирус и не шифрует свой код, он является полиморфным вирусом - в коде не присутствует постоянного набора команд. Более того, при создании своих новых копий вирус меняет свою длину.

Статья, которую Вы сейчас читаете, посвящена проблемам восстановления данных в разделах файловой системы FAT, встречающихся на компьютерах с операционными системами MS-DOS и Microsoft Windows различных версий. Тем не менее, приведенные в ней сведения, касающиеся настройки параметров BIOS, а также некоторых структур диска, будут полезны и при восстановлении файлов в разделах файловой системы NTFS.

Как правило, попытки восстановления данных в разделе FAT начинаются с использования автоматических утилит. В тех случаях, когда утилиты автоматического восстановления не могут оказать Вам никакой помощи, можно попытаться выполнить эту работу вручную с помощью редактора диска. При этом, однако, Вам придется пользоваться редакторами диска и иметь дело с внутренними структурами файловой системы.

Мы поможем опытным пользователям проверить и восстановить файловую систему FAT при помощи программ Norton Disk Editor и Microsoft Disk Probe. Эти программы позволяют просматривать и редактировать содержимое отдельных секторов диска.

В ответственных случаях мы настоятельно рекомендуем не предпринимать самостоятельные попытки восстановления, а обращаться за помощью в службу DataRecovery.Ru. Если в процессе восстановления Вы допустите серьезную ошибку, данные могут быть потеряны навсегда. Так что пользуйтесь приведенными в статье рекомендациями, но на свой страх и риск!

Проверка состояния файловой системы FAT

С чего лучше начинать восстановление данных?

Восстановление файловой системы необходимо начинать с проверки параметров BIOS, а также состояния самой файловой системы. Можно предложить следующий план действий:

  • проверка параметров BIOS;
  • проверка содержимого главной загрузочной записи MBR (Master Boot Record) и загрузочной записи Boot Record;
  • исследование таблицы размещения файлов FAT;
  • проверка состояния каталогов;
  • извлечение нужных файлов из поврежденной файловой системы.

Проверяя настройку параметров BIOS, следует обратить внимание на такие ключевые параметры, как типы установленных в компьютере жестких дисков, количество дорожек и секторов на одной дорожке. Если эти параметры установлены неправильно, загрузка операционной системы, скорее всего, будет невозможна.

Разрушение содержимого энергонезависимой памяти, хранящей параметры BIOS, может произойти, например, при выходе из строя аккумуляторной батареи, которая питает память, или в результате воздействия вируса.

Далее необходимо проверить содержимое так называемой главной загрузочной записи MBR (Master Boot Record). В этой записи есть программа начальной загрузки и таблица разделов диска Partition Table. Программа начальной загрузки является объектом атаки загрузочных и файлово-загрузочных вирусов, записывающих сюда свое тело. При повреждении таблицы разделов диска в результате вирусного заражения, неисправности аппаратуры или программного сбоя для операционной системы будут недоступны некоторые или все логические диски.

На следующем этапе Вы должны проверить загрузочную запись Boot Record, располагающуюся в самом начале логического диска (не путайте ее с главной загрузочной записью MBR). В загрузочной записи находится программа начальной загрузки операционной системы, расположенной на логическом диске, а также блок параметров BIOS с названием BPB (BIOS Parameter Block). Блок BPB содержит важную информацию о логическом диске, такую, например, как размер кластера. При повреждении BPB вирусом, а также в результате сбоя аппаратуры или программного обеспечения диск будет недоступен для операционной системы.

После выполнения проверки загрузочной записи следует заняться таблицей размещения файлов FAT. В этой таблице находится критически важная информация о расположении отдельных кластеров для всех записанных на данном логическом диске файлов. Всего имеется две копии таблицы FAT. Вы можете использовать любую копию FAT для восстановления файлов.

На следующем этапе нужно проверить корневые каталоги логических дисков, а также подкаталоги. При необходимости следует восстановить испорченные элементы каталогов, описывающие нужные Вам файлы.

Ниже мы подробно рассмотрим все эти действия. Попутно мы приведем необходимую информацию о важнейших внутренних структурах файловой системы FAT.

Проверка параметров BIOS

Когда Вы в первый раз подходите к компьютеру, возможно зараженному вирусом, необходимо вначале проверить параметры BIOS, хранящиеся в энергонезависимой памяти CMOS. Для просмотра и изменения параметров BIOS предназначена специальная программа с названием BIOS Setup.

Способ запуска программы BIOS Setup зависит от ее изготовителя и версии, однако, обычно запуск выполняется, если во время начального теста оперативной памяти нажать клавиши Delete, F2 или комбинацию клавиш Alt+Ctrl+Esc. Более точную информацию о способе запуска этой программы нетрудно получить из документации, прилагающейся к системной плате компьютера.

Выключите питание компьютера, если оно было включено, и через 20-30 секунд включите его опять. Такая процедура гарантированно уничтожает резидентные вирусы, "выживающие" после теплой перезагрузки с помощью комбинации клавиш Ctrl+Alt+Del.

Когда начнется тест памяти, нажмите одну из перечисленных выше клавиш для запуска программы BIOS Setup. Через некоторое время на экране появится окно программы BIOS Setup. Его внешний вид зависит от изготовителя и версии программы.

Прежде всего, следует проверить установку стандартных параметров BIOS. Обратите особое внимание на типы и параметры установленных жестких дисков HD (Hard disk) и типы накопителей на гибких магнитных дисках FD (Floppy Drive).

Перепишите параметры жестких дисков, такие как тип, количество цилиндров, головок и секторов на одной дорожке. Сравните эти значения с паспортными данными, взятыми из документации на жесткий диск, и при необходимости скорректируйте.

Тип и параметры диска

Если в компьютере установлены диски SCSI, тип диска не играет никакой роли и его можно не проверять. Что же касается дисков IDE, то тип таких дисков представляет собой число, обычно лежащее в диапазоне значений от 1 до 47.

При этом типам от 1 до 46 соответствуют стандартные наборы параметров для старых дисков малого объема. Для современных устройств IDE тип выбирается автоматически или указывается тип 47, что позволяет выполнять ручную установку количества цилиндров, головок и секторов на одной дорожке. В любом случае обязательно проверьте параметры по документации, поставляющейся вместе с диском.

Очень часто для дисков IDE используется так называемая логическая адресация блоков LBA (Logical Block Addressing). Если включен режим LBA, в распоряжение операционной системы предоставляется "виртуальный" диск, в котором, по сравнению с реальным диском, меньше дорожек, но больше головок. Например, реальный диск может иметь 4000 дорожек и 4 головки, а "виртуальный" - 1024 дорожки и 256 головок.

Зачем это нужно?

Из-за внутренних ограничений операционная система MS-DOS не может работать с дорожками, номер которых превышает значение 1023. Однако современные дисковые накопители обладают значительной емкостью (порядка 20-60 Гбайт и даже больше), поэтому в них имеется очень много дорожек. Другие операционные системы, такие как IBM OS/2, Microsoft Windows NT/2000, Linux или Novell NetWare, не имеют ограничений на количество адресуемых дорожек диска. Для доступа к диску вместо BIOS они используют специальные дисковые драйверы.

Что же касается MS-DOS, то без дополнительных мер максимальный размер раздела диска не будет превышать 585 Мбайт.

Логическая адресация блоков LBA, выполняемая контроллером диска, позволяет операционной системе MS-DOS работать с разделами очень большого размера, поэтому Вы можете столкнуться с LBA при исследовании большинства современных компьютеров.

Тип FD

Обратите также внимание на тип FD (накопитель на гибких магнитных дисках или дискетах). Если FD с обозначением A: отмечен как Not Installed или Disabled, Вы не сможете загрузить MS-DOS или другую операционную систему с дискеты.

Расширенные параметры BIOS

В меню расширенных параметров BIOS обратите внимание на порядок загрузки операционной системы. Если указан порядок загрузки C:, A:, Вы не сможете загрузить операционную систему с дискеты. При необходимости измените порядок загрузки на A:, C: или A:, CD-ROM, C:.

После завершения всех работ с компьютером верните установку C:, A:, CD-ROM или C: Only (если такое значение есть в данной версии BIOS). В этом случае компьютер будет надежно защищен от заражения загрузочным вирусом через дискеты.

Установка параметров BIOS по умолчанию

Программа BIOS Setup предоставляет вам возможность установить параметры BIOS, принятые по умолчанию.

При этом способ установки зависит от BIOS. Например, программа BIOS Setup, созданная фирмой AMI, позволяет вам загрузить два набора параметров BIOS.

Первый из них загружается при выборе в главном меню программы строки AUTO CONFIGURATION WITH BIOS DEFAULTS. Этот набор параметров предназначен для работы системной платы в стандартном режиме.

Второй набор параметров соответствует строке AUTO CONFIGURATION WITH POWER-ON DEFAULTS и используется главным образом в тех случаях, когда с первым набором компьютер не запускается. Во втором наборе устанавливаются более консервативные параметры (например, отключается кэширование основной оперативной памяти), что иногда позволяет запустить даже частично неисправный компьютер.

Анализ главной загрузочной записи MBR и таблицы разделов

Когда программа FDISK впервые создает разделы на жестком диске, она записывает в начало самого первого сектора жесткого диска (сектор 1, дорожка 0, головка 0) главную загрузочную запись MBR.

Главная загрузочная запись является программой, которая получает управление во время начальной загрузки операционной. Далее загрузочная запись продолжает процесс загрузки операционной системы.

Визуально отличить нормальный главный загрузочный сектор от поврежденного или зараженного вирусом сектора бывает не всегда просто. На рис. 1 показан дамп содержимого сектора с записью MBR, полученный с помощью программы Microsoft DiskProbe из комплекта Windows NT Resource Kit. Аналогичный дамп можно получить и с помощью редактора диска DISKEDIT из комплекта утилит Norton Utilities.

Рис. 1. Дамп сектора главной загрузочной записи MBR

Иногда вирус изменяет только несколько байт, в которые записан адрес загрузочного сектора операционной системы, оставляя программу загрузки нетронутой. Такие изменения можно обнаружить только дизассемблированием и последующим анализом восстановленного исходного текста программы загрузки. В некоторых случаях изменения настолько заметны, что их можно обнаружить "невооруженным глазом", просто взглянув на листинг самого первого сектора диска. Разумеется, наилучшим способом обнаружения вирусного заражения MBR является проверка антивирусной программой.

Другая важнейшая часть первого сектора диска - таблица разделов диска Partition Table.

В ней имеется четыре элемента, которые описывают до четырех разделов диска. В последних двух байтах сектора находится значение 0xAA55. Это признак таблицы разделов - сигнатура таблицы разделов. Здесь и далее с префиксом 0x мы будем указывать шестнадцатеричные значения, а без такого префикса - десятичные. Обратите также внимание, что байты сигнатуры приведены в обратном порядке - байт с младшим значением находится по младшему адресу. Это особенность архитектуры процессоров фирмы Intel.

В разделах диска располагаются логические диски. Можно создать, например, один первичный раздел для диска C: и один вторичный раздел, в котором создаются логические диски D:, E: и т. д.

Программа Microsoft Disk Probe позволяет просмотреть (и отредактировать) содержимое таблицы разделов в отформатированном виде, как это показано на рис. 2.


Рис. 2. Просмотр содержимого таблицы разделов диска

Описание формата таблицы разделов

Формат самого первого сектора жесткого диска можно представить следующим образом:

Как видно из этой таблицы, байты со смещением от 0 до 0x1BE занимает главная загрузочная запись, то есть программа. Далее идут четыре элемента таблицы разделов, причем каждый элемент занимает 0x10 байт. После таблицы располагаются два байта признака таблицы разделов.

В элементе таблицы раздела записана информация о расположении и размере раздела в секторах, а также о назначении раздела. Формат элемента таблицы раздела представлен ниже:

Первый байт элемента таблицы раздела содержит признак активного раздела. Если раздел активный, из него будет выполняться загрузка операционной системы. Часто диск содержит одновременно несколько активных разделов, принадлежащих разным операционным системам.

Следующие три байта определяют физический адрес на диске начального сектора раздела (описывающий данный элемент раздела).

В байте со смещением 1 записан номер головки начального сектора раздела. В двухбайтовом поле со смещением 2 закодирован номер сектора и номер дорожки самого первого сектора раздела. При этом биты 0...5 этого поля задают номер сектора, а биты 6...15 - номер дорожки.

Байт со смещением 4 содержит тип раздела, зависящий от типа операционной системы и типа файловой системы.

Ниже мы привели некоторые наиболее распространенные типы (здесь FAT-12, FAT-16 и FAT-32 обозначают различные модификации файловой системы FAT, подробнее об этом мы расскажем позже):

В байте таблицы разделов со смещением 5 и двухбайтовом слове со смещением 6 записаны номер головки, номер сектора и номер дорожки последнего раздела.

Последние два поля элемента таблицы разделов имеют длину 4 байта и содержат, соответственно, относительный номер самого первого сектора в разделе (то есть относительный номер сектора начала раздела) и количество секторов, имеющихся в разделе. Именно эти поля используются операционной системой Microsoft Windows NT для вычисления расположения раздела.

Остановимся подробнее на относительном номере самого первого сектора в разделе.

Значение относительного номера, равное 0, соответствует дорожке 0, головке 0, сектору 1. При увеличении относительного номера сектора вначале увеличивается номер сектора на дорожке, затем номер головки, и, наконец, номер дорожки. Зная номер дорожки, номер сектора на дорожке и номер головки, можно вычислить относительный номер сектора по следующей формуле:

RelSect = (Cyl * Sect * Head) + (Head * Sect) + (Sect - 1)

Здесь Cyl обозначает номер дорожки, Sect - номер сектора на дорожке, Head - номер головки.

Обычно разделы диска начинаются с четных номеров дорожек, за исключением самого первого раздела. Этот раздел может начинаться с сектора 2 нулевой дорожки (головка 0), так как самый первый сектор диска занят главной загрузочной записью.

Прослеживание списка разделов диска

В операционной системе MS-DOS первичный раздел должен быть единственным и активным, он используется как диск С: и из него выполняется загрузка операционной системы. В расширенном разделе программа FDISK создает логические диски D:, E: и так далее.

Если байт кода раздела имеет значение 5, то в начале соответствующего раздела располагается сектор, содержащий таблицу логических дисков. Эта таблица является расширением таблицы разделов диска, расположенной в самом первом секторе физического диска.

Таблица логических дисков имеет формат, аналогичный таблице разделов диска, но содержит только два элемента.

Один из них указывает на первый сектор логического диска, он имеет значение типа раздела 1 или 4 (для MS-DOS). Второй элемент может иметь значение типа раздела 5 (для MS-DOS) или 0. Если этот код равен 5, то элемент указывает на следующую таблицу логических дисков. Если код системы равен 0, то соответствующий элемент не используется. Выше мы приводили коды первичных и расширенных разделов для разных операционных систем.

Таким образом, таблицы логических дисков связаны в список. Элемент таблицы разделов диска, соответствующий первичному разделу, указывает на начало этого списка.

Для таблицы логических дисков имеется отличие в использовании полей границ логических дисков. Если раздел первичный, эти границы вычисляются относительно начала расширенного раздела. Для расширенных разделов используется абсолютная адресация (относительно физического начала диска).

При помощи кнопки Next Partition (рис. 2) Вы можете просмотреть весь список таблиц логических дисков.

Проверка таблицы разделов при помощи программы DISKEDIT

Упомянутая ранее программа Microsoft Disk Probe работает только в среде операционных систем Microsoft Windows NT и Microsoft Windows 2000. Что же касается MS-DOS и Microsoft Windows 95/98, то здесь для анализа системных структур диска мы рекомендуем редактор DISKEDIT из пакета Norton Utilities. Лучше всего записать эту программу на системную дискету. Только при загрузке с такой дискеты Вы сможете исследовать зараженную вирусами или разрушенную файловую систему, когда MS-DOS не загружается с жесткого диска.

Запустив DISKEDIT, воспользуйтесь меню Object. Для начала выберите из этого меню строку Drive. Если на физическом жестком диске имеются исправные разделы с определенными в них логическими дисками, на экране появится список логических дисков.

Если файловая система разрушена до такой степени, что невозможно выполнить загрузку операционной системы с диска, а при ее загрузке с дискеты не видно ни одного логического диска, при выборе строки Drive вам будет показан список физических дисков (рис. 3).


Рис. 3. Выбор физического диска в программе DISKEDIT

Для просмотра самого первого сектора физического диска, содержащего главную загрузочную запись и таблицу разделов, выберите физический диск Hard Disk 1 и нажмите кнопку OK. После этого на экране появится содержимое искомого сектора в виде дампа. Сектор имеет размер 512 байт, поэтому на одном экране его содержимое не помещается. Вы можете нажать клавишу PgDn и посмотреть вторую часть сектора.

На что здесь нужно обратить внимание?

В начале сектора находится главная загрузочная запись. Она, как мы уже говорили, является программой. При наличии достаточного опыта Вы можете ее дизассемблировать и исследовать. В любом случае следует проверить длину программы. Эта длина не должна быть очень большая - после программы загрузки до начала таблицы разделов должны располагаться нулевые байты. Кроме того, внутри программы загрузки должны быть сообщения Invalid Partition table, Error loading operating system и Missing operating system (для русских версий операционных систем эти сообщения будут на русском языке).

Что же касается второй части самого первого сектора жесткого диска, в ней должна находиться таблица разделов диска.

Последние два байта должны содержать признак таблицы разделов (сигнатуру) - шестнадцатеричное значение 0хAA55.

Вы можете выполнить анализ таблицы разделов диска, пользуясь приведенной выше информацией о ее формате. Напомним, что таблица располагается в первом секторе диска со смещением 0x1BE. Однако намного удобнее воспользоваться для анализа этой таблицы форматным просмотром редактора DISKEDIT.

Установите курсор (мышью или клавишами перемещения курсора) на байт со смещением 0x1BE, который соответствует началу таблицы разделов. Затем в меню View выберите строку as Partition Table. На экране появится таблица разделов диска в отформатированном виде (рис. 4).


Рис. 4. Просмотр таблицы разделов диска

В столбце System отображается информация о типе разделов. Она строится на основе анализа поля типа раздела, хранящегося в соответствующей строке таблицы разделов. Если раздел активен, в столбце Boot для него указана строка Yes, если нет - строка No.

Столбцы Starting Location и Ending Location в полях Side, Cylinder и Sector содержат в расшифрованном виде информацию о расположении самого первого и самого последнего секторов раздела.

Номер относительного сектора, с которого начинается раздел, Вы можете узнать из столбца Relative Sectors, а общее количество секторов - в столбце Number of Sectors.

Полученную информацию о границах разделов имеет смысл сравнить с параметрами жесткого диска, полученными с помощью программы BIOS Setup, так как вирусы могут прятать свое тело в секторах диска, расположенных в конце диска и не распределенных ни одному разделу. Однако при этом следует учитывать, что современные дисковые контроллеры способны выполнять логическую адресацию блоков (режим LBA), искажающую полученную картину.

Поясним сказанное на примере.

В одном из наших компьютеров установлен диск, имеющий 1057 дорожек и 16 головок. На каждой дорожке расположено 63 сектора размером 512 байт. При этом общий объем диска составляет 520 Мбайт. Именно эти параметры нам сообщила программа BIOS Setup.

Программа FDISK определила, что на диске имеется два раздела, размером 300 и 219 Мбайт, а диск используется на 100 процентов. В то же время программа DISKEDIT для этого диска показывает, что последний сектор последнего раздела расположен на дорожке с номером 526.

На первый взгляд, тут что-то не так: программа BIOS Setup сообщает нам, что на диске имеется 1057 дорожек и 16 головок, а в таблице разделов для последнего сектора последнего раздела мы видим совсем другие значения: этот сектор расположен на 526 дорожке, а номер головки равен 31!

Причина такого несоответствия заключается в том, что наш контроллер IDE выполняет логическую адресацию дорожек и головок, предоставляя программам "виртуальный" диск, где по сравнению с реальным диском меньше дорожек, но больше головок.

Сохранение параметров диска и таблицы разделов диска

Прежде чем продолжить исследование файловой системы, мы настоятельно рекомендуем Вам записать параметры диска, определенные с помощью программы BIOS Setup, и содержимое таблицы разделов диска. Просто перепишите полученные значения на лист бумаги. Если в ходе ремонта Вы случайно разрушите область данных BIOS или главный загрузочный сектор, то сможете легко восстановить критичные данные.

Можно также сохранить содержимое сектора MBR в файле, используя соответствующие функции программ DISKEDIT или Microsoft Disk Probe. Подробные инструкции есть в документации и справочных системах указанных программ. Файл необходимо записать на дискету или на другой диск.

Исследование расширенного раздела диска

Если на диске создан только первичный раздел, можно переходить к анализу логического диска C: и других логических дисков. Если же есть расширенный раздел, необходимо проверить сектор таблицы логических дисков -самый первый сектор в расширенном разделе.

Чтобы посмотреть этот сектор, запустите программу DISKEDIT, определите с ее помощью расположение расширенного раздела (дорожка, головка и номер сектора). Затем из меню Object выберите строку Physical Sector. На экране появится диалоговая панель Select physical sector range, с помощью которой можно выбрать для просмотра один или несколько секторов.

Сектор таблицы логических дисков, в отличие от сектора главной загрузочной записи, практически пуст. Все байты в нем от начала и до смещения 0x1BD включительно должны содержать нулевое значение. Далее со смещения 0x1BE располагается таблица логических дисков, состоящая из двух элементов. В конце сектора располагается уже знакомая вам сигнатура - значение 0xAA55.

Структура элементов полностью аналогична структуре элементов таблицы разделов, поэтому Вы можете использовать форматный просмотр. Для этого установите курсор на байт со смещением 0x1BE, и затем из меню View выберите строку as Partition Table.

Сохранение содержимого таблиц логических дисков

На том же листе бумаги, где Вы записывали параметры диска и сведения из таблицы разделов диска, запишите информацию обо всех логических дисках, полученную из таблиц логических дисков. Если содержимое таблиц логических дисков будет случайно разрушено, Вы потеряете доступ к логическим дискам.

Исследование логических дисков FAT

Формат логических дисков, расположенных в разделах жесткого диска, полностью идентичен формату дискет, поэтому многое из сказанного здесь будет справедливо и для дискет.

В самом начале логического диска располагается сектор загрузочной записи Boot Record (не путайте его с сектором главной загрузочной записи MBR, который является самым первым на физическом диске), а также, возможно, зарезервированные секторы.

Вслед за сектором Boot Record находятся две копии таблицы размещения файлов FAT (File Allocation Table), о которой мы еще будем говорить, и корневой каталог. Область данных, занимающая оставшуюся часть логического диска, содержит файлы и остальные каталоги.

Проверка загрузочного сектора

Адрес загрузочного сектора логического диска нетрудно найти в таблице логических дисков. В загрузочном секторе логического диска находится программа начальной загрузки операционной системы. Эта программа помещается в оперативную память загрузчиком, расположенным в главной загрузочной записи MBR.

Назначение программы, расположенной в загрузочном секторе логического диска - загрузка операционной системы, находящейся на этом логическом диске.

Таким образом, при включении питания после выполнения процедуры тестирования BIOS загружает в оперативную память содержимое главной загрузочной записи MBR и передает ей управление. Главная загрузочная запись просматривает таблицу разделов диска и находит активный раздел. При наличии нескольких таких разделов пользователю предлагается сделать выбор раздела для загрузки.

Затем запись MBR считывает загрузочный сектор Boot Record логического диска, расположенного в выбранном активном разделе, и передает управление находящейся в этом секторе программе загрузки операционной системы. Эта программа, в свою очередь, выполняет всю работу по загрузке операционной системы в память компьютера.

Формат загрузочного сектора зависит от версии операционной системы. Однако в любом случае помимо программы начальной загрузки операционной системы загрузочная запись содержит параметры, описывающие характеристики данного логического диска. Все эти параметры располагаются в самом начале сектора, в его так называемой форматированной области. Последние два байта загрузочного сектора содержат уже знакомую вам сигнатуру 0xAA55.

Перед исследованием загрузочной записи Вы должны при помощи команды VER определить версию операционной системы, установленной в компьютере. Для версий MS-DOS, более ранних, чем 4.0, формат загрузочной записи приведен ниже:

В самом начале загрузочного сектора располагается команда внутрисегментного перехода JMP. Она нужна для обхода форматированной зоны сектора и передачи управления загрузочной программе, располагающейся со смещением 0x1E.

Название фирмы-изготовителя не используется операционной системой и представляет собой текстовую строку длиной 8 байт.

Со смещением 0xB располагается блок параметров BIOS Parameter Block (BPB). Этот блок содержит некоторые характеристики логического диска, такие как количество секторов в одном кластере, общее количество секторов и т. д. Формат блока BPB будет описан позже.

Поля загрузочного сектора со смещениями 0x18 и 0x1A содержат, соответственно, количество секторов на дорожке и количество головок. Поле со смещением 0x1C содержит количество "скрытых" секторов, которые не принадлежат ни одному логическому диску. Эти секторы могут использоваться для схемы разделения физического диска на разделы и логические диски (в них может находиться таблица разделов диска или таблицы логических дисков).

Смещение,
байт
Размер,
байт
Описание
0 3 Команда JMP xxxx (переход на программу начальной загрузки)
3 8 Название фирмы-изготовителя операционной системы и версия
0xB 25 Extended BPB - расширенный блок параметров BIOS
0x24 1 Физический номер устройства (0 - накопитель на гибком магнитном диске НГМД, 0x80 - жесткий диск)
0x25 1 Зарезервировано
0x26 1 Значение 0x29 - признак расширенной загрузочной записи Extended BPB
0x27 4 Серийный номер диска (Volume Serial Number), создается во время форматирования диска
0x2B 11 Метка диска (Volume Label)
0x36 8 Текстовая строка "FAT12" или "FAT16"

Первые два поля имеют то же назначение, что и в загрузочной записи старых версий MS-DOS.

Поле со смещением 26h содержит число 0x29, означающее, что используется формат расширенной загрузочной записи и, соответственно, расширенный блок параметров BIOS Extended BPB.

Серийный номер диска формируется во время форматирования диска на основе даты и времени форматирования. Поэтому все диски и дискеты имеют разные серийные номера.

Метка диска формируется при форматировании и может быть изменена, например, командой LABEL операционной системы MS-DOS. Одновременно метка диска помещается в корневой каталог в виде специального дескриптора. О формате каталогов и дескрипторов, а также о формате таблицы размещения файлов FAT мы расскажем позже.

Теперь о блоке параметров BIOS BPB и расширенном блоке параметров BIOS Extended BPB.

Для версий MS-DOS, более ранних, чем 4.0, блок BPB имеет следующий формат:

Расширенный блок параметров BIOS файловых систем FAT-12 и FAT-16 состоит из обычного блока BPB и дополнительного расширения:

Смещение,
байт
Размер,
байт
Описание
0 2
2 1
3 2
5 1 Количество таблиц FAT
6 2
8 2 Общее количество секторов на носителе данных (в разделе MS-DOS)
0Ah 1 Тип носителя данных
0Bh 2
0Dh 2
0Fh 2 Количество магнитных головок
11h 2
13h 2 Количество скрытых секторов для раздела, превышающего по размеру 32 Мбайт
15h 4

Для дискет и диска тип носителя данных может принимать следующие значения:

Значение Количество
сторон
Количество
секторов
Диаметр,
дюймы
Емкость,
Кбайт
0xF0 2 18 3,5 1440
0xF0 2 36 3,5 2880
0xF0 2 15 5,25 1200
0xF8 - - - Жесткий диск любой емкости
0xF9 2 9 3,5 720
0xF9 2 15 5,25 1200
0xFA 1 8 5,25 320
0xFB 2 8 3,5 640
0xFC 1 9 5,25 180
0xFD 2 9 5,25 360
0xFE 1 8 5,25; 8 160
0xFF 2 8 5,25; 8 320

Что же касается файловой системы FAT-32, то формат ее загрузочного сектора аналогичен только что описанному, за исключением блока BPB. Размер этого блока составляет 0x25 байт, а формат приведен ниже:

Смещение,
байт
Размер,
байт
Описание
0 2 Количество байт в одном секторе диска
2 1 Количество секторов в одном кластере
3 2 Количество зарезервированных секторов
5 1 Количество таблиц FAT
6 2 Максимальное количество дескрипторов файлов в корневом каталоге диска
8 2 Общее количество секторов на носителе данных (в разделе)
0xA 1 Тип носителя данных
0xB 2 Количество секторов, занимаемых одной копией FAT
0xD 2 Количество секторов на дорожке
0xF 2 Количество магнитных головок
0x11 4 Количество скрытых секторов для раздела, который по размеру меньше 32 Мбайт
0x15 4 Общее количество секторов на логическом диске для раздела, превышающего по размеру 32 Мбайт
0x19 4 Размер таблицы FAT в секторах
0x1D 2 Расширенные флажки
0x1F 2 Версия файловой системы
0x21 4 Номер первого кластера корневого каталога
0x25 2 Сектор, содержащий различные сведения о файловой системе в целом
0x27 2 Номер сектора, в котором находится резервная копия загрузочного сектора
0x29 12 Зарезервировано

Для форматного просмотра блока параметров BPB (или расширенного блока параметров Extended BPB, в зависимости от версии MS-DOS) удобно использовать программу DISKEDIT. При этом Вы можете найти загрузочную запись двумя способами.

Во-первых, можно выбрать из меню Object строку Boot Record (выбрав предварительно нужный логический диск при помощи строки Drive того же меню). Вы сразу же окажитесь в режиме форматного просмотра блока параметров BIOS выбранного вами диска (рис. 5).


Рис. 5. Просмотр блока параметров BIOS

Во-вторых, если логические диски недоступны, но Вам удалось считать таблицу разделов или таблицу логических дисков, Вы можете перейти к просмотру загрузочной записи, указав ее физический адрес. Для этого из меню Object надо выбрать строку Physical Address (как это было описано раньше). На экране появится дамп первой части загрузочного сектора. Нажав клавишу PgDn, Вы можете перейти к просмотру второй части загрузочного сектора.

При помощи строк as Boot Record и as Hex меню View Вы можете перейти, соответственно, к форматному и неформатному режиму просмотра загрузочного сектора.

Аналогичные возможности форматного просмотра загрузочных записей FAT есть и у программы Microsoft Disk Probe.

Формирование загрузочной записи и блока параметров BIOS происходит при форматировании логического диска (например, командой FORMAT). Если с помощью программы FDISK удалить логический диск, а потом создать на его месте новый такого же размера, блок BPB окажется разрушенным. При этом Вам придется отформатировать логический диск заново.

Блок параметров BIOS содержит критичную информацию, при разрушении которой становится невозможным нормальный доступ к файлам и каталогам, расположенным на логическом диске. Неосторожное обращение с загрузочным сектором жесткого диска может привести к необходимости переформатирования соответствующего логического диска с полной потерей хранившихся там данных.

Перед тем как продолжить дальнейший анализ файловой системы, полезно сделать распечатку содержимого загрузочных секторов всех имеющихся логических дисков в форматном и неформатном виде, так как блок параметров BIOS содержит сведения, необходимые для поиска и анализа других логических структур файловой системы. Для распечатки выберите из меню Tools строку Print Object as и в появившейся на экране диалоговой панели выберите строку Boot Record. Затем нажмите кнопку OK.

Аналогичным образом Вы можете распечатать содержимое других логических структур файловой системы, например, содержимое таблицы разделов диска.

Анализ зарезервированных секторов

Между загрузочным сектором и таблицей размещения файлов FAT могут находиться зарезервированные секторы, которые являются служебными для файловой системы или не используются.

Количество секторов, зарезервированных на логическом диске, можно узнать из блока параметров BIOS (BPB или Extended BPB, в зависимости от версии операционной системы). Искомое значение находится в поле этого блока со смещением 3. При форматном просмотре количество зарезервированных секторов указано в строке Reserved sectors at beginning.

Если зарезервирован только один сектор, то первая копия таблицы размещения файлов FAT располагается сразу вслед за загрузочным сектором. Именно загрузочный сектор в данном случае и является зарезервированным.

Когда зарезервировано несколько секторов, между загрузочным сектором и первой копией таблицы FAT может находиться еще несколько секторов, содержащих нулевые значения. Если компьютер заражен вирусом, в этих секторах может быть спрятано тело вируса или копия оригинальной загрузочной записи, замещенной вирусом.

Таблицы размещения файлов FAT

Операционная система объединяет отдельные секторы диска в так называемые кластеры. При создании новых каталогов и непустых файлов для них выделяется один или несколько кластеров. Если размер файла увеличивается, для него выделяются дополнительные кластеры.

Размер кластера в секторах (то есть количество секторов в одном кластере) нетрудно узнать из поля блока параметров BIOS BPB со смещением 2. При форматном просмотре содержимого загрузочного сектора размер кластера отображается в строке Sectors per cluster.

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

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

Где же хранятся списки кластеров?

Эти списки хранятся в таблице размещения файлов FAT (File Allocation Table), к анализу которой мы скоро приступим.

Таблицу размещения файлов можно представить себе как массив, содержащий информацию об относительном расположении кластеров всех файлов. Размер массива определяется общим количеством кластеров на логическом диске. В элементах массива находятся списки кластеров, распределенных файлам, причем элементы массива, соответствующие свободным кластерам, содержат нулевые значения.

Если файл занимает несколько кластеров, то такие кластеры связаны в список. При этом элементы таблицы FAT содержат номера следующих используемых данным файлом кластеров. Конец списка отмечен в таблице специальным значением. Номер первого кластера, распределенного файлу, хранится в элементе каталога, описывающего данный файл (в дескрипторе файла).

Таким образом, зная имя файла и каталог, где этот файл расположен, операционная система MS-DOS может определить номер первого кластера, распределенного файлу, а затем, проследив список кластеров по таблице FAT, определить и номер остальных кластеров, занятых этим файлом.

Программа FORMAT, предназначенная для форматирования диска и некоторые специальные программы аналогичного назначения проверяют логический диск на предмет наличия дефектных областей. Кластеры, расположенные в этих дефектных областях, отмечаются в FAT как плохие и не используются операционной системой.

Для примера на рис. 6 показаны упрощенные дескрипторы корневого каталога диска C:. В них описаны файлы MYFILE1.DOC и MYLETTER.DOC, а также элементы таблицы размещения файлов FAT, выделенные для этих файлов.


Рис. 6. Пример распределения кластеров для файлов MYFILE1.DOC и MYLETTER.DOC

Файл MYFILE1.DOC занимает три кластера с номерами 11, 17 и 18, а файл MYLETTER.DOC - два кластера с номерами 12 и 13. В каталоге указаны номера первых кластеров, распределенных этим файлам (соответственно 11 и 12). Последние ячейки, соответствующие последним кластерам, распределенным файлам, содержат специальное значение - признак конца цепочки кластеров. Для 16-разрядного формата FAT это 0xFFFF, а для 12-разрядного - 0xFFF.

Формат таблицы FAT

Остановимся подробнее на формате таблицы FAT.

Таблица FAT может иметь 12-, 16- или 32-разрядный формат, при этом файловая система будет обозначаться как FAT-12, FAT-16 и FAT-32, а в таблице для хранения информации об одном кластере диска используется 12 , 16 или 32 бит, соответственно.

Первый из этих двух форматов (12-разрядный) применяется для дискет и дисков с небольшим количеством секторов. Таблица размещения файлов FAT-12 дискеты полностью помещается в одном секторе.

Если размер диска слишком большой, для представления всех кластеров двенадцати разрядов будет недостаточно. В этом случае используется 16- или 32- разрядный формат FAT. При этом операционная система может работать с диском, который имеет размер более 32 Мбайт. Поэтому для жестких дисков всегда используется 16- или 32-разрядный формат таблицы FAT.

Как узнать формат FAT?

Формат FAT можно определить, анализируя содержимое поля кода раздела соответствующего элемента таблицы разделов. Это поле расположено в главной загрузочной записи MBR. Если оно содержит значение 1, используется 12-разрядный формат, если 4, то 16-разрядный, а если 0xB или 0xC - 32-разрядный.

Первый элемент таблицы FAT имеет особый формат.

Самый первый байт таблицы FAT называется "Описатель среды" (Media Descriptor). Он имеет такое же значение, как и байт-описатель среды, загрузочного сектора логического диска. Следующие 5 байт для 12-разрядного формата или 7 байт для 16-разрядного формата всегда содержат значение 0xFF.

Вся остальная часть таблицы FAT состоит из 12-, 16- или 32-разрядных ячеек. Каждая ячейка соответствует одному кластеру диска. Эти ячейки для разных форматов таблицы FAT могут содержать следующие значения:

Просмотр таблицы FAT

Для просмотра таблицы размещения файлов FAT мы воспользуемся программой DISKEDIT. Из меню Object выберите строку Drive и укажите интересующий Вас диск.

Затем из меню Object выберите одну из двух строк - 1st FAT или 2nd FAT. На экране появится, соответственно, содержимое первой или второй копии таблицы FAT в отформатированном виде (рис. 7).


Рис. 7. Просмотр первой копии таблицы размещения FAT в отформатированном виде

Вы также можете найти первую или вторую копию таблицы FAT, зная физический адрес загрузочной записи логического диска. Напомним, что загрузочная запись располагается в самом первом секторе дискеты. Расположение загрузочной записи для логических дисков, созданных в разделах жесткого диска, можно определить из таблицы разделов (для логического диска C:) или таблицы логических дисков (для логических дисков, созданных в расширенном разделе).

Далее, в рамках логического диска существует своя последовательная нумерация секторов. При этом порядок нумерации выбран таким, что при последовательном увеличении номера сектора вначале увеличивается номер головки, затем номер дорожки.

Поясним это на примере.

Пусть, например, у нас есть дискета с девятью секторами на дорожке. Сектор с логическим номером, равным 1, расположен на нулевой дорожке и для обращения к нему используется нулевая головка. Это самый первый сектор на дорожке, он имеет номер 1. Следующий сектор на нулевой дорожке имеет логический номер 2, последний сектор на нулевой дорожке имеет логический номер 9. Сектор с логическим номером 10 расположен также на нулевой дорожке. Это тоже самый первый сектор на дорожке, но теперь для доступа к нему используется головка с номером 1. И так далее, по мере увеличения логического номера сектора изменяются номера головок и дорожек.

Согласно такой нумерации, сектор с последовательным номером 0 - это загрузочный сектор. Для того чтобы просмотреть содержимое загрузочного сектора при помощи программы DISKEDIT, Вы можете выбрать из меню Object строку Sector и в появившейся диалоговой панели указать номер сектора, равный нулю.

Заметьте, что в этой диалоговой панели в рамке, озаглавленной Sector Usage, показано распределение секторов. Пользуясь этим распределением, Вы легко сможете определить последовательный номер сектора загрузочной записи, начало и границы обеих копий FAT. Кроме того, нетрудно определить начало и границы корневого каталога и области данных, содержащих файлы и другие каталоги.

С помощью меню View Вы можете просмотреть содержимое таблицы FAT в виде дампа.

Визуально таблица размещения файлов должна содержать в основном монотонно изменяющиеся последовательности номеров кластеров, нулевые значения, соответствующие свободным кластерам, а также значение 0xFFFF (0xFFF для FAT-12 или 0xFFFFFFFF для FAT-32), которое является признаком конца цепочки кластеров.

Вслед за первой копией таблицы FAT должна находиться вторая копия FAT.

Размер таблицы FAT Вы можете определить, зная содержимое поля блока параметров BIOS BPB со смещением 0xB (количество секторов, занимаемых одной копией FAT).

В результате сбоя или вирусной атаки таблица FAT может быть либо полностью разрушена, либо изменена (например, зашифрована или расписана нулями). Если цепочка кластеров для нужного Вам файла разрушена частично или полностью, восстановление такого файла может стать непростой задачей.

Некоторые вирусы пользуются тем фактом, что конец цепочки кластеров может отмечаться любым значением в указанных выше диапазонах (например, от 0xFFF8 до 0xFFFF для 16-разрядной таблицы FAT), в то время как операционная система использует значения 0FFFFh или 0FFFh.

Вирус может выделять для себя зараженные файлы (чтобы избежать повторного заражения), отмечая последний распределенный этим файлам кластер любым другим значением, например, 0xFFF9. При этом операционная система будет продолжать работать нормально, как будто ничего не произошло.

Хотя вторая копия таблицы FAT создается как резервная, для облегчения процедуры восстановления в случае разрушения первой копии, не стоит особенно надеяться на то, что в случае вирусной атаки Вы сможете просто скопировать вторую копию FAT на место первой. Вторая копия FAT также может оказаться разрушенной или зашифрованной, причем иным способом, нежели первая.

Формат каталогов

В случае FAT-12 и FAT-16 непосредственно после второй копии таблицы размещения файлов следует корневой каталог. Расположение корневого каталога для FAT-32 указано в блоке BPB (слово со смещением 0x21).

Размер корневого каталога в секторах Вы можете определить из блока параметров BIOS BPB. Поле со смещением 6 содержит максимальное количество дескрипторов файлов в корневом каталоге диска (этому полю соответствует строка Root directory entries при форматном просмотре содержимого загрузочного сектора программой DISKEDIT).

Размер одного дескриптора составляет 32 байта, поэтому, умножив максимальное количество дескрипторов на это число, мы получим размер корневого каталога в байтах. Зная размер сектора (512 байт), нетрудно определить количество секторов, занимаемых корневым каталогом.

Теперь поговорим о дескрипторах файлов.

Любой каталог (и корневой в том числе) содержит 32-байтовые элементы - дескрипторы, описывающие файлы и другие каталоги. Приведем формат дескриптора, применяющийся в операционной системе MS-DOS:

Обратите внимание на поле со смещением 0x1A. Это номер первого кластера, распределенного файлу или каталогу (если дескриптор описывает каталог более низкого уровня). Пользуясь этим значением, Вы сможете проследить по таблице размещения файлов FAT всю цепочку кластеров, распределенных данному файлу или каталогу. Таким образом, у нас имеется способ отыскать начало цепочки кластеров для любого файла - нужно лишь найти соответствующий дескриптор.

В любом каталоге, кроме корневого, два первых дескриптора имеют специальное назначение. Первый дескриптор содержит в поле имени строку:

". "

Этот дескриптор указывает на содержащий его каталог. То есть каталог имеет ссылку сам на себя. Второй специальный дескриптор содержит в поле имени строку:

".. "

Этот дескриптор указывает на каталог более высокого уровня.

Если в поле номера первого занимаемого кластера для дескриптора с именем ".. " находится нулевое значение, это означает, что данный каталог содержится в корневом каталоге.

В древовидной структуре каталогов имеются ссылки, адресующие каталоги как в прямом, так и в обратном направлении. Эти ссылки можно использовать для проверки сохранности структуры каталогов файловой системы.

Байт атрибутов является принадлежностью каждого файла. Разряды байта атрибутов комбинируются при помощи логической операции ИЛИ. Они имеют следующие значения:

Бит Описание
0 Файл предназначен только для чтения. В этот файл нельзя писать и его нельзя стирать
1

Скрытый файл. Этот файл не будет появляться в списке файлов, отображаемых командой DIR

2

Системный файл. Этот бит обычно установлен для файлов, являющихся составной частью операционной системы

3

Данный дескриптор описывает метку диска. Для этого дескриптора поле имени файла и поле расширения имени файла должны рассматриваться как одно поле длиной 11 байт. Это поле содержит метку диска

4 Дескриптор описывает файл, являющийся подкаталогом данного каталога
5

Флаг архивации. Если этот разряд установлен в 1, то данный файл не был выгружен утилитой архивации

6-7 Зарезервированы

Как правило, файлы имеют следующие атрибуты:

При удалении файла первый байт его имени заменяется байтом 0xE5 (символ "х"). После этого все кластеры, распределенные удаленному файлу, отмечаются в таблице FAT как свободные.

Если Вы только что удалили файл, его еще можно восстановить, так как в дескрипторе сохранились все поля, кроме первого байта имени файла. Но если на диск записать новые файлы, то может получиться так, что содержимое кластеров удаленного файла будет изменено. При этом восстановление файла станет проблематичным.

Теперь о полях времени и даты.

Старшие пять разрядов поля времени содержат значение часа модификации файла, шесть разрядов с номерами 5-10 хранят значение минут модификации файла, и, наконец, в младших 5 разрядах находится значение секунд, деленное на 2. Для того чтобы время обновления файла уместилось в шестнадцати разрядах, пришлось пойти на снижение точности времени до двух секунд. В подавляющем большинстве случаев такое снижение точности не играет никакой роли.

Формат даты обновления файла напоминает формат времени. Разряды 9-15 отведены для хранения года, 5-8 - для хранения месяца и 0-4 - для хранения дня недели. Для того чтобы получить значение года обновления файла, необходимо прибавить к величине, хранимой в старших семи битах, значение 1980.

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

Поле длины в дескрипторе содержит точную длину файла в байтах. Для каталогов в поле длины записано нулевое значение.

Когда вирус заражает файл, его длина, как правило, увеличивается. Тем не менее, стелс-вирусы, скрывающие свое присутствие в системе, эффективно маскируют такое увеличение. Поэтому его можно заметить только при загрузке операционной системы с "чистой" дискеты, свободной от вирусного заражения.

Просмотр каталогов

Для просмотра каталогов с целью проверки их структуры мы воспользуемся программой DISKEDIT. Запустите эту программу, и из меню Object выберите строку Directory. На экране появится диалоговая панель Change Directory.

В левой части диалоговой панели отображается дерево каталогов текущего диска. Выберите в нем корневой каталог C:\ и нажмите кнопку OK. После этого на экране появится содержимое корневого каталога в форматированном виде (рис. 8).


Рис. 8. Просмотр первой копии таблицы размещения FAT в отформатированном виде

Анализируя полученную информацию, Вы можете обнаружить подозрительные изменения в полях размера файла, даты и времени. Кроме того, для каждого файла в столбце Cluster отображается номер распределенного ему первого кластера.

С помощью меню View можно переключиться в режим неформатированного просмотра, когда содержимое каталога отображается в виде дампа.

Обратите внимание на меню Link. С помощью этого меню Вы можете переходить к просмотру логически связанных между собой структур файловой системы.

В качестве упражнения выделите в корневом каталоге диска C: файл IO.SYS и затем выберите из меню Link строку Cluster chain (FAT). Вы увидите первую копию таблицы размещения файлов FAT, причем цепочка кластеров, выделенная файлу IO.SYS, будет выделена цветом. С помощью строки File меню Link нетрудно перейти в режим просмотра содержимого файла IO.SYS.

Отметим, что во многих случаях можно выполнять переходы между логически связанными структурами данных двойным щелчком левой клавиши мыши по изображению этих структур, что очень удобно. Подробности можно найти в документации к пакету программ Norton Utilities.

На что следует обратить внимание при проверке структуры каталогов?

Кроме визуальной проверки полей расположенных там дескрипторов следует просмотреть весь каталог до конца. Необходимо убедиться, что в каталоге отсутствуют посторонние данные. Они могут быть записаны туда вирусом.

Если перейти в режим неформатированного просмотра, то можно убедиться, что свободные элементы каталога содержат нулевые значения. Если же после свободных элементов находятся какие-либо данные, существует очень большая вероятность того, что они записаны туда вирусом или системой защиты программ от несанкционированного копирования (если исследуемый каталог содержит такие программы).

В том случае, когда каталог поврежден полностью или частично, ссылки на описанные в нем файлы будут потеряны. Если Вы найдете тем или иным способом секторы, содержащие нужный Вам файл с разрушенным дескриптором, то, пользуясь описанной ниже методикой, сможете восстановить дескриптор и получить доступ к файлу.

Каталоги в файловой системе VFAT

Восстанавливая файловую систему FAT компьютера с операционной системой Microsoft Windows 95/98/NT/2000, следует соблюдать осторожность, так как структура каталогов в ней отличается от той, что была описана выше.

Как Вы, возможно, знаете, пользователи Microsoft Windows 95/98 не слишком скованы ограничениями на длину имен файлов и каталогов. И хотя теоретически такое ограничение существует (255 символов), оно не имеет существенного значения.

Создавая новую операционную систему, программисты Microsoft нашли остроумное решение проблемы совместимости с программами MS-DOS, использующими имена в "формате 8.3" (8 символов - имя файла или каталога, 3 - расширение имени).

Это решение заключается в том, что в каталогах наряду с обычными дескрипторами располагаются дескрипторы специального вида. Количество таких дескрипторов зависит от длины имени файла или каталога. В этих-то дескрипторах и хранится длинное имя. Специально для программ MS-DOS создается обычный дескриптор, содержащий альтернативное имя, отвечающее стандартам MS-DOS.

Новая файловая система получила название VFAT.

Взгляните на рис. 9. На этом рисунке показана структура каталога, созданного в файловой системе Microsoft Windows 98.

Рис. 9. Расширенные и альтернативные дескрипторы длинных имен в корневом каталоге

Обратите внимание на три дескриптора, расположенных под дескриптором файла IO.SYS. Это и есть специальные расширенные дескрипторы, хранящие информацию о длинных именах в кодировке UNICODE (в этой кодировке каждый символ представлен двумя байтами). В данном случае в расширенных дескрипторах хранится имя каталога DesignWorkshop Lite Installer.

Для того чтобы специальные дескрипторы не мешали работе программ MS-DOS, в них установлены атрибуты Read Only, System, Hidden и Volume Label. Обычные программы MS-DOS игнорируют элементы каталога с таким экзотическим набором атрибутов.

Специальный дескриптор отмечается новой версией программы DISKEDIT как LFN (Long File Name) и ссылается на кластер с номером 0. Настоящий номер первого кластера, распределенного файлу или каталогу, находится в стандартном дескрипторе, расположенном непосредственно вслед за расширенным дескриптором. В данном случае это дескриптор каталога с названием DISIGN~1, расположенный в кластере с номером 1274.

Если имя файла или каталога превышает 8 символов, стандартный дескриптор, расположенный после расширенных, содержит альтернативное имя, состоящее из начальных символов имени, символа ~ (тильда) и десятичного числа. Этот дескриптор называется альтернативным.

Операционная система Microsoft Windows NT/2000 также создает расширенные и альтернативные дескрипторы в разделах FAT.

При помощи строки More главного меню программы DISKEDIT можно просмотреть или отредактировать остальные поля специальных дескрипторов.

Например, дата и время создания файла находятся, соответственно, в полях Create Date и Create Time. Дополнительно операционная система Microsoft Windows 95/98 фиксирует дату последнего обращения к файлу. Эту дату Вы можете увидеть в поле Accessed.

Поле EA содержит признак расширенных атрибутов и имеет нулевое значение для стандартных атрибутов.

Если имя настолько длинное, что не помещается в одном специальном дескрипторе, создается несколько таких дескрипторов, расположенных друг за другом. Следом за ними идет альтернативный дескриптор. В поле Ordinal находится порядковый номер специального дескриптора. Для последнего специального дескриптора в поле Last находится отметка Yes.

Для тех, кто интересуется точным форматом стандартных и расширенных дескрипторов VFAT, мы привели фрагмент исходных текстов программы CrashUndo 2000. Это объединение двух структур, первая из которых соответствует стандартному дескриптору, а вторая - расширенному:

Typedef union _FAT_DIR_ENTRY
{
struct _DIR
{
BYTE dir_Name; // имя
BYTE dir_Extension; // расширение имени
BYTE dir_Attributes; // атрибуты
BYTE dir_NTReserved; // зарезервировано для Windows NT
BYTE dir_CreateTimeTenth; // десятые доли времени создания
UINT16 dir_CreateTime; // время создания
UINT16 dir_CreateDate; // дата создания
UINT16 dir_LastAccessDate; // дата последнего доступа
UINT16 dir_FirstClusterHi; // старшее слово номера кластера
UINT16 dir_WriteTime; // время обновления
UINT16 dir_WriteDate; // дата обновления
UINT16 dir_FirstClusterLo; // младшее слово номера кластера
UINT32 dir_FileSize; // размер файла
} dir; struct _LFN
{
BYTE lfn_Sequence; // номер дескриптора
WCHAR lfn_Name1; // первая часть имени
BYTE lfn_Attributes; // атрибуты
BYTE lfn_LongEntryType; // признак расширенного атрибута
BYTE lfn_Checksum; // контрольная сумма имени
WCHAR lfn_Name2; // вторая часть имени
UINT16 lfn_Reserved; // зарезервировано
WCHAR lfn_Name3; // третья часть имени
} lfn;
} FAT_DIR_ENTRY, *PFAT_DIR_ENTRY;

Обратите внимание, что для хранения номера первого кластера, распределенного файлу или каталогу, используется два 16-разрядных поля dir_FirstClusterHi и dir_FirstClusterLo.

Что же касается таблицы размещения файлов FAT, то хотя в операционной системе Microsoft Windows 95/98 она и называется виртуальной таблицей размещения файлов Virtual File Allocation Table (VFAT), ее формат остался прежним. Это сделано для совместимости с программами MS-DOS. Сохранились форматы и других логических блоков файловой системы, таких как таблица разделов диска, таблица логических дисков, загрузочная запись и расширенный блок параметров BIOS Extended BPB.

Заметим, что для восстановления файловой системы Microsoft Windows 95/98 нельзя использовать старые версии пакета Norton Utilities, так как они ничего не знают о расширенных и альтернативных дескрипторах.

Область данных

Вслед за корневым каталогом начинается область данных, простирающаяся до конца логического диска. Эта область разбита на кластеры, причем нумерация кластеров начинается с числа 2. Кластеру с номером 2 соответствуют первые секторы области данных.

Приведем формулу, связывающую номер кластера с номерами секторов, занимаемых им на логическом диске:

SectNumber = DataStart + ((ClustNumber - 2) * ClustSize)

В этой формуле использованы следующие обозначения:

Эта формула может Вам пригодиться при ручном восстановлении файловой системы.

Поиск и восстановление файлов в разделах FAT

В этом разделе мы приведем некоторые рекомендации, направленные на восстановление файлов, доступ к которым стал невозможен из-за вредоносного действия вирусов или в результате разрушения файловой системы FAT по любой другой причине. В любом случае перед началом восстановительных работ следует провести полное исследование параметров BIOS и файловой системы с использованием сведений, изложенных нами ранее.

Необходимо также убедиться, что Вы хорошо владеете структурой файловой системы и знаете форматы всех ее компонентов, таких как таблица разделов, таблица логических дисков, таблица размещения файлов FAT и так далее.

Если в процессе исследования файловой системы Вы обнаружили, что некоторые структуры оказались полностью разрушены (например, главная загрузочная запись с таблицей разделов, таблица логических дисков, каталоги и так далее), еще не все потеряно.

Если сохранность информации не имеет для Вас решающего значения, то многие повреждения файловой системы можно исправить в автоматическом режиме при помощи программ Norton Disk Doctor или SCANDISK. Однако, эти весьма неплохие программы в некоторых случаях не смогут оказать Вам существенной помощи. Хуже того, они может окончательно разрушить логическую структуру диска, после чего восстановление файлов станет невозможным.

Поэтому Вы должны владеть хотя бы основными приемами ручного восстановления файловой системы. В тяжелых или ответственных случаях мы настоятельно рекомендуем обращаться к нам в службу DataRecovery.Ru через сервер http://www.datarecovery.ru или http://www.frolov.pp.ru.

Основная идея поиска потерянных файлов и структур данных заключается в том, что Вам известно (хотя бы приблизительно) их имя или содержимое.

Например, секторы, содержащие таблицу разделов, таблицу логических дисков и загрузочную запись, имеют сигнатуру 0xAA55. Из предыдущих разделов этой главы Вы знаете, что программы начальной загрузки содержат в своем теле известные текстовые строки. Вы можете использовать их для поиска. Такие строки есть и в теле расширенного блока параметров BIOS Extended PBP (это строки FAT12, FAT16 или FAT32).

Если Вы знаете характерные слова или последовательности байт, встречающиеся в потерянных файлах данных, они тоже пригодны для поиска секторов файла с целью восстановления.

Поиск с помощью программы Norton File Find

Наиболее распространенное повреждение файловой системы FAT возникает при внезапном отключении питания и заключается в появлении так называемых потерянных кластеров. Это повреждение также бывает следствием аппаратного сброса компьютера при работающей операционной системе Microsoft Windows.

Потерянные кластеры называются так потому, что на них нет ссылок ни в одном каталоге файловой системы. Такая ситуация может возникнуть, например, из-за того, что соответствующий каталог был просто уничтожен и, следовательно, ссылки на описанные в нем файлы исчезли.

Чаще всего для ремонта повреждений такого рода пользователи применяют программу SCANDISK, входящую в состав операционной системы, или программу Norton Disk Doctor.

После восстановления файловой системы программой Norton Disk Doctor или SCANDISK на диске может образоваться громадное количество файлов со специфическим расширением имени, составленные из цепочек потерянных кластеров (каждая программа восстановления использует свое имя). Таких файлов в зависимости от серьезности повреждений файловой системы может быть до нескольких тысяч.

Если после сбоя или вирусной атаки Вы проверили диск одной из перечисленных выше программ, и в результате нужные Вам файлы исчезли, существует большая вероятность, что они оказались среди восстановленных файлов. Однако как их найти среди сотен и тысяч других?

Проще всего это сделать, например, с помощью программы Norton Find File. Ее можно запустить из популярной оболочки Norton Commander при помощи комбинации клавиш Alt+F7.

В поле File(s) to find Вы должны задать шаблон для имени файла и расширения имени, например, *.NDD. Поиск будет выполняться только среди файлов, имя которых удовлетворяет указанному шаблону.

Необходимо также указать в поле Containing контекст для поиска, то есть какую-либо текстовую строку, присутствующую в файле. Например, для того чтобы найти все файлы, созданные текстовым процессором Microsoft Word for Windows, Вы можете указать строку контекста "Microsoft Word", а для того чтобы найти все файлы, подготовленные в среде процессора электронных таблиц Microsoft Excel, укажите строку контекста "Microsoft Excel".

Список путей к найденным файлам отобразится в верхней части окна программы Norton Find File.

В дальнейшем, если найденных файлов будет все еще очень много, Вы можете переписать их в отдельный каталог и переименовать, а затем продолжить поиск, используя другие строки в качестве контекста.

Поиск с помощью программы DISKEDIT

По сравнению с описанной в предыдущем разделе программой Norton Find File, программа DISKEDIT предоставляет намного больше возможностей для поиска файлов, а также различных структур файловой системы.

Поиск разделов

Обратите внимание на меню Tools программы DISKEDIT.

Если выбрать из этого меню строку Find, на экране появится диалоговая панель Enter search text. С помощью этой диалоговой панели Вы сможете выполнять контекстный поиск строк, заданных как символьным, так и шестнадцатеричным представлением. Дополнительно можно указать смещение сектора и выбрать режим Ignore Case. При использовании этого режима сравнение с образцом будет выполняться без учета строчных или прописных букв.

Строка Find Object позволяет выполнить поиск различных структур файловой системы. Если выбрать эту строку, на экране появится меню второго уровня, где есть строки Partition/Boot, FAT и Subdirectory.

Попробуйте все это в действии. Для этого откройте меню Object и выберите из него строку Physical Sector. Затем укажите самый первый сектор, расположенный на нулевой дорожке. Этот сектор должен содержать главную загрузочную запись MBR. Перейдите в режим неформатированного просмотра, выбрав из меню View строку as Hex.

А что делать, если, взглянув на главную загрузочную запись, Вы увидели, что таблица разделов разрушена или зашифрована?

В этом случае можно выполнить контекстный поиск секторов загрузочных записей, содержащих блоки параметров BIOS BPB. Проще всего это сделать, если после просмотра главной загрузочной записи по ее физическому адресу и перехода к следующему сектору диска выбрать из меню Tools/Find Object строку Partition/Boot.

Программа DISKEDIT найдет сектор, содержащий в конце последовательность байт "55 AA", соответствующую сигнатуре загрузочного сектора 0xAA55.

После того как Вы нашли загрузочный сектор, его физический адрес можно вручную подставить в таблицу разделов, отредактировав ее программой DISKEDIT.

Так как структура разделов диска в процессе эксплуатации последнего может многократно изменяться, не исключено, что Вы найдете слишком много загрузочных секторов. Некоторые из них принадлежали старым разделам и не были уничтожены при изменении структуры разделов, некоторые вообще могут принадлежать другим операционным системам. В любом случае проверяйте расположение найденного загрузочного сектора относительно других найденных вами логических структур файловой системы. Например, Вы можете использовать для "опознания" тот факт, что сразу после загрузочного сектора раздела FAT должна следовать таблица размещения файлов.

Так как в процессе поиска программа DISKEDIT проверяет только последние два байта сектора, возможны ложные срабатывания. Вслед за найденным сектором может располагаться сектор, содержимое которого мало похоже на таблицу размещения файлов.

Поиск таблиц FAT

Теперь выберите из меню Tools строку Find Object и затем строку FAT. Программа DISKEDIT выполнит поиск первой копии таблицы размещения файлов FAT, и отобразит ее дамп, выделив в нем первые три байта.

Если теперь сместить текстовый курсор вниз или нажать клавишу PgDn, а затем выбрать из меню Tools/Find Object строку FAT еще раз, будет найдена вторая копия таблицы размещения файлов FAT.

Учтите, что поиск таблиц FAT в данном случае сводится к поиску последовательности байт "F8 FF FF", поэтому выполнив поиск в третий раз, Вы сможете найти еще одну, ненастоящую "таблицу FAT". Дело в том, что наверняка на диске имеется какой-нибудь файл, содержащий указанную выше последовательность байт, поэтому будьте внимательны.

Поиск потерянных каталогов

Теперь займемся поиском потерянных каталогов. На такие каталоги нет ссылок из других каталогов.

Для поиска Вы можете воспользоваться строкой Subdirectory меню Tools/Find Object. Программа DISKEDIT просматривает секторы диска в поисках такого, в начале которого находится последовательность байт "2E 20 20 20 20 20 20 20 20 20 20". Эта последовательность соответствует дескриптору, содержащему ссылку каталога на себя самого.

Нажимая комбинацию клавиш Ctrl+G, Вы можете продолжить поиск нужного каталога, пока не найдете тот, который содержит интересующие Вас файлы. Можно выполнять поиск и по имени файла, если Вы его знаете.

Как только нужный каталог найден, необходимо записать физический адрес сектора диска, содержащего каталог, а затем найти либо вычислить номер кластера, соответствующего каталогу.

Для поиска номера кластера, в котором располагается найденный каталог, перейдите в режим форматированного просмотра каталога, выбрав из меню View строку as Directory. Затем в меню Link выберите строку Cluster chain (fat). На экране появится содержимое таблицы FAT в режиме форматированного просмотра, при этом искомый номер кластера будет выделен.

Восстановление потерянных каталогов и файлов

Зная номер кластера потерянного каталога, Вы можете создать новый дескриптор каталога, например, в корневом каталоге диска, и сделать в этом дескрипторе ссылку на найденный каталог. После этого потерянный каталог вновь станет доступным.

Учтите, что для файловой системы VFAT необходимо правильно заполнять поле контрольной суммы имени в расширенном дескрипторе, а также указывать 32-разрядный номер первого кластера, распределенного файлу.

Можно предложить следующий алгоритм восстановления файла:

  • выполнить контекстный поиск секторов файла с помощью строки Files из меню Tools, а также последовательным просмотром секторов диска;
  • определить номер кластеров, соответствующих найденным секторам, пользуясь приведенной выше формулой или средствами программы DISKEDIT;
  • восстановить цепочку номеров кластеров для файла в таблице размещения файлов FAT, отметив в ней последний кластер специальным значением (таким как 0xFFFF для FAT-16);
  • создать в любом каталоге (например, в корневом) дескриптор файла;
  • указать в созданном дескрипторе ссылку на первый кластер восстановленного файла и размер файла.

Если Вы восстановили файл документа, созданный текстовым процессором Microsoft Word for Windows или процессором таблиц Microsoft Excel, загрузите его в соответствующее приложение и затем сохраните его под другим именем. При этом будет восстановлена правильная длина файла.

Простой текстовый файл можно загрузить в текстовый редактор и "отрезать" лишние данные в конце файла. Затем сохраните файл под другим именем.

Если Вы знаете точную длину файла, ее можно установить при помощи программы DISKEDIT в режиме редактирования дескриптора файла (рис. 9).