Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #66, МАЙ 2006 г.

имплантанты пышных формы

GPCH (ADMIN@VB-DECOMPILER.ORG)

Спецвыпуск: Хакер, номер #066, стр. 066-040-5


Begin VB.Form AC_ExDec_03_B 'Offset: 000010FA

Caption = "Crackme for JosephCo's ExDec Program..."

BackColor = &H80000008&

ScaleMode = 1

WhatsThisButton = 0 'False

Icon = "AC_ExDec_03_B.frx":0

LinkTopic = "Form1"

ClientLeft = 60

ClientTop = 345

ClientWidth = 5580

ClientHeight = 3075

StartUpPosition = 3 'Windows Default

Begin VB.Frame Frame1 'Offset: 000015A6

Caption = "Button is in here"

BackColor = &H0&

ForeColor = &HFFFFFF&

Left = 120

Top = 1440

Width = 5295

Height = 1335

TabIndex = 1

BeginProperty Font

Name = "Century Gothic"

Size = 14,25

Charset = 0

Weight = 700

Underline = 0 'False

Italic = 0 'False

Strikethrough = 0 'False

EndProperty

... и так далее

Теперь предлагаю на конкретном примере разблокировать залоченное меню и показать невидимую кнопку.

Будем учиться [разлочивать меню]. Специально для демонстрации я написал простенький CrackMe.

В нем заблокирован пункт меню «Сохранить», как часто устраивают в коммерческих программах. Попробуем разблокировать. Какие же способы есть для того, чтобы сделать меню неактивным? Существует всего два пути. Первый — при проектировании поставить свойство Enabled в False меню. Второй — установить это свойство кодом при запуске формы. Предположим, кодер поленился и установил это свойство при разработке меню. Мы же декомпилируем этот проект и посмотрим, что получилось. Для простоты не будем заново декомпилить в уме, а возьмем мой декомпилятор (Lite-версия вполне подойдет) и пустим его в дело. В разделе «Формы» находится всего одна форма. Поищем там меню (Листинг 2).

Begin VB.Menu mnuFile 'Offset: 000011B3

Caption = "Файл"

Begin VB.Menu mnuSave 'Offset: 000011CF

Caption = "Сохранить"

Enabled = 0 'False

End

Begin VB.Menu Separator 'Offset: 000011F0

Caption = "-"

End

Begin VB.Menu mnuExit 'Offset: 0000120B

Caption = "Выход"

End

End

Оп-па! «Enabled = 0» — то, что мы искали. Теперь подумаем, как поправить. Откроем программу в HIEW и перейдем по адресу 11F0 (рис. 3).

00 00 02 07-00 6D 6E 75-53 61 76 65-00 13 03 09 O• mnuSave !¦0

00 D1 EE F5-F0 E0 ED E8-F2 FC 00 05-00 FF 02 1A Сохранить ¦ яO>

Все стандартно. Сначала Name, затем Caption (03) и 05 — Enabled. Дальше идет один байт 00б, что означает False. Замени его на FF (True) и попробуй запустить. При нажатии на меню разблокировки выводится MessageBox "cool". Вот и все! Легкий взлом, правда?

Настало время научиться [отлавливать invisibles]. Несмотря на ICQ’шный стиль заголовка, мы не будем писать плагин определения invisible, только попытаемся сделать скрытые кнопки видимыми.

Для большего реализма я написал CrackMe, который делает кнопку «Сохранить» видимой через три секунды после запуска. Вот и посмотрим в декомпиляторе, что изменилось в поведении кнопки «Сохранить» (Листинг 3).

Begin VB.CommandButton cmdSave 'Offset: 00001175

Caption = "Сохранить"

Left = 1680

Top = 1800

Width = 1335

Height = 375

Visible = 0 'False

Назад на стр. 066-040-4  Содержание  Вперед на стр. 066-040-6