Лабораторная работа Ревизия 3 2 История изменений
![]()
|
Брешь в системе защиты Интересно, что для вызова интерфейса CacheSet не требуется особых привилегий. Таким образом, запустить программу CacheSet позволяет даже 14 гостевая учетная запись. Трудно поспорить с тем, что это очевидная брешь в системе защиты, благодаря которой вносить изменения в политику регулировки размера системного кэша может каждый. Обновление. В пакете обновления 4 для NT 4.0 указанная брешь устранена — теперь для внесения изменений в рабочий набор кэша необходима привилегия «Increase Quota» (Увеличение квоты). Во всех учетных записях пользователей и групп административного уровня эта привилегия предусмотрена по умолчанию. 9. ClockRes Приложение ClockRes исполняет функцию GetSystemTimeAdjustment и возвращает ее результат. Эта функция позволяет оперировать информациею о системных часах или максимальным разрешением таймера, доступным для программы. Программа ClockRes работает только в средах Windows NT/2K и не принимает аргументы командной строки. 10. Contig На бесплатной основе распространяется великое множество программ дефрагментации диска для NT, среди них можно выделить, например, Winternals Defrag Manager. Эти программы эффективно выполняют задачу общей дефрагментации дисков. В то же время, некоторые файлы, которые следовало бы дефрагментировать, находятся на дисках вне сферы действия таких программ. Кроме того, довольно сложно организовать дефрагментацию отдельных регулярно применяемых файлов — в силу особенностей применяемых алгоритмов дефрагментации они могут оставаться во фрагментированном состоянии. Наконец, даже если все файлы были дефрагментированы, ситуация может быстро измениться в результате последующего редактирования критических файлов. Лишь повторная комплексная дефрагментация способна привести файлы в желаемое состояние. Contig это программа дефрагментации отдельных файлов, которая предназначена для смежного размещения на диске фрагментов файлов. Она идеально подходит для быстрой оптимизации файлов, которые постоянно фрагментируются или по тем или иным причинам должны состоять из как можно меньшего числа фрагментов. Установка и применение Программа Contig работает в среде NT 4.0 и в более поздних версиях этой ОС. Она позволяет, во-первых, дефрагментировать существующий файл, а, во- вторых, создать новый файл указанного размера и имени, оптимизировав его размещение на диске. Contig обращается к стандартным интерфейсам API, применяемым в Windows для дефрагментации; поэтому повреждение диска исключено даже при закрытии программы во время выполнения ею операций. Для смежного размещения фрагментов существующего файла нужно запустить программу Contig следующим образом. Синтаксис: contig [-v] [-a] [-q] [-s] [имя_файла] Параметр -v предназначен для вывода информации об операциях дефрагментации файла, выполненных программой Contig. Чтобы ознакомиться с текущим состоянием фрагментации файла или файлов, воспользуйтесь параметром -a — в результате программа Contig проведет анализ фрагментации. Параметр -s позволяет провести рекурсивную обработку 15 подкаталогов исходя из указанного имени с шаблонами. К примеру, чтобы дефрагментировать все DLL-файлы в каталоге c:\winnt, следует ввести команду «contig -s c:\winnt\*.dll». Параметр -q, который переопределяет параметр -v, переводит программу Contig в «молчаливый» режим, в котором в процессе дефрагментации выводится только итоговая сводка. Для создания нового файла, дефрагментированного непосредственно в процессе создания, вызовите программу Contig следующим образом. Синтаксис: contig [-v] [-n имя_файла длина] Принцип работы Программа Contig обращается к собственные средствам дефрагментации Windows NT, впервые реализованным в версии NT 4.0 (дополнительные сведения см. в моих документах по API-интерфейсам дефрагментации). В первую очередь проводится проверка диска для сбора данных о местоположении и размере свободных областей. Затем определяется местоположение искомого файла. После этого программа Contig исследует возможность оптимизации файла исходя из наличия свободных областей и числа фрагментов, из которых файл состоит в данный момент. Если возможность оптимизации файла существует, он перемещается в свободные области диска. 11. Coreinfo v2.11 Coreinfo это утилита командной строки, которая показывает соответствия между логическим процессором и физическим процессором, NUMA узлом, и сокетом, на которых они расположены, а также кэша каждого логического процессора. Он использует "Windows, функцию GetLogicalProcessorInformation , чтобы получить эту информацию и выводит ее на экран, представляющий отображение на логический процессор со звездочкой, например, '*'. Установка Вы запускаете Coreinfo, набрав "coreinfo". Использование CoreInfo Для каждого ресурса он показывает карту OС-видимых процессоров, которые соответствуют указанным ресурсам, с '*' представляет применимо процессоров. Использование: coreinfo [-c][-g][-l][-m][-n][-s] -c Дамп информации о ядрах. - g Дамп информации о группах. - l Дамп информации о кэшах. 12. Ctrl2Cap Программа представляет собой драйвер привилегированного режима, обеспечивающий фильтрацию входящего с клавиатуры сигнала до драйвера класса клавиатуры, что позволяет включать верхний регистр при нажатии контрольных клавиш. Фильтрация на этом уровне позволяет изменять и скрывать клавиши, прежде, чем NT даже "увидит" их. Ctrl2cap также показывает, как использовать NtDisplayString() для печати сообщений на голубом экране при инициализации. 16 13. DebugView Эта программа перехватывает вызовы DbgPrint драйверами устройств и OutputDebugString программами Win32. Это позволяет просматривать и записывать выходные данные сеанса отладки на локальной машине или в Интернете без активного отладчика. В Windows 2000, XP, Server 2003 и Vista, DebugView будет фиксировать: Win32 OutputDebugString В режиме ядра DbgPrint Все в режиме ядра, варианты DbgPrint реализовано в Windows XP и Server 2003 Установка и использование Просто выполните DebugView файл программы (dbgview.exe) иDebugView немедленно начнет съемки отладочного вывода. Обратите внимание, что если вы запустите DebugView на Windows 2000/XP вы должны иметь административные привилегии, чтобы посмотреть в режиме ядра отладки. Меню, горячие клавиши или кнопки панели инструментов могут быть использованы для очистки окна, сохранить контроль данных в файл, поиск выхода, изменения шрифта окна и многое другое. 14. Desktops Эта программа позволяет создавать четыре виртуальных рабочих стола, переключаться между которыми можно либо с помощью комбинаций клавиш, либо с помощью значка в панели задач. Окно настройки 17 15. Disk2vhd v1.62 Disk2vhd - утилита, позволяющая с легкостью создать из реального жесткого диска виртуальный диск формата VHD, который затем можно будет использовать с помощью Virtual PC или Hyper-V. Системные требования: клиентские и серверные ОС Windows XP SP2 и Windows Server 2003 или выше. Примечание: Virtual PC поддерживает максимальный размер виртуального диска 127GB. Если вы создаете виртуальный жесткий диск с большим диском он не будет доступен из Virtual PC VM. Чтобы использовать виртуальные жесткие диски Disk2vhd,надо создавать Виртуальную Машыну с желаемыми характеристиками и добавлять виртуальные жесткие диски в конфигурации виртуальной машины, как диски IDE. Disk2vhd работает Windows XP SP2, Windows Server 2003 SP1, и выше, в том числе 64-разрядных системах. Использование командной строки Использование: disk2vhd <[диск: [диск :]...]|[*]> Пример: disk2vhd * C: \ VHD \ snapshot.vhd 18 16. DiskExt Программа DiskExt демонстрирует работу команды IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, которая возвращает данные о распределении разделов тома по дискам (тома с несколькими разделами могут быть размещены на нескольких дисках) и размещении разделов на этих дисках. 17. DiskMon для Windows 2.01 DiskMon — это приложение, которое регистрирует и выводит сведения обо всех операциях с жестким диском, осуществляемых в системе Windows. Программу DiskMon можно свернуть в значок на панели задач, который исполняет роль индикатора диска: зеленый цвет обозначает операции чтения с диска, а красный — операции записи. Программа DiskMon работает в NT 4.0 и в более поздних версиях ОС. Установка и применение Для установки программы DiskMon достаточно распаковать ее архив и ввести команду diskmon. В среде Windows NT графический интерфейс выполняет динамическую загрузку драйвера (на основе кода в образце instdrv из пакета DDK Windows NT), который приступает к слежению за работой всех жестких дисков. Для Windows 2000 и более поздних версий ОС компонент драйвера не предусмотрен — для получения данных об операциях с диском графический интерфейс обращается к средствам отслеживания событий ядра. Пункты меню и кнопки на панели инструментов позволяют включать и выключать фиксацию событий, управлять прокруткой списка и сохранять содержимое списка в ASCII- файле. Для перевода программы DiskMon в режим индикатора диска на панели задач выберите команду Minimize to Tray (Свернуть в панель задач) в меню Options (Параметры) или вызовите DiskMon из командной строки с параметром /l (L в нижнем регистре) — «diskmon /l». Чтобы восстановить окно DiskMon, дважды щелкните значок DiskMon на панели задач. Чтобы создать ярлык программы Diskmon, создайте ярлык в папке Program Files\Startup, откройте его свойства ярлыка и введите в поле «Объект» путь к исполняемому файлу в кавычках, а параметр — вне кавычек: «C:\Sysinternals Tools\Diskmon.exe» /l Величины смещения чтения и записи указываются по секторам (по 512 байт). События могут идентифицироваться по продолжительности (в микросекундах) или снабжаться метками абсолютного времени запуска. В диалоговом окне «History Depth» (Глубина регистрации) можно указать максимальное количество записей, хранящихся в графическом интерфейсе (значение «0» снимает любые ограничения). Реализация в среде Windows NT 4 Стандартные методики фильтрации не позволяют динамически загружаемым драйверам, таким как DiskMon, прикрепляться к объектам жесткого диска и просматривать запросы, отправляемые из файловых систем. Дело в том, что драйверы файловой системы открывают дисковые устройства в ходе инициализации системы и, в отличие от диспетчера ввода-вывода, отправляют IRP этим устройствам напрямую. Диспетчер ввода-вывода допускает прикрепление драйверов-фильтров файловой системы к устройствам этой системы после инициализации; это связано с тем, он проводит проверку 19 подключенных устройств перед каждой попыткой отправки IRP файловой системе и имеет возможность перенаправления IRP. Программа DiskMon обходит это ограничение благодаря моей собственной методике перехвата функций драйверов. DiskMon находит объект драйвера дискового устройства и заменяет его точки входа диспетчеризации своими собственными. Функции фильтрации DiskMon передают обнаруживаемые запросы IRP подключенному драйверу и перехватывают процедуры завершения так, чтобы получить доступ к результатам обработки запросов. Реализация в среде Windows 2000 и последующих версиях ОС В Windows 2000 и более поздних версиях ОС программа обращается к средствам отслеживания событий ядра. Документация по отслеживанию событий содержится в комплекте разработчика Platform Microsoft; там же имеется исходный код программы TraceDmp, на которой основана Diskmon. 18. DiskView Программа DiskView выводит графическую схему диска, на которой можно определить местоположение файла или узнать, какой файл занимает те или иные кластеры (для этого нужно щелкнуть кластер мышью). Двойной щелчок позволяет получить более подробную информацию о файле, которому выделен кластер. Программа Diskview работает в ОС Windows NT 4, 2000, XP и Server 2003. 19. Disk Usage (DU) Программа Du (disk usage) выводит сведения об использовании дискового пространства в указанном каталоге. По умолчанию она выполняет рекурсивный просмотр каталога и указывает его общий размер, а также размер его подкаталогов. Синтаксис:__du_[[-v]_[-l_]_|_[-n]]_[-q]_(файл_или_каталог)_-l'>Применение Синтаксис: du [[-v] [-l ] | [-n]] [-q] (файл или каталог) -l Глубина получения данных о подкаталогах (по умолчанию – все уровни) -n Без рекурсии 20 -q Без вывода объявления -v Вывод информации в промежуточном каталоге 20. EFSDump В ОС Windows 2000 реализована файловая система EFS, помогающая пользователям защищать конфиденциальные данные. В поддержку этой возможности появился ряд новых интерфейсов API, один из которых, QueryUsersOnEncryptedFile, позволяет получать списки пользователей, имеющих доступ к зашифрованным файлам. С помощью этого интерфейса программа EFSDump выводит список учетных записей, уполномоченных обращаться к зашифрованным файлам. Синтаксис: efsdump [-s] <файл или каталог> -s Рекурсия подкаталогов. Программа EFSDump поддерживает шаблоны (например, 'efsdump *.txt'). 21. Handle Программа Handle — это инструмент, который выводит сведения об открытых дескрипторах для любого процесса в системе. Она позволяет посмотреть, какие программы открыли файл, а также увидеть тип объектов и имена всех дескрипторов программы. Вариант этого средства с графическим интерфейсом- Process Explorer Установка Чтобы запустить программу Handle, достаточно ввести «handle». Необходимо иметь права администратора. Программа Handle работает в системах Windows 9x, Me и Windows NT и более поздних версий, а также в системах x64 Windows XP 64-bit Edition и Windows Server 2003 64-bit Edition. Использование Программа Handle предназначена для поиска ссылок на открытые файлы, поэтому, если никакие параметры командной строки не заданы, она выводит список значений всех дескрипторов в системе, которые ссылаются на открытые файлы, с указанием имен этих файлов. Изменить работу программы можно с помощью нескольких параметров. Использование: handle [[-a] [-u] | [-c <дескриптор> [-y]] | [-s]] [-p <имя_процесса>| > [имя] -a - Вывод сведений обо всех типах дескрипторов, а не только о тех из них, которые ссылаются на файлы. К другим типам дескрипторов относятся порты, разделы реестра, элементы синхронизации, потоки и процессы. -c - Закрывает указанный дескриптор (который задается в шестнадцатеричном формате). Необходимо указать процесс с помощью его идентификатора PID. ВНИМАНИЕ! Закрытие дескрипторов может привести к нестабильной работе приложений или системы. -y - Не запрашивать подтверждение закрытия дескриптора. -s - Выводить число открытых дескрипторов каждого типа. -u - При поиске дескрипторов показывать имя пользователя-владельца. 21 -p - Вместо проверки всех дескрипторов в системе при указании этого параметра программа Handle ищет только те процессы, имя которых начинается со строки «имя_процесса». Так, команда handle -p exp - показывает открытые файлы для всех процессов, имя которых начинается с «exp», например для процесса Explorer. Имя - Этот параметр позволяет настроить программу Handle на поиск ссылок на объект с указанным именем. Например, если требуется узнать, какой процесс (если таковой имеется) открыл каталог «c:\windows\system32», это можно сделать с помощью следующей команды: handle windows\system - При поиске соответствия имени регистр букв не учитывается, а указанный в качестве параметра фрагмент имени может представлять собой любую часть интересующих вас путей. Выходные данные программы Handle Если программа находится не в режиме поиска (который можно включить, указав в качестве параметра фрагмент имени), ее выходные данные состоят из нескольких разделов, в каждом из которых перечислены сведения о дескрипторах одного процесса. В качестве разделителя используется пунктирная линия, под которой отображаются имя процесса и его идентификатор (PID). После имени процесса выводится список, в каждой строке которого показано значение дескриптора (в шестнадцатеричном формате), тип объекта, которому он соответствует, а также имя объекта (если таковое имеется). В режиме поиска программа Handle выводит в левой части окна имена и идентификаторы процессов, а в правой — имена объектов, соответствующие указанному в параметре фрагменту. 22. Hex2dec Программа конвертирует шестнадцатеричные числа в десятичные и наоборот. Использование: HEX2DEC [шестнадцатеричный | десятичные] Укажите шестнадцатеричное значение. например, чтобы перевести 1233 десятичное в шестнадцатеричное: HEX2DEC 1233 , например, чтобы перевести 0x1233 десятичной в шестнадцатеричную: HEX2DEC 0x1233 23. Junction 1.05 Создание символических ссылок NTFS в среде Win2K В Windows 2000 и последующих версиях ОС поддерживаются символические ссылки на каталоги — иными словами, один каталог компьютера может исполнять роль символической ссылки на другой каталог. К примеру, если в свойствах каталога D:\SYMLINK указан целевой объект C:\WINNT\SYSTEM32, то любое приложение, обращающееся к D:\SYMLINK\DRIVERS, на самом деле получает доступ к C:\WINNT\SYSTEM32\DRIVERS. Символические ссылки на каталоги в терминологии Windows называются точками соединения NTFS. К сожалению, в составе ОС Windows не предусмотрены средства создания точек соединения — приходится покупать комплект Win2K Resource Kit, в котором есть специальная программа linkd. По этой причине я решил создать собственную программу для создания точек соединения — Junction. Программа Junction позволяет не только создавать точки соединения NTFS, но и проверять, исполняют ли те или иные файлы и каталоги роль точек повторной обработки. Точки повторной обработки — это механизм, на основе которого реализуются точки соединения NTFS. Кроме того, точки повторной обработки задействуются службой съемных носителей Windows (RSS) и точками подключения томов. |