Чтение онлайн

на главную

Жанры

Недокументированные и малоизвестные возможности Windows XP

Клименко Роман

Шрифт:

Другим интересным вопросом является озвучивание системных событий. Как оказывается, озвучивание события также выполняется процессом WINLOGON.EXE. При этом путь к музыкальному файлу для озвучивания события хранится в ветви реестра, доступной для редактирования любым пользователям. Здесь также возникают вопросы. А нельзя ли вместо озвучивания музыкального файла выполнить какой-нибудь произвольный код? Или вместе с музыкальным файлом? Или, например, указать путь к ярлыку музыкального файла, а этот ярлык, в свою очередь, будет ссылаться на музыкальный файл, доступ к которому вам как пользователю был запрещен. Да здесь, собственно, и ярлык не нужен, как оказывается, так можно прослушать даже тот файл, доступ к которому вам был полностью запрещен, но вы точно знаете, где этот файл

находится. Как это сделать? Все музыкальные файлы для озвучивания событий описаны в ветви реестра HKEY_CURRENT_USER\AppEvents\Schemes\Apps. Например, параметр (По умолчанию) ветви реестра HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemHand\. Current определяет путь к файлу, который будет проигрываться процессом WINLOGON.EXE при возникновении критической ошибки. Другими словами, вы можете указать здесь путь к любому музыкальному файлу, а потом, например, просто ввести в диалоге Запуск программы любую строку, не ассоциированную с программой, например символ b. Скорее всего, система не найдет программы с названием b. exe, а значит, произойдет событие критической ошибки и будет воспроизведен необходимый вам файл.

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

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

Интересна также сама необходимость учетной записи системы с полными правами. Например, зачем службам такие возможности, как изменение ACL объектов или создание учетных записей администраторов? Зачем тому же WINLOGON.EXE такие возможности? Намного безопасней будет создать несколько ограниченных учетных записей системы, выполняющих только определенные задачи, которые могут понадобиться той или иной службе.

Глава 15

INF-файлы

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

Основные сведения

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

ПРИМЕЧАНИЕ

Необходимость изучения INF-файлов во многом оправдана. Конечно, сейчас INF-файлы заменили пакетами установщика Windows и другими способами описания начальной установки программ. Тем не менее они обладают несколькими интересными возможностями, которые будут рассмотрены далее и которые довольно трудно выполнить без использования INF-файлов. С помощью INF-файлов можно также работать с реестром, даже когда возможность работы с программой regedit.exe и REG-файлами была отключена с помощью DWORD-параметра DisableRegistryTools, расположенного в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\system. И не следует забывать, что INF-файлы могут использоваться системными процессами, то есть на их основе можно выполнить взлом операционной системы. 

Обычные INF-файлы

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

[Version]

Signature="$WINDOWS NT$"

При этом после ключевого слова Signature идет описание версии операционной системы, которая будет поддерживать такие INF-файлы. Если после этого ключевого слова идет слово $WINDOWS NT$, то данный файл написан для операционных систем семейства NT и работать с ним в операционных системах семейства Windows 9x нельзя. Если же после ключевого слова идет слово $CHICAGO$, то данный INF-файл был написан для операционных систем семейства Windows 9x. При этом работать с этим файлом можно будет и в операционных системах семейства NT.

После заголовка должен идти начальный блок, с которого будет устанавливаться данный INF-файл. Стало традицией, что этот блок должен иметь название DefaultInstall. К тому же блок именно с таким заголовком ищет система при установке INF-файла с помощью команды Установить его контекстного меню. Если же предполагается, что создаваемый INF-файл не должен вызываться с помощью контекстного меню (а только с использованием команды rundll32.exe setupapi.dll, InstallHINFSection), то начальный блок можно указать любой.

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

Создание ветвей реестра

Например, в начальном блоке может находиться ключевое слово AddReg, указывающее на блоки INF-файла, описывающие добавляемые или изменяемые параметры и ветви реестра. Рассмотрим формат этого ключевого слова на примере листинга 15.1. В данном листинге приведен пример редактирования DWORD-параметра AutoRun из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdrom. В примере этому параметру присваивается значение 0, то есть отключается возможность автоматического запуска дисков. 

Листинг 15.1. Редактирование параметров реестра

[version]

Signature="$CHICAGO$"

[DefaultInstall]

AddReg=AR_off

[AR_off]

HKLM, "SYSTEM\CurrentControlSet\Services\Cdrom","Autorun",0x10001,0

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

«корневой раздел», «ветвь реестра», «параметр», «флаг типа параметра», «новое значение параметра»
 

Рассмотрим этот формат подробнее.

■ Корневой раздел — здесь содержится ключевое слово, определяющее корневой раздел реестра, в котором расположен изменяемый параметр. Возможны следующие значения:

 • HKCU — определяет корневой раздел HKEY_CURRENT_USER;

 • HKLM — HKEY_LOCAL_MACHINE;

 • HKU — HKEY_USERS;

 • HKCR — HKEY_CLASSES_ROOT;

 • HKCC — HKEY_CURRENT_CONFIG.

Поделиться:
Популярные книги

Рядовой. Назад в СССР. Книга 1

Гаусс Максим
1. Второй шанс
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Рядовой. Назад в СССР. Книга 1

Смерть может танцевать 4

Вальтер Макс
4. Безликий
Фантастика:
боевая фантастика
5.85
рейтинг книги
Смерть может танцевать 4

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Энфис 3

Кронос Александр
3. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 3

Восход. Солнцев. Книга V

Скабер Артемий
5. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга V

Старатель

Лей Влад
1. Старатели
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Старатель

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Холодный ветер перемен

Иванов Дмитрий
7. Девяностые
Фантастика:
попаданцы
альтернативная история
6.80
рейтинг книги
Холодный ветер перемен

Безымянный раб [Другая редакция]

Зыков Виталий Валерьевич
1. Дорога домой
Фантастика:
боевая фантастика
9.41
рейтинг книги
Безымянный раб [Другая редакция]

Брак по-драконьи

Ардова Алиса
Фантастика:
фэнтези
8.60
рейтинг книги
Брак по-драконьи

На границе империй. Том 8

INDIGO
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8

Паладин из прошлого тысячелетия

Еслер Андрей
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
6.25
рейтинг книги
Паладин из прошлого тысячелетия

На границе империй. Том 5

INDIGO
5. Фортуна дама переменчивая
Фантастика:
боевая фантастика
попаданцы
7.50
рейтинг книги
На границе империй. Том 5

Серые сутки

Сай Ярослав
4. Медорфенов
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Серые сутки