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


Авторские права

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

Здесь можно скачать бесплатно "Роман Клименко - Недокументированные и малоизвестные возможности Windows XP" в формате fb2, epub, txt, doc, pdf. Жанр: Программное обеспечение, издательство Питер, год 2006. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Роман Клименко - Недокументированные и малоизвестные возможности Windows XP
Рейтинг:
Название:
Недокументированные и малоизвестные возможности Windows XP
Издательство:
Питер
Год:
2006
ISBN:
5-469-01562-9
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

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

Описание и краткое содержание "Недокументированные и малоизвестные возможности Windows XP" читать бесплатно онлайн.



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

Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows. Тем более что довольно часто эти возможности позволяют обойти ограничения на те или иные функции Windows, установленные администратором. Издание также может быть интересно и обычным пользователям






Глава 13

Программа Debug

Следующей возможностью, которую хотелось бы описать, является способ создания программ Win32 с помощью стандартного отладчика командной строки debug.exe.

Но сначала хотелось бы пояснить, зачем вообще упоминается этот отладчик. Согласитесь, существуют компьютеры общего пользования, на которые пользователь не имеет права ничего устанавливать. На них нет привода компакт-дисков, дисковода, Интернета или нельзя скачивать из Интернета файлы. В общем, администраторы сделали так, чтобы нельзя было устанавливать свои файлы, в том числе вирусы, перехватчики клавиатуры, троянские кони. Но уже стало стандартом, что программа debug.exe входит в поставку Windows и о ней теперь знает все меньше и меньше администраторов…

Это был тонкий намек администраторам подобных общественных компьютеров.

ПРИМЕЧАНИЕ

Отладчик debug.exe входит в стандартную поставку всех версий Windows (находится в каталоге %systemroot%\system32) и предназначен для отладки DOS-приложений на языке «Ассемблер» или машинном языке.

 Итак, запустим командную строку и введем название команды — debug.exe. После этого мы попадем в среду программы, о чем можно узнать из появившегося приветствия в виде горизонтального курсора.

Теперь посмотрим на сам код простенькой программы Win32, вызывающей стандартное окно приветствия.

ПРИМЕЧАНИЕ

Данный код был взят из статьи журнала «Ваш компьютер» за 2003 год. 

Листинг 13.1. Программа Win32 типа Hello, World!

f 0 400 0

f1000 1200 0

a0

db4d,5a

а 3с db40

а 40

db 50,45,0,0

dw 14c,1

а 54

dw e0,10f,10b

а 68 dw 10d0

a 74

dw 0,40,1000,0,200,0

dw 4,0,0,0,4

a 90

dw 2000,0,200,0,0,0,2

a b4 dw 10

a c0

dw 1090,0,3c

a 140

dw 1000,0,1000,0,200,0,200,0

a 15c

dw 20,e000

a 1010

db 54,68,69,73,20,54,69,74,6c,65,3f

a 1020

db 54,68,69,73,20,4d,65,73,73,61,67,65,3f

a 1040

db 55,53,45,52,33,32,2e,64,6c,6c

a 1050

db 4b,45,52,4e,45,4c,33,32,2e,64,6c,6c

a 1060

db 0,0,4d,65,73,73,61,67,65,42,6f,78,41

а 1070

db 0,0,45,78,69,74,50,72,6f,63,65,73,73

а 1080

dw 1060,0,0,0,1070,0,0,0

а 1000

dw 1060,0,0,0,1070,0,0,0

а 1090

dw 1080,0,0,0,0,0,1040,0,1000,0

dw 1088,0,0,0,0,0,1050,0,1008,0

a 10d0

db 6a,24

db 68,10,10,40,0

db 68,20,10,40,0

db 6a,0

db ff,15,0,10,40,0

db 6a,0

db ff,15,8,10,40,0

m 1000 1200 200

m 0 400 100

n «путь и имя создаваемого файла.bin»

r cx 400 w

q

Вот и весь код программы, написанной на машинном языке и вызывающей окно, отображенное на рис. 13.1. 

Рис. 13.1 Результат выполнения программы 

Команды программы

Теперь попробуем разобраться в этом коде. Для начала опишем команды отладчика, применяемые в нем.

F «начальный адрес» «конечный адрес» «заполнитель»

Данная команда заполняет «заполнителем» диапазон памяти, начиная с «начального адреса» и заканчивая «конечным адресом».

A «адрес»

Команда говорит отладчику о том, что вы хотите изменить содержимое, записанное в памяти, начиная с указанного «адреса». После ее ввода перед вами появится приглашение, указывающее, какой участок памяти в данный момент редактируется. Чтобы сказать отладчику, что вы уже отредактировали необходимый вам участок памяти, нужно в пустой строке нажать клавишу Enter.

Можно также ввести данную команду без значения адреса — в этом случае вы будете редактировать значение адреса памяти, применяемого при последней операции останова.

m «начальный адрес» «конечный адрес» «адрес назначения»

Эта команда копирует содержимое диапазона памяти, начиная с «начального адреса» и заканчивая «конечным адресом», в область памяти, начинающуюся с адреса назначения.

N «путь и имя файла»

Данная команда указывает, как будет называться создаваемый отладчиком файл (и в каком каталоге он будет находиться). Следует учитывать, что отладчик создавался для приложений MS-DOS, поэтому он не может создавать ЕХЕ-файлы — именно поэтому в коде и создается BIN-файл (после его создания нужно будет переименовать расширение BIN в расширение EXE).

Команда применяется также для загрузки файла и указания параметров запуска файла (в этом случае после команды n должны идти аргументы программы).

R «регистр»

Эта команда говорит отладчику о том, что вы хотите изменить содержимое конкретного регистра процессора. В контексте приведенного кода изменяется содержимое регистра СХ. После ввода команды появится приглашение (в виде двоеточия) для ввода нового содержимого регистра.

Если ввести команду без указания конкретного регистра, то перед вами отобразится содержимое всех регистров процессора, всех флагов (определяют, было ли зарегистрировано переполнение при выполнении операции с числами, является ли число четным и т.д.) и содержимое данной области памяти.

Можно также отредактировать установки флагов. Для этого нужно ввести такую разновидность команды: r f, после чего перед вами отобразится установка флагов в текущий момент и приглашение для редактирования флагов. Чтобы отредактировать один из флагов, нужно ввести в приглашении противоположный ему флаг. Например, для флага cy (перенос) нужно указать флаг nc (нет переноса).

W «адрес»

И наконец, с помощью этой команды записывается содержимое памяти на диск в виде программы Win32. Без аргумента данная команда начинает запись файла из адреса памяти CS:100, но можно самому указать адрес памяти, из которого будет начинаться запись.

Q

Эта команда закрывает окно отладчика.

Описание кода

Теперь, когда вы знаете описание необходимых команд, можно заняться описанием самого кода программы. И описывать его будем так: сначала указывается адрес памяти (или команда), а потом кратко говорится о том, для чего мы записываем по этому адресу памяти данные.

ПРИМЕЧАНИЕ

Еще перед описанием кода стоит сказать о командах db и dw, с которых начинается запись значений в адреса памяти — эти команды указывают на размер одной записываемой ячейки (ячейки отделяются запятыми). Если указана первая команда, то одна ячейка будет занимать в памяти 1 байт, а если указана вторая команда, то одна ячейка будет занимать 2 байта.

И еще одно — все значения в коде приведены в шестнадцатиричном виде и пишутся в обратном порядке.

Сначала нужно заполнить нулями (то есть очистить) диапазоны памяти от 0 до 400 и от 1000 до 1200. В первом диапазоне будет содержаться сама программа, а второй диапазон будет рабочим — именно в нем для удобства и будет вначале собрана программа.

Начиная с адреса 0 и заканчивая адресом 15c, формируется заголовок РЕ-файла: вначале пишется заголовок DOS-файла (адрес 0, записывается MZ), потом указывается, с какого адреса будет начинаться заголовок РЕ-файла (содержимое адреса 3c), и в этом адресе пишется сам заголовок РЕ-файла (адрес 40, записывается «Р», «Е», 0,0). По этому же адресу записывается идентификатор процессора, для которого предназначена программа (для i386 вводится 14c), и количество секций, из которых она будет состоять. Дальше, по адресу 54, указывается размер NT-заголовка, флаги программы и «магическое значение». Если значения предыдущих адресов были статичны, то содержимое адреса 68 зависит от самой программы — оно указывает на адрес точки входа в программу. Начиная с этого адреса, будет вводиться сам код программы. По адресу 74 вводится базовый адрес загрузки (0,40), выравнивание в памяти и в файле (1000,0,200,0), а также версия операционной системы и версия подсистемы (4,0,0,0,4). По адресу 90 указывается размер образа с заголовками в памяти (2000), размер заголовка в файле (200) и подсистема (2). По адресу b4 указывается количество входов в каталоге смещений (10), а по адресу c0 описываются сами входы в каталог (мы используем только один): адрес таблицы импорта (1090) и ее размер (3c). По адресу 140 начинается таблица объектов (опять имеет один вход): занимаемый объем памяти (1000), с какого адреса начинается (1000), сколько места занимает в файле (200) и по какому смещению в нем находится (200). И последний адрес заголовка — 15c. В нем хранятся флаги (секция кодовая, имеет разрешения на чтение, запись и исполнение).

После формирования заголовка формируются данные программы — в диапазоне адресов от 1010 до 1070. Сначала записывается заголовок сообщения и его текст (адреса 1010 и 1020), потом названия библиотек, из которых будут взяты функции MessageBox (выводит наше окно) и ExitProcess (завершает программу) (адрес 1040 — USER32.DLL, а адрес 1050 — KERNEL32.DLL). И наконец, сами названия функций (адрес 1060 — MessageBoxA и адрес 1070 — ExitProcess), которые пишутся с учетом регистра.


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

Книги похожие на "Недокументированные и малоизвестные возможности Windows XP" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Роман Клименко

Роман Клименко - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

Отзывы читателей о книге "Недокументированные и малоизвестные возможности Windows XP", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.