ShopWorld
Вернуться ShopWorld > Статьи и обсуждение > Избранное
 

Ответ
 
Опции темы Опции просмотра
 
Старый 01.08.2012, 15:59   #1
-NegaTiV-
Проверяющий
 
Аватар для -NegaTiV-
 
Регистрация: 14.03.2012
Адрес: 666
Сообщений: 637

Сказали спасибо: 200

3223222

Star [VB6] Взлом программы Архив Документов


Доброго вам здравия) Если вы читаете эту статью, значит у вас опять чешутся руки, и вам опять хочется чего-то поломать! :) Как и мне, в общем. ;)



Пациент у меня сегодня не как обычно "на дельфе". Он у меня "на Бацике") Чего я за него взялся? Сам не знаю) Просто набраться опыта...

Итак, инструментарий:
[Ссылки могут видеть только зарегистрированные пользователи. ] (поможет нам найти начало некоторых процедур);
[Ссылки могут видеть только зарегистрированные пользователи. ] (я использую вторую ветку);
[Ссылки могут видеть только зарегистрированные пользователи. ])

Готовы? Поехали...

ЧАСТЬ I: АНАЛИЗ, НАХОЖДЕНИЕ ДАННЫХ

Давайте запустим прогу, посмотрим, что мы имеем (и в прямом, и в переносном...) :)
Видим сплэш, который нам говорит: "версия: 2.28 демо". Ну что ж, грузимся дальше. Видим, что главное окно программы утверждает - это демо.
Переубедим? А как же))

Закрываем прогу. Открываем VB Decompiler, жмякаем File->Open Program. Ждем окончания анализа. Готово.

Теперь нужно найти сплэш-скрин. Обычно они так и называются: frmSplash, SplashScreen, и т.д. Ищем в ветке Code раздел frmSplash, а в нем единственную процедуру - открытие этой формы (FromOpen_***).


Клацаем туда.... О ужас! Я, как бы знаком с VB но меня всегда от него воротило) Вот и сейчас... Главное, что нам тут нужно узреть - это адрес начала процедуры, ну или ее основного кода. В моем случае это - 00838CA0. Запомните его. На этом первая часть закончена. Приступим собственно ко взлому.





ЧАСТЬ II: Модификация кода

Грузим Olly Debugger. Рекомендую перед тем, как втыкать в него нашу программу, поставить в каждом окне шрифт с поддержкой UNICODE. Делается это так:
[CUT="Большие скрины (развернуть)"]

желтыми пятнами я указал места, где нужно тыкнуть мышкой (ну или рядом где-нибудь).
[/CUT]

Теперь дальше...
Грузим прогу. Жмем ПКМ->Goto->Expression..., вводим ранее записанный адрес: 00838CA0, переходим, и ставим сюда бряк (F2).

Запускаем программу (F9).
Вываливаемся на том месте где начинается загрузка сплэша. Теперь начинается самое муторное. Потихоньку жать кнопку F8 (пошаговое исполнение команд без захода в процедуры) до тех пор, пока не увидим, что в регистре EAX будет надпись "версия 2.28 (демо)":


Так, значит место конкатенации (склеивания строк), где происходит дописывание "(демо)" мы немного пропустили. Как его найти? Совсем не тяжело. Крутим листинг (дизассемблированный код) программы ВВЕРХ до тех пор, пока не наткнемся на ближайший условный переход (в нашем случае JNE):


Нам нужно сделать так, чтобы программа перепрыгивала место где клеится надпись о демке в любом случае. Значит сделаем этот переход безусловным (JMP). Запоминаем адрес этой команды, а лучше ставим на нее бряк (брейкпоинт - кнопка F2), и перезапускаем программу в Olly Debugger. Жмем однократно кнопку F9 (запустить) столько раз, чтобы остановится на нашем переходе.

Жмем по нему двойным щелчком, либо клавишей Пробел. Меняем команду с:
Код:
jne     008394D2
на
Код:
jmp     008394D2
Пускаем программу дальше кнопкой F9...

Хо-хо)) Надпись Демо исчезла, но теперь программа ругается на то, что она Закончилась. :(

Читаем информацию в справке пользователя (файл Help.chm):


Так, значит 30. В шестнадцатеричной системе счисления это будет 1E. В Olly Debugger есть такая классная штука, как поиск констант. Давайте найдем эту цифру.

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



Жмем Search for->Constant..., вводим сюда 1E и... (ВНИМАНИЕ) Если не хотите долго рыться во всем коде в поисках данного сравнения, заметим, что уведомление, что мы закончились, появилось после предыдущего прыжка, который мы исправили. Значит для удобства и быстрейшего поиска, вписываем в основное поле число 1E, и ставим галочку Forward. Жмем ОК. Теперь, нажимая каждый раз клавиши Ctrl+L, ищем команду, похожую на ту, что я предположил.

Делал я это долго, но все же нашел. Адрес команды: 9F9287. Но лучше поищите сами - лучше поймете, что такое крякинг!)) ;)

Ставим сюда бряк. Оп-па - остановились. Так, что делать дальше. Вариантов много. Я выбрал такой: исправить сравнение так, чтобы оно выполнялось всегда:
Код:
cmp     dword ptr ss:[ebp-6C8], 1E
jg      short 009F92CD
на
Код:
cmp     dword ptr ss:[ebp-6C8], -1E
je      short 009F92CD


Пробуем запустить дальше... И, Алле-оп, вуаля) :yahoo:

Программа зарегистрирована, и демо-ограничения сняты! Теперь сохраним наши творения: на всех местах, где мы меняли код, делаем ПКМ->Edit->Copy to executable. Теперь в этом окошке, с модификациями жмем ПКМ->Save file... (в диалоговом окне жмем Да), сохраняем файл под другим именем.

Готово! Всем спасибо, что дочитали до конца)

Автор статьи:
Владимир Мефисто

P.S. Писал я как можно подробнее. Если что-то не уловили - спрашивайте!
Если все поняли - отпишитесь обязательно! Спасибо.
__________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
-NegaTiV- вне форума  
Сказали 'Спасибо' за это сообщение.
Ответить с цитированием
Внимание посетители ShopWorld.biz
                                       У нас проводится Набор модераторов.
                                       Правила раздела: Покупка / Продажа / Обмен / Услуги
                                       Проверка ваших тем администрацией.(Раздел "Торговля")
                                       Пожелания по работе форума и Реклама на форуме.
                                       Советуем заглянуть вам в раздел Торговля и Статьи и обсуждение или World navigation
                                       Для связи с администрацией пишите в icq: 6506666 или в ЛС.
                                       Администрация не несет ответственности за причиненный вред пользователям и от других пользователей(пользуйтесь гарантом),
                                       Все материалы размещенные на сайте предоставленны в ознакомительных целях.
                                       Ап темы в разделе Покупка / Продажа / Обмен / Услуги раз в 5 дней, как апать тему читаем тут.
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание заставки при старте программы?легко! -NegaTiV- С/С++, C#, Delphi, .NET, Asm ... 2 06.10.2014 16:23
Пишем программы на заказ specforce Soft на заказ 0 23.02.2012 23:26
Itunes удаляет программы. .prov1rus Книги для iPad 0 24.10.2011 21:54
Как установить программы на iPad. †SHYLLER†™ iPad инструкции 0 03.10.2011 19:15
Как скачивать игры и программы через наш сайт? †SHYLLER†™ iPad инструкции 0 27.09.2011 19:28


Текущее время: 07:01. Часовой пояс GMT +5.

Автор ShopWorld: †SHYLLER†
Яндекс.Метрика