Эта статья предназначена прежде всего тем, кто хочет узнать больше о своем компьютере, выяснить, что выполняет каждая имеющаяся на нем программа и как можно на нее воздействовать. Итак, рассмотрим утилиты для «наружного» исследования ПК.
Монитор Реестра — RegMonitor
Утилита, созданная Марком Руссиновичем (рис.1), перехватывает и показывает все обращения любых других программ к Системному реестру (работает в Windows 9x и 2000).
Рис. 1. Ничто не ускользнет от бдительного ока RegMonitor — ни одна запись в Реестр, ни одна попытка его прочтения... |
С помощью RegMonitor можно увидеть, какие ключи Реестра программа читает или изменяет и где помещает свои настройки, а также узнать, что конкретно изменяется в Реестре при каждом действии программы. RegMonitor имеет много полезных настроек. Например, если поставить так называемый «фильтр» на поток выводимой информации, то будут отслеживаться только те запросы к Реестру, которые сделала определенная программа. Результат работы программы можно сохранить в виде файла, чтобы изучить впоследствии. В окне программы имеется возможность отображать не все запросы к Реестру, а лишь несколько последних (их число устанавливается в поле Depth окна настроек). Разумеется, есть функция поиска и кнопка вызова Редактора реестра.
Загрузить бесплатную утилиту RegMonitor можно с сайта www.sysinternals.com и с адреса http://perecod.chat.ru/regmon.rar.
Монитор файлов — FileMonitor
Утилита FileMonitor (рис. 2) аналогична RegMonitor и написана тем же автором, но предназначена для перехвата всех обращений к файлам (работает в Windows 9х и Me). FileMonitor поможет легко увидеть, какая из программ открывает тот или иной файл и что она с этим файлом делает.
Рис. 2. Узнайте, кто «читает» ваши файлы |
FileMonitor, так же как и RegMonitor, имеет немало полезных настроек. Например, можно поставить фильтр на выводимый на экран отчет о запросах к файлам, сохранить в файле результаты наблюдений, зарегистрировать точное время совершения запроса или продолжительность каждой операции при работе с файлами.
Эта бесплатная программа доступна для загрузки с сайта www.sysinternals.com и с адреса http://perecod.chat.ru/filemon.rar.
Сравнение Реестров
Если известно, что программа какие-то данные записывает в Системный реестр, но неведомо куда, а это требуется выяснить, то довольно трудно следить за ней с использованием RegMonitor. Проще было бы сравнить Реестр до начала работы программы и по ее окончании, ведь тогда все изменения оказались бы видны как на ладони. Именно это и делает утилита RegSnap (рис. 3) Витаса Раманчаускаса (работает в Windows 9х и 2000).
Рис. 3. Сравните Реестр до работы и после — перед вами предстанут все изменения |
До запуска исследуемой программы (или перед вызовом изучаемой функции этой программы) сделайте «снимок» Реестра, нажав специальную кнопку, и повторите это действие, когда программа завершит работу. Затем сравните оба «снимка», снова нажав кнопку. В результате будет выдан отчет об изменениях в Реестре, появившихся новых ключах и параметрах, модифицировавшихся и удаленных разделах и значениях.
В принципе тот же самый результат можно получить, если экспортировать Реестр в текстовый файл до начала функционирования исследуемой программы и по ее завершении, а потом сравнить получившиеся текстовые файлы в Norton Commander или в любой другой программе, имеющей функцию сравнения файлов, однако работать с RegSnap все же удобнее.
Переписать бесплатную программу RegSnap можно с сайта http://perecod.chat.ru/regsnap.rar. Адрес ее разработчика: http://www.webdon.com.
FireLog
Эта утилита, созданная Дмитрием Дементьевым, должна быть у каждого опытного пользователя. Она предназначена для исследования деятельности инсталляторов, т. е. тех программ, которые предназначены для установки в систему других программных продуктов (работает в Windows 9х и 2000). FireLog позволяет внимательно проследить за всеми действиями программы-установщика и выяснить, какие файлы были добавлены или изменены, какие ключи Реестра появились или обновились. Например, она помогает отслеживать появление ненужных или временных файлов, что весьма важно для соблюдения порядка на жестком диске.
Рис. 4. Программа FireLog — ничто не укроется от ее бдительного ока |
FireLog выполнена в виде программы-мастера (рис 4). Пользователь, выполняя последовательные шаги, может задать область исследования, указав, какую программу устанавливать, на каких дисках отслеживать изменения, в каких системных файлах и в каких разделах Реестра. Утилита сканирует указанные диски, составляет базу данных из имен наличествующих на них файлов, делает «снимок» Системного реестра и системных файлов, а затем запускает саму установочную программу. После инсталляции снова проводится исследование диска и системных файлов, а потом выводится отчет об изменениях, обнаруженных в системе (рис. 5).
Рис. 5. Отчет FireLog |
Теперь нетрудно определить, где следует искать изменения, а также какие файлы и ключи Реестра должны быть удалены при деинсталляции программы.
Данная утилита в принципе выполняет те же функции, что и RegSnap, но последняя, однако, не сканирует диск, не исследует системные файлы и не привязана к работе инсталлятора. Поэтому эти две утилиты применяются в несколько разных областях: RegSnap для исследования изменений, сделанных программой непосредственно в Системном реестре, а FireLog — для изучения действий инсталляторов.
Загрузить FireLog можно с адреса http://perecod.chat.ru/firelog.rar.
Просмотр процессов системы
Рис. 6. Ненавистное многим окно... да оно еще и работает плохо |
Почти каждому пользователю приходилось прибегать к услугам диалогового окна «Завершение работы программы», вызываемому комбинацией клавиш + + (рис. 6). Это бывает необходимо тогда, когда какая-либо программа так зависает, что реанимировать ее уже невозможно. Но, к сожалению, в этом окне заложены ограниченные и слабые функции, и потому далеко не всегда удается выгрузить зависшую программу. Так что для просмотра процессов системы имеет смысл прибегнуть к помощи специальных программ, например к утилите Process Viewer, разработанной Игорем Нисом (рис. 7), или CCTask, созданной Алексом Рассом (рис. 8).
Рис. 7. Программа Process Viewer — видит все, что находится в оперативной памяти |
Рис. 8. Программа CCTask |
Итак, чтобы избавить память компьютера от зависшего приложения, достаточно отметить нужную задачу и выбрать из контекстного меню правой кнопки мыши пункт Kill (для Process Viewer) или нажать кнопку Kill в окне программы. Причем вы не увидите никакого «ожидания окончания работы программы», которым зачастую грешит стандартное окно закрытия зависших приложений — «задумавшаяся» программа сразу же выгрузится из памяти.
Иногда после аварийного завершения функционирования какой-нибудь программы, например Microsoft Word, становится невозможно работать с тем файлом, который в тот момент был загружен. При попытке открыть или сохранить его будет выдаваться сообщение, что он уже используется другим пользователем, значит, его нельзя удалить или переместить. А все потому, что когда сама программа Winword выгрузилась, то один из ее процессов остался в памяти и продолжал «работать» с файлом. Из-за этого-то ОС и не позволила изменять или удалять этот файл. Чтобы избежать подобной ситуации, следует после такого завершения программы нажать ++ или вызвать Process Viewer (или CCTask) и проверить, не осталось ли чего-нибудь лишнего в списке запущенных процессов, а затем, если что-то все же обнаружится, найденный «обломок» удалить.
Если вы хотите смоделировать подобную ситуацию, то запустите Microsoft Word 97, откройте в нем одновременно несколько документов, включите автоматическую проверку грамматики, а затем наберите слово «Яр-Тур.h» и нажмите клавишу . Редактор «вылетит», а его процесс останется в памяти... со всеми вытекающими отсюда последствиями.
Быстрая выгрузка программ из памяти — отнюдь не единственная функция Process Viewer и CCTask. Для опытных пользователей и программистов они предоставляют огромные возможности по управлению процессами системы. В окнах обеих программ выводится служебная информация о процессах (иначе говоря, об «отдельных запущенных программах») системы, а также отображаются путь к исполняемым файлам процессов и их тип (16- и 32-разрядные — только в Process Viewer), приоритет, или значение, показывающее, какую долю ресурсов система выделит данному процессу при его автоматической работе, и еще много других параметров. В этих двух утилитах есть возможность просмотреть список библиотек и различных программ, используемых каким-либо процессом. Кроме того, отдельные параметры можно принудительно изменить, в частности, установить какому-либо процессу нужный приоритет. Так, последняя возможность Process Viewer будет весьма полезной владельцам маломощных ПК, на которых нельзя, например, воспроизводить музыкальные MP3-файлы с надлежащим качеством. Если запустить какой-либо проигрыватель MP3-файлов и назначить ему с помощью Process Viewer самый высокий приоритет (24-й, Real Time) из всех допустимых, то реально можно добиться относительно устойчивого воспроизведения звука.
Стоит отметить большее количество полезных функций и более устойчивую работу программы Process Viewer. Кстати, она способна сворачиваться и помещаться в Системный лоток. CCTask этого не делает, зато позволяет просматривать используемые процессами библиотеки и программы в нижней части своего окна, а вот в Process Viewer для выполнения такой операции приходится щелкать правой кнопкой мыши в меню.
К сожалению, Process Viewer не работает в Windows 2000, а CCTask, выполняя свои функции в полном объеме, не показывает зависимые модули для системных процессов, позволяя их просмотреть для остальных программ.
Программу CCTask можно загрузить с сайта www.cybercreek.com и с адреса http://perecod.chat.ru/cctask.rar, а Process Viewer — с сайта www.teamcti.com и с адреса http://perecod.chat.ru/prcview.rar.
Программа Starter также просматривает процессы в системе, но о ней следует рассказать подробнее.
Программы при старте
При старте Windows автоматически загружаются программы:
- ярлыки которых находятся в папке «Главное меню?Программы?Автозагрузка»;
- пути к которым указаны в Системном реестре, в подразделах Run, RunOnce, RunServices, RunServicesOnce раздела HKLMSoftwareMicrosoft WindowsCurrentVersion, а также в одноименных подразделах раздела HKCUSoftwareMicrosoft WindowsCurrentVersion;
- пути к которым указаны в файле Win.ini, в параметрах [windows] load и [windows] run;
- пути к которым указаны в файле autoexec.bat.
Эти места желательно регулярно просматривать, чтобы узнать, не появились ли там лишние записи, сделанные вирусами-троянами. (Есть, правда, еще и пятое место для автозапуска программ — раздел Реестра с указателями на так называемые «виртуальные драйверы» — HKEY_LOCAL_MACHINESystemCurrentControlSet ServicesVxD, который, в частности, использует комплект программ Norton Utilities для запуска своих компонентов. Однако вредоносные программы размещаются в этом месте довольно редко, видимо, из-за сложности написания полноценного виртуального драйвера.) Постоянно «лазить» по Реестру и системным файлам не так уж и удобно. Чтобы облегчить данный процесс, и была создана программа Starter, предназначенная для отображения и управления списком приложений, автоматически запускающихся при загрузке Windows. К ее достоинствам относятся хорошо продуманный интерфейс и привлекательный дизайн (рис. 9).
Рис. 9. Starter — и красиво, и полезно |
Утилита поможет как просмотреть все вместе автозагружаемые программы, так и узнать, в каком разделе находится каждая из них по отдельности — в папке «Автозагрузка» или в Реестре. Если необходимо, то можно добавить новую программу и указать, где должна стоять ссылка на нее — в Реестре или в «Автозагрузке» (рис. 10).
Рис. 10. Starter — добавление нового параметра |
Ссылки на те программы, которые не должны автоматически запускаться, можно удалить или отключить, причем в последнем случае они сохраняются и впоследствии подлежат восстановлению.
В Starter включена функция просмотра не только списка программ, автоматически запускаемых при загрузке Windows, но и перечня всех запущенных программ, а также и работы с ними, напоминающая встроенный Process Viewer (рис. 11). Кроме того, Starter показывает в своем окне все библиотеки, используемые тем или иным процессом.
Рис. 11. Starter — встроенный наблюдатель за процессами системы |
Весьма важно, что эта утилита корректно работает в Windows 2000 и, так как в этой ОС отсутствует программа, аналогичная MSConfig из Windows 98, то, безусловно, пригодится.
Загрузить программу можно с адреса http://perecod.chat.ru/starter.rar и с сайта разработчика http://codestuff.virtualave.net.
Вышеупомянутая программа MSConfig (рис. 12), входящая в дистрибутив Windows, обладает несколько меньшими функциональными возможностями по отображению списка автозагружаемых программ, чем Starter.
Рис. 12. MSConfig — входит в дистрибутив Windows 98 и дает полную информацию обо всех автозагружаемых программах |
Если вы работаете в среде Windows 95, то можете извлечь MSConfig из файлов дистрибутива Windows 98 c помощью программы WinZip (с версии 7.0) или WinRar (версии 2.0 и выше). В моем дистрибутиве она находилась в файле Win98_44.cab.
Обзор библиотек
Утилита Сергея Сорокина под названием ShowDep позволяет узнать, какие библиотеки вызывает та или иная программа, когда ее, например, нужно перенести на другой ПК. Если загрузить в ShowDep исполняемый файл или библиотеку, то можно увидеть, какие библиотеки использует эта утилита во время работы (рис. 13).
Рис. 13. ShowDep выясняет, какие библиотеки требуются той или иной программе |
Программа показывает и те библиотеки, которые вызываются другими библиотеками, применяемыми исследуемой программой (отображает так называемые «вложенные» вызовы). Таким образом, с ее помощью можно получить исчерпывающую информацию обо всей структуре вызовов из какой-либо программы нужных ей подпрограмм, входящих в другие библиотеки и исполняемые файлы. В правой части окна ShowDep дается краткое описание каждой библиотеки.
Загрузить бесплатную программу ShowDep, которая работает как в Windows 9x, так и в Windows 2000, можно с сайта http://perecod.chat.ru/showdep.rar. Существует и более новая версия этой утилиты, распространяемая как Shareware, ее можно найти на Web-узле http://www.showdep.com, но имеющиеся в ней дополнительные функции заинтересуют, скорее всего, лишь программистов.
SpaceChecker
Эта утилита отслеживает появление, удаление и изменение файлов на жестком диске. SpaceChecker сканирует его, создает базу данных по всем хранящимся на нем файлам и папкам, а затем каждый раз при своем старте повторно сканирует диск и выдает отчет об изменениях, произошедших с файлами, со времени своего предыдущего запуска (рис. 14).
Рис. 14. SpaceChecker — никакого «мусора» на диске |
Программу SpaceChecker создала CyberTech Group. Ее удобно применять для исследования работы программ с файлами, а также для выявления «мусора», оставшегося после инсталляций, временных файлов и т. п. Переписать утилиту можно с адреса http://perecod.chat.ru/spacechk.rar.
Применение
«Но для чего же все эти программы нужны?» — спросите вы. Общая польза от описанных утилит для исследователя, несомненно, есть — можно узнать много интересного о работе программ. Выше уже было сказано о том, где программы принесут пользу: Process Viewer поможет слушать музыку в формате MP3 даже на маломощных компьютерах; Starter — следить за автозагружаемыми программами, чтобы своевременно выявить вирусы (особенно в Windows 2000), Process Viewer также позволяет принудительно выгружать зависшую программу из ОЗУ, а FireLog — обнаружить, не остается ли какого-нибудь мусора на диске после деинсталляции программы, — для этого достаточно просто посмотреть, все ли файлы, скопированные при установке на диск, были стерты при удалении программы. Это даже удобнее, чем пользоваться SpaceChecker, так как не надо разбираться, кто изменял или копировал файлы — вы или программа установки.
Утилиты, о которых здесь рассказывалось, — всего лишь инструменты, и для того чтобы они принесли пользу на практике, нужно с ними поработать. Но работа эта, поверьте, гораздо увлекательнее многих компьютерных игр, а уж в том, что полезнее, даже не сомневайтесь.
Антон Орлов, http://antorlov.chat.ru
Что есть что
Процесс системы — это некий загруженный в оперативную память и выполняющийся код. Большинство стандартных программ работают в одном процессе, но некоторые могут использовать несколько. Различные служебные программы, загружаемые самой операционной системой Windows, тоже являются процессами.
Приоритет процесса — доля ресурса системы (в частности, время работы процессора), выделяемая данному процессу.
Библиотека — специальный файл (в Windows имеет расширение .dll), содержащий в себе текст подпрограмм. Данные файлы создаются для того, чтобы несколько программ, которым требуются одни и те же подпрограммы, могли их брать из библиотек и тем самым не хранить их в себе и иметь меньший объем. Кроме того, библиотека может загружаться в оперативную память лишь при ее вызове из программы, не загромождая, таким образом, последнюю, когда не нужны содержащиеся в ней функции.