Книга, которую вы держите в руках, содержит сведения о таких малоизвестных возможностях Windows, как работа с программой rundll32.exe, с реестром операционной системы, а также описание оснасток и работы с консолью управления mmc.exe. Кроме того, с ее помощью вы сможете лучше узнать предназначение отдельных папок, файлов журнала и библиотек, используемых компонентами операционной системы Windows XP. В книге будут также рассмотрены некоторые примеры создания сценариев сервера сценариев Windows и INF-файлов.
Эта книга предназначена скорее для опытных пользователей и администраторов, не использующих Active Directory, которым интересно узнать о нестандартных возможностях Windows, а также о некоторых простых способах ее взлома. Однако она может быть интересна и простым пользователям. В общем, автор охарактеризовал бы круг читателей так: для всех, кто хочет знать больше.
Теперь, когда общие вопросы рассмотрены, скажем еще несколько слов о темах, которые будут описаны в книге.
■ Часть 1. «Программа rundll32.exe» — первая часть книги посвящена гениальной программе от Microsoft rundll32.exe, входящей в стандартную поставку Windows. Функциональность этой программы можно охарактеризовать так — она предназначена для выполнения библиотечных и API-функций программ напрямую из Windows, без участия самой программы. К сожалению, об этой программе уже стали забывать даже сами программисты Microsoft, иначе как объяснить тот факт, что с ее помощью можно обойти некоторые ограничения, которые устанавливаются с помощью административных шаблонов Windows. Но об этом далее.
Конечно, это описание ничего пока не говорит, но автор уверен, что после прочтения первой части книги вы разделите его восхищение этой программой.
■ Часть 2. «Реестр Windows XP» — вторая часть посвящена системному реестру Windows XP. В ней будут рассмотрены возможности настройки операционной системы, доступ к которым нельзя получить с помощью диалоговых оконоперационной системы. Описаны также некоторые настройки конфигурации системы, с помощью которых можно повысить ее общую производительность.
Вторая часть предназначена пользователям, которые не понаслышке знают о реестре. Если же вы ничего о нем не знаете, то вам будет довольно трудно понять способ работы с ним на основе только этой части, но возможно.
■ Часть 3. «Консоль управления Microsoft» — третья часть описывает консоль управления Microsoft. Это программа, которая содержит всю функциональную составляющую Windows, направленную на администрирование системы. Здесь рассмотрены следующие вопросы: общая работа с консолью управления, работа с отдельными ее оснастками, параметры реестра, которые изменяются оснастками и некоторыми административными шаблонами, а также более узконаправленные вопросы работы отдельных оснасток консоли.
■ Часть 4. «Другие возможности Windows XP» — в четвертой части рассмотрены другие интересные возможности операционной системы, о которых вы можете не знать. Здесь описаны принципиальные различия между версиями операционной системы Windows XP, некоторые интересные особенности INF-файлов, возможности нестандартной настройки Windows XP, сказано несколько слов о безопасности компьютера и роли в этой безопасности учетной записи системы. В этой части рассмотрены также каталоги файловой системы Windows XP, и вы сможете узнать, что же в них хранится и для чего они вообще нужны.
Кроме того, книга содержит шесть приложений, из которых вы узнаете о наиболее интересных ActiveX-объектах, используемых в операционной системе, а также о содержимом некоторых справочных файлов, входящих в состав операционной системы.
Вместе с книгой поставляется база данных, содержащая описанные в издании параметры реестра.
Ваши замечания, предложения, вопросы отправляйте по адресу электронной почты [email protected] (издательство «Питер», компьютерная редакция).
На сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
Часть 1
Программа rundll32.exe
Глава 1
Работа с оболочкой
Rundll32.exe — это небольшая программа, поставляемая со всеми версиями Windows.
Она была создана программистами Microsoft для своих нужд и способна выполнять любую Wind32 API-функцию, описанную в библиотеке, как будто эта функция вызывается из программы или сама является полноценной программой. Rundll32.exe создавалась для вызова различных функций из файлов сценариев или INF-файлов, с ее помощью можно выполнить очень много интересных и полезных трюков, описание которых приведено в данной главе.
Перед описанием команд, доступных при работе с rundll32.exe, хотелось бы еще сузить рамки функций, которые необходимо понимать под «любыми» функциями, выполняемыми с помощью данной программы.
Несмотря на то, что программа rundll32.exe способна выполнять любые функции, не все функции смогут быть выполнены — все дело в том, что некоторые из функций могут ожидать каких-то специальных параметров, не являющихся статическими и получаемых с помощью других функций.
Еще хуже ситуация может обстоять в том случае, когда функция не принимает никаких параметров, но при своей работе использует содержимое регистров или памяти компьютера. В этом случае вызов данной функции может быть подобен игре в кости — если вам повезет и все необходимые данной функции параметры окажутся корректными, то она сможет выполниться.
Синтаксис программы rundll32.exe довольно прост:
rundl32 «путь к библиотеке и ее имя», «имя функции в данной библиотеке», «список необходимых параметров через запятую»
Но как же можно вызвать данную программу? Помимо использования вызова в коде сценария, о чем будет рассказано в следующих главах книги, программу можно вызвать и с помощью диалога Запуск программы (Пуск►Выполнить) или в поле команды при создании ярлыка. Например, в окне Запуск программы введите команду rundll32 shell32.dll, ShellAboutA и вы сможете увидеть диалог, подобный приведенному на рис. 1.1.
Рис. 1.1. Окно с информационными сведениями об операционной системе
ВНИМАНИЕ
Если регистр, в котором вы вводите команду, для названия параметров функции и библиотек не важен, то для названия функции следует внимательно следить за его написанием как с точки зрения ошибок, так и с точки зрения регистра каждого отдельного символа, иначе программа rundll32.exe не сможет найти необходимую вам функцию. Например, если вы вместо названия функции ShellAboutA введете название ShellaboutA, то rundll32.exe выведет сообщение о невозможности вызова функции, так как ее нет в соответствующей библиотеке.
Из нескольких предыдущих абзацев вы узнали практически все теоретические выкладки, которые необходимы для работы с программой rundll32.exe. Сейчас же будут перечислены те возможности, которые данная программа может предоставить пользователю. Начнем с описания функций CPL-файлов.
ПРИМЕЧАНИЕ
Перед тем как будут рассмотрены различные функции, которые могут выполняться с помощью программы rundll32.exe, хотелось бы уточнить способ записи некоторых функций. Чуть выше рассмотрена команда, выполняющая функцию ShellAboutA. Как можно заметить, эта функция заканчивается каким-то совершенно ненужным символом — A. Он говорит системе о том, что функция использует для своей работы символы кодировки ASCII (использование одного байта для представления одного символа). Существует еще один символ, которым может заканчиваться функция — символ W. Он говорит системе о том, что функция использует для своей работы символы в кодировке Unicode (для представления одного символа используются два байта). Так вот, эти символы совершенно не обязательны (хотя в очень редких случаях они необходимы) — если вы введете название функции без последнего символа (А или W), то система сама попробует определить, какая кодировка должна использоваться.
Хотя раньше говорилось, что программа rundll32.exe может вызывать функции библиотек, на самом деле ее возможности намного обширнее — она может вызвать функцию отовсюду, где она указана, будь то библиотека, CPL-файлы или сам исполняемый файл программы.
CPL-файл — это специальный файл (их еще называют апплетами), являющийся диалоговым окном, которое вызывается с помощью Панели управления и предназначено для настройки какого-то отдельного компонента операционной системы. Большую часть ссылок на CPL-файлы можно встретить в папке Панель управления, которую можно открыть либо с помощью меню Пуск, либо с помощью вызова команды control или команды shell:ControlPanelFolder. Но операционная система Windows позволяет вызывать CPL-файлы и с помощью ввода их названия в окне Запуск программы (в этом случае расширение CPL указывать обязательно).