Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Михаил_Флёнов_Компьютер_глазами_хакера.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
6.23 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

i

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

o

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

r

 

32P

 

 

 

 

 

 

 

 

 

 

 

Глава 2

 

 

 

 

to

BUY

NOW!

 

 

 

 

 

 

 

to

BUY

NOW!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

wграммы, в которых все визуально созданные диалоговые окна хранятся в ресурсах в

w Click

 

 

 

 

 

o

m

w Click

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

e

 

 

 

p

 

 

 

 

 

e

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

g

 

 

 

 

стандартномdf n

виде. Borland Delphi использует для этих целей собственный форматdf n ,

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

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

Самыми распространенными языками программирования для платформы Windows на данный момент являются C++ и C#, а значит уникальный ресурс файлов Borland Delphi можно проигнорировать.

2.2. Программа Restorator

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

Мне больше других нравится утилита Restorator, которую можно скачать на сайте http://www.bome.com/Restorator/. Она позволяет редактировать запускаемые файлы и обладает гораздо большими возможностями, чем другие программы, которые я видел. Именно ее мы и будем рассматривать.

Прежде чем продолжить чтение, я советую установить эту программу на свой компьютер, чтобы она была под рукой, и вы в любой момент могли проверить описываемые действия. Так лучше всего будет запоминаться описываемый здесь материал. Данная книга не является файлом помощи по программе, поэтому мы рассмотрим только основы, которые касаются взлома программ и придания им симпатичного вида.

Итак, на рис. 2.1 представлено главное окно программы Restorator 2007. Что мне нравится в ней, так это стабильность. В первом издании книги была описана версия 2004, и ее главное окно практически не отличается от 2007-й версии. Основное окно программы разбито на три части:

Resource Tree — панель для отображения всех ресурсов открытого файла по категориям в виде дерева;

Resource View — вкладка для просмотра выделенного ресурса;

File Browser — вкладка с браузером (в стиле программы Проводник), в котором можно обозревать содержимое компьютера. Это очень удобно для открытия ресурсов.

Давайте откроем какую-нибудь программу и на ее примере увидим, как можно изменять ресурсы. Для примера я взял программу dialer.exe, которая устанавливается вместе с Windows. Если у вас ОС установлена на диске C:, то путь к файлу будет C:\Windows. В Windows XP SP2 эта программа изменилась, находится в другом месте и выглядит по-новому. Нам же нужен сам факт примера редактирования, а какая программа — не имеет значения, поэтому я оставил в качестве примера звонилку из первой версии XP (она же была и в Windows 9x/NT/2000).

Выберите в программе Restorator меню File | Open (Файл | Открыть). Перед вами появится стандартный диалог открытия файла. Найдите файл dialer.exe. Программа

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

i

 

мир Windows

ВнутреннийP

D

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

BUY

 

 

 

w

Click

to

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

P

 

 

 

 

 

 

 

 

i

 

D

 

 

 

 

 

 

33

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

BUY

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис. 2.1. Главное окно программы Restorator

Рис. 2.2. Окно программы Restorator с открытым файлом

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

i

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

o

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

r

 

34P

 

 

 

 

 

 

 

 

 

 

 

Глава 2

 

 

 

 

to

BUY

NOW!

 

 

 

 

 

 

to

BUY

NOW!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

wзагрузит названия его ресурсов в панель Resource Tree. Чтобы раскрыть все дерево

w Click

 

 

 

 

 

 

o

m

w Click

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

e

 

 

 

p

 

 

 

 

 

e

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

g

 

 

 

 

ресурсов, выделите название файла (оно должно быть в корне дерева) и нажмите

 

 

 

df

 

 

n

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

знак умножения (*) в дополнительной секции клавиатуры. Результат этих действий показан на рис. 2.2.

Я специально выбрал программу, в которой присутствуют практически все типы ресурсов, и сейчас нам предстоит рассмотреть, как их можно редактировать.

2.2.1. Редактирование меню

На рис. 2.2 в дереве ресурсов в разделе Menu вы увидите только один пункт под номером 118. Выделите его, и на вкладке Resource Viewer появится исходное меню, для редактирования которого нужно выбрать в главном меню опцию Viewer | Edit Mode, это заставит отображать ресурс в виде команд. Кроме того, появится окно для просмотра изменений (рис. 2.3).

Рис. 2.3. Редактирование меню

В листинге 2.1 приведен полный код (исключены только комментарии) меню программы Dialer в командах ресурсов. Этот код достаточно прост для понимания, и сейчас мы его рассмотрим.

Листинг 2.1. Исходный код меню

118 MENU

{

POPUP "&File"

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

i

 

мир Windows

ВнутреннийP

D

 

 

 

 

 

 

 

r

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

BUY

 

 

 

{

 

to

 

 

 

 

 

 

 

 

 

 

 

 

m

 

w Click

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

"E&xit", 1000

. MENUITEM.

w

 

 

 

 

 

 

 

o

 

 

p

 

 

 

 

g

c

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

}

POPUP "&Edit"

{

MENUITEM "Cu&t\tCtrl+X", 1001

MENUITEM "&Copy\tCtrl+C", 1002

MENUITEM "&Paste\tCtrl+V", 1003

MENUITEM "&Delete\tDel", 1004 MENUITEM SEPARATOR

MENUITEM "&Speed Dial...", 1005

}

POPUP "&Tools"

{

MENUITEM "&Connect Using...", 1006 MENUITEM "&Dialing Properties...", 1008

}

POPUP "&Help"

{

MENUITEM "&Help Topics", 1010

MENUITEM "&What's This?", 1015 MENUITEM SEPARATOR

MENUITEM "&About Phone Dialer", 1011

}

}

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

P

 

 

 

 

 

 

 

 

i

 

D

 

 

 

 

 

 

35

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Прежде чем рассматривать код из листинга 2.1, познакомимся с комментариями. Это произвольный текст, который никак не влияет на ресурс, но позволяет добавлять какие-либо собственные описания или примечания. Когда компилятор ресурса встречает двойной слеш (//), весь последующий текст в этой строке воспринимается в качестве комментария. Итак, я буду вставлять пояснения к рассматриваемому коду, а вы можете использовать комментарии для того, чтобы помечать места, в которых производили изменения.

Меню начинается с номера, который определяет имя ресурса (в данном случае 118). После этого следует ключевое слово MENU. Начало и конец меню обозначаются фигурными скобками {}:

118 MENU

{

// Здесь идет описание меню

}

Если у вас есть опыт программирования на языках С/С++, то для вас такая структура будет знакома.

Между фигурными скобками, ограничивающими меню, располагаются выпадающие меню и их элементы. Описание выпадающего меню начинается с ключевого слова POPUP, после чего в двойных кавычках идет имя, которое вы хотите увидеть в

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

C

 

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

i

 

 

F

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

o

P

D

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

r

 

36P

 

 

 

 

 

 

 

 

 

 

Глава 2

 

 

 

 

to

BUY

NOW!

 

 

 

 

 

 

to

BUY

NOW!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

&

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

wсамом меню. При создании имени перед любой буквой можно поставить знак .

w Click

 

 

 

 

 

o

m

w Click

 

 

 

 

 

 

o

m

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

e

 

 

 

p

 

 

 

 

 

e

-

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

g

 

 

Следующийdf n

за этим знаком символ будет ключевым для меню, и если нажатьdf

клаn

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

вишу <Alt> вместе с ним, то будет вызвано это меню, а при отображении данная буква в названии будет подчеркнута.

Таким образом, выпадающее меню File будет иметь такую структуру:

POPUP "&File"

{

}

После описания выпадающего меню снова идут фигурные скобки, внутри которых можно создавать вложенные элементы:

MENUITEM "Имя", Код

При написании имени работают те же правила, что и для выпадающего меню, т. е. можно использовать знак &. Помимо этого, после знаков \t можно добавлять "горячие" клавиши. Например, сочетанию клавиш <Ctrl>+<X> соответствует "Ctrl+X".

Код — это идентификатор (число), по которому программа определяет меню и реагирует на него. Таким образом, с помощью редактора ресурсов можно изменять имена, и программа будет работать корректно. Но если поменять код, то работа программы в данном месте будет нарушена.

Допустим, что вы хотите откорректировать следующие пункты меню:

MENUITEM "Cu&t\tCtrl+X", 1001

MENUITEM "&Copy\tCtrl+C", 1002

MENUITEM "&Paste\tCtrl+V", 1003

С помощью редактора ресурсов попробуйте изменить идентификаторы, просто поменяв их местами:

MENUITEM "Cu&t\tCtrl+X", 1002

MENUITEM "&Copy\tCtrl+C", 1003

MENUITEM "&Paste\tCtrl+V", 1001

Теперь при попытке вырезать выделенную часть текста (команда Cut) будет происходить копирование данных в буфер обмена, при копировании (Copy) — вставка, а при вставке (Paste) программа вырежет данные и поместит в буфер. Но это уже из серии шуток. А это отдельная история, о которой мы будем говорить на протяжении всей главы 3.

Итак, номера можно только менять местами. Выдумывать что-то свое бесполезно, потому что такой пункт меню работать просто не будет.

Для создания полосы разделителя между меню нужно написать:

MENUITEM SEPARATOR

После внесения изменений в код меню их можно просмотреть в окне предварительного просмотра, которое появилось во время перехода в режим редактирования. Но чтобы отобразить изменения меню в этом окне, нужно обновить информацию. Для этого нажмите клавишу <F5>.

Теперь вы без проблем сможете создавать собственные меню любой сложности.