[Архив бюллетеней ^] [< Том 2, Число 4] [Том 3, Число 1 >]
Внутренние информационные бюллетени системы том 2, номер 5
www.sysinternals.com
Авторские права (c) 2000 Марк Руссинович
30 ноября 2000 г. — в этом вопросе:
РЕДАКЦИОННЫЙ
НОВЫЕ ВОЗМОЖНОСТИ SYSINTERNALS
- PsLoggedOn версии 1.2
- PsShutdown версии 1.0
- PsTools версии 1.1
- BgInfo версии 1.1
- Tokenmon версии 1.0
- Filemon версии 4.32
- Regmon версии 4.32
- Внутри Windows 2000, 3rd Ed.
- Ноябрь и зимний журнал Windows 2000
- Sysinternals в Корпорации Майкрософт
- Лицензирование sysinternals
ВНУТРЕННИЕ СВЕДЕНИЯ
- NFI
- Скрытые разделы реестра Win9x
ЧТО ПРОИСХОДИТ
- Новые системные вызовы Освистчика
СПОНСОР: WINTERNALS SOFTWARE
Информационный бюллетень Sysinternals спонсируется Winternals Software в Интернете на www.winternals.com. Winternals Software является ведущим разработчиком и поставщиком расширенных системных средств для Windows NT/2K. Продукты Winternals Software включают FAT32 для Windows NT 4.0, NTFSDOS Professional Edition (драйвер NTFS/write NTFS для DOS) и удаленное восстановление.
Команда netstat, которая поставляется со всеми версиями Windows 9x и Windows NT/2000, показывает, какие порты TCP/IP открыты в вашей системе, однако он не показывает, какой процесс открыт. Последний инструмент мониторинга TCPView Pro, Winternals, не только поставляется с средством командной строки, эквивалентным netstat, Tcpvstat, который показывает, какой процесс открыт для каждого порта, но содержит графический интерфейс, в котором показаны те же сведения, а также трассировка действий TCP/IP в режиме реального времени. Трассировка в режиме реального времени показывает, что приложение делает сетевой доступ, локальные и удаленные IP-адреса доступа с необязательным разрешением DNS-имен, типом доступа, успехом доступа и объемом передаваемых данных. TCPView Pro составляет всего $69. Скачайте 14-дневную полную пробную версию TCPView Pro сегодня на www.winternals.com/products/monitoringtools/tcpviewpro.shtml.
Здравствуйте!
Добро пожаловать в информационный бюллетень Sysinternals. В настоящее время информационный бюллетень имеет 28 000 подписчиков.
Одним из преимуществ перехода из Windows NT в Windows 2000 является значительно улучшенная надежность. Я написал о причинах улучшения в нескольких статьях, и они в первую очередь являются результатом инструмента, называемого средство проверки драйверов. Вы можете настроить средство проверки, которое вы запускаете, введя "проверяющий" в диалоговом окне запуска меню , чтобы внимательно следить за выполнением определенных драйверов устройств, искать нарушение любого из нескольких правил программирования драйверов. Проверятель идет еще один шаг дальше, чем пассивный мониторинг, однако , он также усугубляет потенциал; условия ошибки путем выделения блоков памяти для драйвера, привязанного к недопустимым регионам, и нули определенных полей в структурах данных, передаваемых драйверу. Если вы действительно хотите получить жесткие, вы можете использовать средство проверки имитировать условия низкой памяти для драйвера.
Корпорация Майкрософт использует средство проверки через программу подписывания драйверов, которая требует, чтобы любой драйвер, подписанный корпорацией Майкрософт, прошел строгое тестирование средства проверки драйверов. При установке драйвера мастер оборудования проверяет, подписан ли драйвер. Если его нет, то это предупреждение или сбой установки драйвера в зависимости от параметров, введенных в диалоговом окне "Параметры подписи драйвера", которое доступно на странице "Оборудование" программы System в панель управления.
Тот факт, что политика подписывания драйверов по умолчанию предупреждает конечных пользователей о неподписанных драйверах достаточно, чтобы большинство поставщиков оборудования пошли на проблемы обеспечения надежности драйверов и получения их подписывания. Тем не менее драйверы устройств могут не обнаружить систему в политике подписывания драйверов. Проверяются только драйверы, установленные с помощью INF-файлов (файлы установки драйверов, которые заканчиваются расширением INF). Приложения установки могут вручную устанавливать драйверы с помощью API установки напрямую или вручную настраивать параметры реестра драйверов. Приложения sysinternals — это отличные примеры этого: Filemon, Regmon и другие средства Sysinternals, в которых компоненты драйверов устанавливаются вручную, что является причиной того, что вы не предупредили, что они не подписаны корпорацией Майкрософт.
Драйверы, которые обычно не установлены с INF-файлами, включают сканеры вирусов, программное обеспечение шифрования и программное обеспечение для записи cd-ROM. Тем не менее, это не исключает скольжения драйверов, связанных с оборудованием. Драйвер Sysinternals CTRL2cap для Windows 2000 (www.sysinternals.com/ctrl2cap.htm является примером аппаратного драйвера, который устанавливает способ, который проходит проверку подписи драйвера. Эта лазейка приводит к присутствию драйверов в системе, которые не были проверены, что может компрометировать стабильность системы (я проверяю все драйверы Sysinternals на самых высоких параметрах). Корпорация Майкрософт должна принудительно использовать все драйверы, а не только те, которые устанавливаются с INF-файлами, чтобы пройти проверку подписи.
Почему я на этом разглагольствоваю? Мое программное обеспечение для сжигания компакт-дисков, которое является самым популярным из этого типа программного обеспечения на рынке, имеет драйвер, который воспроизводимо сбой системы Windows 2000 с пакетом обновления 1 (SP1). Если я настрою средство проверки драйвера для проверки, система даже не завершает загрузку до того, как средство проверки обнаруживает первое нарушение драйвера и завершает работу системы. Драйвер установлен без INF-файла, поэтому я не предупредил, что он не был подписан. Я гарантирую, что если политика Майкрософт была более строгой, что этот поставщик будет думать дважды перед доставкой без знака (и ошибка) драйвера.
Пожалуйста, передайте бюллетень друзьям, вы думаете, может быть заинтересован в его содержимом.
Спасибо!
-Метка
НОВЫЕ ВОЗМОЖНОСТИ SYSINTERNALS
PSLOGGEDON V1.2
Помимо очевидного изменения имени с LoggedOn на PsLoggedOn, это средство командной строки, которое имеет возможность показать, кто вошел в систему локально и через общие ресурсы в локальной или удаленной системе, имеет некоторые новые функции. Первым является параметр командной строки "-l", который привел к отзыву пользователей. Многие пользователи используют PsLoggedOn, чтобы узнать, входит ли какая-либо учетная запись локально на свои серверы. Пользователи могут выполнять вход через общие папки, например, но это не имеет значения при принятии решения о том, когда учетная запись может быть обновлена или сервер можно удаленно администрировать.
Вторая новая функция PsLoggedOn показывает вам не только тот, кто вошел в систему, но и время, в течение которого произошел вход. PsLoggedOn получает время входа для входа из общих папок ресурсов бесплатно при использовании API Win32, NetSessionEnum для перечисления входов в ресурсную папку (команда Net командной строки Также использует NetSessionEnum для перечисления сеансов). Однако отсутствует API Win32, который сообщает вам, кто вошел в систему локально, гораздо меньше времени входа в систему.
Чтобы определить, кто вошел в систему локально, PsLoggedOn перечисляет идентификаторы безопасности (SID), расположенные под разделом реестра компьютера HKEY_USERS
. Когда кто-то входит на компьютер локально, в консоли или через службу, его профиль загружается в HKEY_USERS
ключ. Приложения могут получить доступ к параметрам реестра своего профиля через HKEY_CURRENT_USER
ключ, так как система обрабатывает этот ключ как символьную ссылку на определенный профиль в разделе HKEY_USERS
. Таким образом, PsLoggedOn может знать, кто вошел в систему локально, превратив идентификаторы SID, которые он находит в ключе компьютера HKEY_USERS
в соответствующее имя пользователя. PsLoggedOn используется RegConnectKey
для подключения к реестру удаленного компьютера при его перенаправлении к списку пользователей, вошедшего в удаленную систему.
Выясните, какое время пользователь вошел в систему, используя аналогичный трюк. Когда процесс WinLogon загружает профиль HKEY_USERS
пользователя после входа, WinLogon создает переменную (не сохраненную в профиле на диске) подключ в своем профиле с именем достаточно, достаточно независимую среду. Реестр сохраняет метки времени последнего изменения для разделов реестра, и так как система не изменяет вложенные разделы "Переменная среда" после их создания, PsLoggedOn может определить, когда пользователь вошел в систему, получив метку времени в подразделе "Переменная среда".
Скачайте PsLoggedOn версии 1.2 с полным исходным кодом по адресу
www.sysinternals.com/psloggedon.htm.
PSSHUTDOWN V1.0
Если вы когда-либо нуждались в завершении работы или перезагрузке локальной или удаленной системы Windows NT/2000, вы хотите скачать PsShutdown. PsShutdown — это клон средства комплекта ресурсов Windows NT/2000. Он принимает те же аргументы командной строки, которые позволяют указать задержку перед завершением работы, независимо от того, нужно ли перезагрузить, необязательное сообщение для отображения любому пользователю, вошедшего в систему, и имя компьютера для завершения работы или перезагрузки.
Скачайте PsShutdown версии 1.0 по адресу www.sysinternals.com/psshutdn.htm.
PSTOOLS версии 1.1
Вероятно, вы заметили увеличение количества инструментов в Sysinternals, которые начинаются с префикса Ps. Первым был PsList, программа командной строки, которая содержит сведения о активных процессах в локальной или удаленной системе Windows NT/2000. Я дал PsList свое имя, так как стандартное средство сведений о процессе командной строки UNIX называется ps. Следующий инструмент для получения префикса был PsKill, программа командной строки, которая позволяет завершить процессы, выполняемые в локальных или удаленных системах Windows NT/2000. Я дал PsKill префикс "Ps", потому что он сделал идеального компаньона PsList.
Со временем я разработал другие инструменты, которые совместно используют те же характеристики, что и PsList и PsKill: они основаны на командной строке и работают на локальной или удаленной системе Windows NT/2000. Например, ElogList позволяет дампать содержимое журналов событий системы, а GetSid показал идентификатор безопасности компьютера или конкретной учетной записи. Недавно я решил связать все эти инструменты, предоставив им все префикс Ps и сделав их скачиваемым в виде одного пакета с именем PsTools.
PsTools, включающий PsList, PsKill, а также переименованный PsLogList и PsGetSid, состоит из семи инструментов. Если вы видите средство Sysinternals с префиксом Ps, вы автоматически знаете, что это средство командной строки, которое работает локально, а также удаленно.
Скачайте PsTools версии 1.1 по www.sysinternals.com/pstools.htm.
BGINFO V1.1
В результате огромных отзывов пользователей Bryce обновил BgInfo, служебную программу, которая устанавливает фоновые рисунки на рабочем столе для отображения настраиваемой информации о конфигурации системы, в результате получения отзывов пользователей, которые он получил. По умолчанию BgInfo отсчитывается в течение 10 секунд, прежде чем применять параметры, указанные в диалоговом окне, но новый параметр командной строки, /timer
позволяет полностью изменить или исключить отсчет времени. Это упрощает включение BgInfo в скрипт входа или в качестве ярлыка в папку запуска профиля.
Версия 1.1 включает другие новые функции, такие как возможность отображения произвольного текста, определяемого вами, и более предопределенных категорий сведений. Создание растрового изображения на рабочем столе BgInfo версии 1.1 также меньше, что уменьшает объем памяти рабочего стола BgInfo.
Скачайте BgInfo версии 1.1 по адресу www.sysinternals.com/bginfo.htm.
TOKENMON версии 1.0
Tokenmon — это последнее дополнение к разнообразным наборам средств мониторинга, которые можно скачать из Sysinternals. Tokenmon, который использует тот же пользовательский интерфейс, что и его двоюродные братья, такие как Regmon и Filemon, отслеживает значительные действия, связанные с безопасностью в системе Windows NT/2000. Что такое "значительное" действие, связанное с безопасностью? В основе безопасности Windows NT/2000 является объект токена, структура данных, содержащая идентификаторы безопасности учетной записи, групповые идентификаторы и привилегии. Каждый раз, когда процесс пытается получить доступ к защищенному объекту, монитор ссылок безопасности использует идентификаторы SID в маркере в рамках проверки доступа. Если процесс пытается выполнить ограниченную операцию, например перезагрузку системы, система проверяет соответствующую привилегию в маркере процесса.
Одной из мощных (и патентованная) функций модели безопасности Windows NT/2000 является олицетворение. Олицетворение позволяет потоку временно переопределить свое удостоверение на основе процесса и применить альтернативное удостоверение с помощью маркера олицетворения. Серверные приложения используют преимущества олицетворения при доступе к ресурсам от имени клиента, когда они принимают удостоверение клиента в течение длительности доступа.
Tokenmon устанавливает системные перехватчики вызовов так же, как и regmon для API реестра, чтобы отслеживать создание и удаление маркеров, включение и отключение привилегий и олицетворение. Tokenmon также использует перехватчики создания процессов, предоставляемые ядром NT/2000, для мониторинга создания и удаления процессов, а также других API, чтобы определить, когда пользователь входит в систему и когда он выключается.
Полный исходный код в Tokenmon размещен, и стоит обсудить некоторые из интересных методов, демонстрируемых кодом. Tokenmon обнаруживает событие входа путем перехвата системного вызова NtCreateToken, который используется брокерами входа, такими как WinLogon, для создания начального маркера для первого процесса нового сеанса входа. Процессы, созданные первым процессом, наследуют копию первого маркера. Чтобы обнаружить выход, Tokenmon регистрирует уведомление о выходе с помощью функции SeRegisterLogonSessionTerminatedRoutine, API, которая существует для преимущества драйверов файловой системы, называемых перенаправлением сети, которые кэшируют данные сеанса входа в систему и хотят очиститься при выходе пользователя из системы. Сетевые перенаправления реализуют клиентские подключения клиента или сервера общего доступа к файлам.
Еще одна интересная информация о реализации Tokenmon заключается в том, как tokenmon перехватывает API, которые он отслеживает. Некоторые API-интерфейсы, которые перехватчики Tokenmon не экспортируются для использования драйверами устройств, но экспортируются в библиотеке NTDLL.DLL пользовательского режима для использования приложениями, которые используют их эквиваленты Win32. Все API реестра, экспортируемые в режиме ядра, позволяют драйверу устройства Regmon получить номера системных вызовов и подключить таблицу системных вызовов соответствующим образом. Для API, которые не экспортируются для использования драйверами, графический интерфейс Tokenmon должен получить номера вызовов с помощью экспорта в NTDLL.DLL, а затем передать номера драйверу, чтобы драйвер смог подключить системную таблицу вызовов. Таким образом, Tokenmon демонстрирует, как перехватывает системные вызовы, которые не экспортируются в режиме ядра.
Скачайте Tokenmon версии 1.0 с полным исходным кодом по www.sysinternals.com/tokenmon.htm.
FILEMON V4.32
В этом последнем обновлении filemon представлены более интуитивно понятные и полные фильтры, отображение полных имен путей UNC для доступа к сетевым файлам Windows 9x/Me и отображение имен файлов метаданных NTFS.
Предыдущие версии Filemon требуют ввода фильтров с обязательными подстановочными знаками. Например, если вы хотите отслеживать доступ к каталогу Temp на диске C:
, необходимо ввести фильтр следующим образом: "c:\temp\*
".
С новыми подстановочными знаками синтаксиса фильтрации являются необязательными, поэтому в то время как пример фильтра будет работать, "c:\temp
" приведет к тому же эффекту. Кроме того, Filemon теперь применяет фильтры, введенные для всех полей в отображении, включая имя процесса, тип запроса, путь и другой столбец. Эта гибкость позволяет отслеживать определенные типы запросов или запросы с определенными данными в другом столбце, что-то ранее невозможно.
Пользователи filemon в системах Windows 9x/Me теперь увидят имена путей filemon с полным синтаксисом UNC при доступе к удаленным ресурсам. Файловыймон ранее не отображал имя сервера или общего ресурса для таких доступа, что привело к неполным именам путей.
Наконец, если вы использовали Filemon в Windows NT/2000, вы, несомненно, видели текст DASD в столбце пути для многих доступа (DASD— это термин, используемый корпорацией Майкрософт для описания доступа к тому, обходя структур файловой системы). Для большинства действий в томах NTFS DASD теперь является частью прошлого. Вместо этого вы увидите имена файлов метаданных NTFS, которые считываются и записываются. Например, обновление записи MFT привело бы к выходной строке DASD раньше, но теперь вы увидите его как доступ к "$Mft", имя внутреннего файла метаданных MFT.
Почему filemon не отображал имена файлов метаданных раньше и как он получает эти имена сейчас? Объекты файлов, представляющие файлы метаданных NTFS, не хранят имя файла, поэтому Filemon не может извлечь имя из объекта файла. Альтернативный метод Filemon для получения имени файла, запрашивающего драйвер файловой системы, не работает ни для файлов метаданных NTFS. Хотя NTFS реагирует на имена файлов метаданных, NTFS на NT 4 случайно приводит к сбоям, а NTFS в Win2k иногда зависает при реагировании на такие запросы.
Поэтому filemon должен прибегнуть к сложной задаче, чтобы получить имена файлов метаданных. Когда он видит запрос, направленный на объект файла в томе NTFS без имени, который отправляет NTFS запрос на индекс файла. Это тот же индекс, что возвращает функция Win32 GetFileInformationByHandle, а для файлов на томах NTFS индекс — индекс MFT файла. Первые 16 записей в MFT зарезервированы для определенных файлов метаданных, поэтому при наличии индекса в этом диапазоне Filemon просто ищет имя файла метаданных в собственной таблице.
К сожалению, вы по-прежнему увидите DASD для метаданных каталога и таблицы распределения файлов (FAT) для томов FAT, так как FAT не сохраняет имена файлов метаданных каталога или FAT. Вы будете удивлены частотой доступа к файлу журнала NTFS ($LogFile). Кстати, NTFS в Свистлере сохраняет имена файлов метаданных, поэтому трюк не требуется на Уистлере.
Окончательное улучшение Filemon позволяет Filemon отображать метки времени дня с разрешением миллисекунда. Эта поддержка требует уродливых взлома в драйвере файлов Windows 9x/Me Filemon из-за ошибок в функции времени в ядре Windows 9x/Me. Дополнительные сведения см. в исходном коде.
Скачайте filemon версии 4.32 с исходным кодом по www.sysinternals.com/filemon.htm.
REGMON V4.32
Изменения Regmon не так важны, как в Filemon, но Regmon теперь поддерживает тот же более интуитивно понятный синтаксис фильтрации, как Filemon, и, как Filemon, применяет фильтры ко всем полям. Он также может отображать разрешение миллисекунда по меткам времени.
Те из вас, которые начали играть с Whistler (преемник Windows 2000) бета-версии 1, возможно, заметили, что предыдущие версии Regmon аварийного сбоя Свистка при запуске. Это связано с тем, что корпорация Майкрософт разместила системную таблицу вызовов, которая изменяет regmon для вставки своих перехватчиков в память, защищенную записью. Regmon версии 4.32 работает вокруг этого с помощью метода, для которого я не предоставил исходный код по запросу Майкрософт, так как метод может нарушиться в окончательном выпуске Уистлера, и Корпорация Майкрософт изучает способы поддержки системного перехвата вызовов. Windows NT не была разработана для поддержки перехвата системных вызовов, что является тем, что мы впервые появились в первом выпуске Regmon еще в середине 1996 года.
Ниже приведен совет без документов Filemon/Regmon. Часто я получаю сообщения электронной почты, которые спрашивают, как запустить Regmon или Filemon из неадминистрационной учетной записи в Windows NT/2000 Существует множество случаев, когда определенное приложение работает правильно при запуске из учетной записи администратора, но не от того, что не является непривилегированным пользователем, где Regmon и Filemon будут полезны для определения того, почему приложение завершается сбоем (обычно проблема, связанная с параметрами безопасности в файле или разделе реестра). Однако запуск Regmon и Filemon из непривилегированных учетных записей завершится ошибкой, так как filemon и Regmon устанавливают драйверы устройств, то, что требует прав администратора.
Однако есть трюк, который позволит вам обойти это: если вы войдите в систему в качестве администратора и запустите Filemon или Regmon, вы сможете впоследствии запускать их из непривилегированных учетных записей. Это связано с тем, что Filemon и Regmon устанавливают драйвер в своем первом выполнении, а в следующих выполнениях обращается к уже загруженном драйверу. Так как я не реализую никакой безопасности в драйвере, непривилегированные пользователи могут запускать средства после загрузки драйвера. Проблема безопасности? Да, но Filemon и Regmon предназначены для устранения неполадок с инструментами, поэтому я и пользователи, которые спрашивают, как запускать служебные программы из непривилегированных учетных записей, просмотрите это как функцию.
Скачайте Regmon версии 4.32 с полным исходным кодом по www.sysinternals.com/regmon.htm.
DEBUGVIEW версии 4.02
Одно из приложений, за которые я получил самые отзывы пользователей, несколько удивительно, DebugView. Эта новая версия имеет некоторые значительные усовершенствования, которые устраняют многие из полученных запросов функций и функций и делают DebugView более мощными, чем когда-либо.
В большинстве случаев DebugView теперь поддерживает до пяти различных фильтров выделения, каждый из которых имеет собственные настраиваемые цвета. Это позволяет одновременно использовать разные ключевые слова в выходных данных отладки и легко различать их. Кроме того, DebugView реализует тот же новый синтаксис фильтрации, что и Filemon и Regmon, что делает подстановочные знаки необязательными для сопоставления подстроки.
Жалоба, которую я получила о предыдущих версиях DebugView, заключается в том, что, даже если вы только что хотели записать выходные данные отладки Win32, вам по-прежнему нужны права администратора для запуска DebugView, так как DebugView не будет работать, если не удалось установить его драйвер устройства. Эта новая версия выполняется даже из учетных записей, у которых нет специальных привилегий. Если он не может установить или получить доступ к драйверу, он просто отключает элементы меню, связанные с режимом ядра.
Две функции, которые упрощают автоматическое запись выходных данных DebugView при входе, являются его параметром "свернуть к области" и поддержкой коммутаторов командной строки. С помощью параметров командной строки можно запустить DebugView в системной области и выходных данных журнала, которые он захватывает в файл, и после запуска DebugView можно использовать параметр меню, чтобы переключить его поведение к минимуму кнопки между минимизацией обычно и минимизацией системной области.
Для пользователей, которые запускают DebugView в удаленных сеансах в службах терминалов Windows 2000, DebugView теперь записывает выходные данные Win32, созданные приложениями, работающими в удаленном сеансе, и при необходимости из сеанса консоли. Это полезно для удаленной отладки COM-серверов и служб Win32, так как эти типы программ выполняются в сеансе консоли.
Наконец, DebugView теперь работает на Освистатель бета-версии 1 с поддержкой записи выходных данных из нескольких новых вариантов Освистчика в функции DbgPrint в режиме ядра.
Скачайте DebugView версии 4.02 по www.sysinternals.com/dbgview.htm.
ВНУТРИ WINDOWS 2000, 3RD EDITION
Официальная книга на внутренних устройствах Windows 2000 теперь доступна! Этот выпуск, соавтор Дэвид Соломон (www.solsem.com) и Марк Руссинович, превышает 40 % больше, чем предыдущий, с новым охватом сети, подключаемых модулей и воспроизведения, управления питанием, служб, реестра, WMI, загрузки и завершения работы и хранения. Он также включает компакт-диск с несколькими мощными инструментами, недоступными в других местах, для изучения внутренних компонентов Windows 2000.
Одним из инструментов, которые я писал специально для книги, является LiveKd, программа, которая позволяет запускать оба отладчика ядра Майкрософт, i386kd и WinDbg, в динамической системе, как если бы вы смотрели на аварийный дамб. Многие эксперименты, представленные в книге, работают в динамической системе при запуске с помощью LiveKd. LiveKd работает путем установки драйвера фильтра файловой системы, который представляет физическую память компьютера отладчику Майкрософт, как если бы он был файлом аварийного дампа. LiveKd создает псевдо дамп-файл длиной 0, а когда отладчик считывает из файла, LiveKd возвращает данные из физической памяти. Ознакомьтесь со страницей errata книги и страницой обновлений для исправления LiveKd, которое исправляет несовместимость между LiveKd версии 1.0 и несколькими сканерами вирусов на доступе.
Просмотрите оглавление книги и порядок сейчас через www.sysinternals.com/insidew2k.htm.
НОЯБРЬ И ЗИМНИЙ ЖУРНАЛ WINDOWS 2000
Интересно, что именно изменилось между NTFS версии 4 и NTFS версии 5? Если да, ознакомьтесь с моей двух частей серии в ноябре и зимних проблемах журнала Windows 2000. Часть 1 описывает точки повторного анализа, соединения каталогов, точки подключения томов, поддержку квот и консолидированные параметры безопасности. Часть 2 завершается с тесным изучением шифрования, потоков, отслеживания распределенных ссылок и журнала изменений. Обе статьи делают вас более глубоко, чем другие, показыв изменения на диске и внутреннее поведение этих новых функций.
Одна вещь, о которую я не говорю в статьях, заключается в том, как NTFS для Windows NT 4 не является действительно версией
Найдите ссылки на все наши публикации на www.sysinternals.com/publ.htm.
SYSINTERNALS AT WWW.MICROSOFT.COM
Sysinternals появился в нескольких новых статьях Базы знаний Майкрософт (KB) с момента последнего бюллетеня, и я также отслеживал некоторые старые статьи базы знаний, которые ссылаются на Sysinternals.
Q260513 PRB: ошибка возникает при установке продуктов Visual Studio
http://support.microsoft.com/support/kb/articles/Q260/5/13.ASP
В этой статье рекомендуется использовать Filemon и Regmon для устранения неполадок при установке Microsoft Visual Studio.Q202258 XADM: система не может найти указанный путь — идентификатор no: 0cx002003
http://support.microsoft.com/support/kb/articles/Q202/2/58.ASP
Корпорация Майкрософт на самом деле позволяет пользователям использовать Filemon для устранения неполадок с обновлением пакета обновления Exchange 5.0, а также пример выходных строк filemon и рекомендаций по настройке фильтров.Q269383 PRB: сообщение "Ошибка доступа к системным реестру" при отображении ссылок на VB/VBA
http://support.microsoft.com/support/kb/articles/Q269/3/83.ASP
Regmon получает реферал из этой статьи, которая обсуждает его, чтобы определить, почему диалоговое окно "Ссылки" в интегрированной среде разработки Visual Basic сообщает, когда он не может получить доступ к разделу реестра в результате ошибки в Seagate Crystal Reports, которая применяет неверные разрешения к нескольким ключам.Q269251 ОШИБКА. Автоматизация установщика Windows может зависать при перечислении продуктов
http://support.microsoft.com/support/kb/articles/q269/2/51.asp
Regmon снова выделен здесь, где он используется для выявления ошибки автоматизации установщика Windows.Q276525 компьютер может перестать отвечать при мониторинге открытых дескрипторов
http://support.microsoft.com/support/kb/articles/Q276/5/25.asp
NtHandle отвечает за выявление ошибки в Windows NT 4 с пакетом обновления 6 (SP6a), где ядро будет зависать при определенных условиях при использовании NtHandle. Корпорация Майкрософт работала со мной, чтобы устранить проблему, и они выпустили исправление. Если система NT 4 зависает при использовании NtHandle, необходимо получить ссылку на эту статью.Q160660 Ntregmon.exe приводит к остановке 0x0000001E с новым пакетом обновления
http://support.microsoft.com/support/kb/articles/Q160/6/60.asp
Это последний является старым, но хорошо. Первая версия Regmon использовала жестко закодированные номера системных вызовов для исправления таблицы системных служб для перехвата API реестра. Так как номера системных звонков иногда меняются между пакетами обновления, этот метод довольно хрупкий, и я не закодировал оборонительно в ожидании этого (против совета Эндрю Шулмана, который боялся, что Regmon разорвался). Конечно, пакет обновления 3 (SP3) представил несколько новых системных вызовов, и Regmon завершит сбой системы, когда он перехватил неправильные системные вызовы. Хотя это, безусловно, раздражило несколько человек, я получил свою собственную статью базы знаний из него!
ЛИЦЕНЗИРОВАНИЕ SYSINTERNALS
Несмотря на то что программное обеспечение, скачаемое из Sysinternals, является бесплатным, то есть вы можете использовать его без оплаты платы, вы не можете распространять его или получать продукты, распространяемые из исходного кода Sysinternals. Например, если вы работаете в компании, где несколько пользователей находят определенные инструменты Sysinternals полезными, вы не можете публиковать средства на внутренний общий ресурс или веб-сайт. Вместо этого поместите ссылки на сайт на дом каждого средства в Sysinternals. Это также помогает убедиться, что ваши коллеги всегда загружают последние версии.
Если вы хотите перераспространить средства Sysinternals внутренне, с коммерческим продуктом или на компакт-диске shareware, или вы хотите создать коммерческий продукт или распространяемую программу в исходном коде Sysinternals, отправьте сообщение электронной почты, объясняющее сведения о нужном использовании для licensing@....
ВНУТРЕННИЕ СВЕДЕНИЯ
NFI
Несколько информационных бюллетеней назад я показал существование средства DiskEdit, которое корпорация Майкрософт непреднамеренно поставляется на CD NT 4 с пакетом обновления 4 (SP4). DiskEdit — это очень мощный, хотя и причудливый, средство просмотра структуры файловой системы, которое можно использовать для изучения NTFS и FAT (хотя это поддержка NTFS, которая интересна) структур данных на диске. Если вы пропустили диск NT 4 с пакетом обновления 4 (SP 4) и заинтересованы в изучении структур NTFS на диске, вы не полностью находитесь в темноте, хотя. Корпорация Майкрософт выпустила бесплатное средство с именем NFI (NTFS Information), которое понимает и может дампать внутренние структуры томов NTFS. Хотя его выходные данные не столь подробно, как в DiskEdit, это интересно и показывает.
Вы можете скачать NFI в рамках средств поддержки OEM по адресу http://support.microsoft.com/support/kb/articles/q253/0/66.asp. При запуске NFI с именем файла сбрасывается запись NTFS MFT для этого файла. В следующем примере показано, как nFI дамп записи MFT для $Quota
файла метаданных, файл, который существует только в томе, если в томе включено управление квотами:
C:\nfi c:\$extend\$quota
File 24
\$Extend\$Quota
$STANDARD_INFORMATION (resident)
$FILE_NAME (resident)
$INDEX_ROOT $O (resident)
$INDEX_ROOT $Q (resident)
В выходных данных показано, что файл занимает 24-ю запись в MFT (его индекс файла равен 24), и что он содержит четыре атрибута, включая стандартные сведения, имя файла и два корневых индекса (и индекс по сути является списком записей, как каталог). Я описываю, как NTFS использует $Quota
индексы в последней серии журналов Windows 2000 в NTFS версии 5.
Чтобы дампать все файлы в томе, укажите букву диска в командной строке NFI без имени nfi c:
файла. Вы увидите список каждой записи MFT, включая все файлы метаданных.
NFI имеет некоторые другие таланты, такие как возможность перевести номер сектора в файл, в котором он находится. Хотите знать, в каком файловом секторе 2345 на диске C:
? Используйте команду nfi c: 2345
. Обратите внимание, что это происходит сбоем на томах программного RAID, таких как наборы томов и наборы полос. NFI работает как на NT 4, так и в Windows 2000.
СКРЫТЫЕ РАЗДЕЛЫ РЕЕСТРА WIN9X
Два вопроса назад я сказал, что я буду охватывать "скрытые разделы реестра Win9x" в следующем бюллетене, и несколько из вас напомнили мне, что я забыл. Так что в этом месяце я расскажу вам о скрытых разделах реестра в Windows 9x.
Несколько лет назад я обнаружил способ создания скрытых разделов реестра в Windows NT. Скрытым, я имею в виду, что, хотя вы видите ключи, к которым обращается приложение, которое создает их с помощью Regmon, вы не можете написать программу Win32 для просмотра значений ключа, а также не посмотреть на ключи с редакторами реестра Regedit или Regedt32. Скрытые ключи полезны для хранения данных, которые не хотят, чтобы конечные пользователи могли изменять, например дату ожидания пробного продукта.
Чтобы сделать скрытый раздел реестра, было мое понимание того, что собственный API NT, который является системным интерфейсом вызова, на котором построен API Win32, требует, чтобы разделы реестра были указаны в качестве подсчета строк Юникода.
Подсчитываемая строка Юникода — это строка, длина которой указывается полем длины, а не наличием конца null. Используя собственный API, вы можете создать разделы реестра, содержащие пустой символ, например "test\0test"
. Так как API раздела реестра Win32 основан на строках, завершаемых значением NULL, невозможно открыть раздел реестра, содержащий конечный элемент NULL с помощью API Win32. Если вы попытались передать в предыдущий пример имя RegOpenKey
ключа или RegCreateKey
будет рассматриваться как "test"
строка, усеченная по значению NULL. Так как все существующие редакторы реестра, включая те, которые входят в комплект с Windows NT и Windows 2000, используйте API Win32, приложение, использующее собственный API для создания имен, внедренных в null-символ, эффективно делает скрытые ключи.
Этот метод работает в Windows NT, но как насчет Windows 9x? Я не думал, что есть способ сделать скрытые разделы реестра в Windows 9x, пока кто-то не по электронной почте мне с файлом журнала Regmon, в который отображаются ключи доступа Internet Explorer (IE), которые не отображаются в Regedit. Чтобы увидеть это самостоятельно, запустите Regmon и задайте следующий фильтр: policydata. Затем запустите IE (это работает для всех версий IE 4 и IE 5) и посетите веб-сайт. Если выходные данные не отображаются в Regmon, перейдите в диалоговое окно конфигурации IE и убедитесь, что помощник по содержимому включен.
Если помощник по содержимому включен или когда-либо включен в вашей системе, вы увидите доступ к HKLM\PolicyDat
ключу и его вложенным ключам. Однако при просмотре в Regedit ключ PolicyData HKEY_LOCAL_MACHINE
не будет находиться. Получите минуту и посмотрите, можно ли выяснить, что происходит.
Ответ заключается в том, что IE динамически загружает куст реестра с помощью RegLoadKey
API Win32, считывает необходимые значения, а затем выгрузит куст с RegUnloadKey
помощью. Hive называется C:\Winows\System\Ratings.pol
— файл скрыт и доступен только для чтения, но его можно выявить, введя его attrib –r –h c:\windows\system\ratings.pol
.
Трассировки, отображаемые в Regmon, показывают сведения, которые помощник по содержимому ищет в кусте. Если вы хотите самостоятельно изучить его содержимое, скачайте служебную программу Regload из www.sysinternals.com/regload.zip и запустите ее с помощью следующего синтаксиса: regload test c:\windows\system\ratings.pol
Затем откройте Regedit и перейдите HKLM\test
. Значения, которые вы найдете в соответствии с параметрами, указанными в помощнике по содержимому, и связаны с файлом конфигурации с именем в Users\FileName0
значении в кусте. Значение обычно указывает C:\Windows\System\RSACi.rat
на файл оценок, определенный Ассоциацией рейтингов контента Интернета. Кстати, вы можете увидеть значение с несколько юмористом именем "ПожалуйстаМом" в параметрах реестра Помощника по контенту, например в разделе HKLM\Test\Users\Default
. Это значение является производным от флажка "Руководитель может вводить пароль, чтобы пользователи могли просматривать ограниченное содержимое" на странице "Общие" диалогового окна "Помощник по контенту".
Причина, по которой корпорация Майкрософт закроет существование этих значений реестра, должно быть очевидным. Тем не менее, есть довольно серьезная слабость в их дизайне. Обратите внимание, что при включении помощника по контенту необходимо указать пароль, который защищает диалоговое окно параметров помощника по контенту. Этот пароль хранится в HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Ratings\Key
. Удалите это значение и, престо, вы можете получить доступ к параметрам Помощника по контенту без ввода пароля! Теперь, если разработчики IE пошел на проблемы, чтобы скрыть параметры Помощника по контенту, почему они покидают эту заднюю дверь висит в открытой? Типичный дизайн безопасности Майкрософт, я думаю. Кстати, чтобы выгрузить ключ, загруженный с помощью Regload, просто введите regload test
.
ЧТО ПРОИСХОДИТ
НОВЫЕ СИСТЕМНЫЕ ВЫЗОВЫ ОСВИСТЧИКА
Освистатель — это добавочная эволюция операционной системы Windows 2000 с акцентом на повышение надежности и простоту миграции пользователей из операционных систем Windows 9x. Однако он включает некоторые изменения ядра. Наиболее заметными являются несколько новых системных вызовов и экспортированных (доступных для использования драйверами устройств) функций ядра. В следующий раз я предоставлю вам предварительную версию этих новых API ядра.
Благодарим вас за чтение бюллетеня Sysinternals.
Опубликовано в четверг, 30 ноября 2000 7:05 вечера по оттох