Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

TabMail v2.2 или не стоит отчаиваться.

Обсудить статью на форуме

Очень удобно, когда все крэкерские инструменты, книги и статьи в одном месте. Используйте сборник от EXELAB - вот тут.
Автор: Fess Дата: 4.06.2002 Тьютор: 11

-+-+-+-+-+-+-+-+-+-+ For education uses only +-+-+-+-+-+-+-+-+-+-
 Target: TabMail v2.2 (Build 15.12)
 
 Tools:    Some brains
           Soft-Ice 3.24
           Win32Dasm 8.93
           PEIdentifier 0.7
           Упаковщик UPX
           Любой hex+asm-редактор (я использую QView)
 
Пролог
Вступление: Делать было нечего и я решил, что-нибудь поломать. Полез по дискам с шароварой и на диске Hard&Soft'a не помню, какой номер. Чуть-чуть ее по- ковыряв, я понял, что программа проста для взлома. Хотя, кой-какие момен- ты есть. Что за прога: Какой-то почтовый клиент, ничего об этой программе сказать не могу, поскольку нужна она мне была только для одного. Для чего вы надеюсь поня- ли... Примечание: Если вы уже кульный крэкер, то можете не читать эту статью, дабы ваша клавиатура не приняла остатки вашего плотного ужина.
Вступление
Программа будет взломана двумя способами: 1) Подсмотр кода 2) Написание кейгена на основе самой программы Можно было бы написать еще и про патч, но это будет вам домашним за- данием, так сказать.
1) Подсмотр кода
Первое, что надо сделать это посмотреть запакована ли программа. Если Да, то чем для этого я использую программу PEIdentifier. Запускаем и видим UPX 0.89.6 - 1.02 / 1.05 - 1.20 -> Markus & Lazlo. Ага, UPX это хорошо, он очень хорошо распаковывается самим UPX'ом. Если его запустить с ключем -d. Распаковываем и суем его в Win32Dasm, который выдает нужный код, но зайдя в секцию строк мы не видим нишиша. Наверно, программа сбацана на Delphi, если засунуть в PeId уже распакованную программу, мы поймем, что так оно и есть. Ну что ж, будем опираться только на себя, да на SoftIce. Запускаем про- гу и ищем, где бы нам ввести код. Сразу после запуска мы видим великолеп- ный nag-screen с кнопкой Register. Жмем ее и видим форму, где и вводим, например, такую фигню Name: FessCool Code: 110022334455. Запускаем и видим сообщение, об ошибочности наших действий, с рульной иконкой. Хе-хе-хе, зря, товарисчи, вы так делаете, зря. С давних времен известно, что делфи не ис- пользует мессагубоха, а вот LoadIconA использует вполне. Ставим бряк на это и о кул, при повторной попытке мы вываливаемся в прогу. Место, где мы выва- лились не очень понятно, но дадим такую команду s 0 l -1 "110022334455". У меня строка нашлась на 11E7F48. Удаляем не нужный теперь бряк bc*. И ставим бряк на bpmb 11E7F48 rw. Еще раз запускаем процедуру регистрации, вывалива- емся нажимаем несколько раз F12, пока не вываливаемся в таком месте. :0047A343 8B45FC mov eax, dword ptr [ebp-04] :0047A346 50 push eax :0047A347 8D55F0 lea edx, dword ptr [ebp-10] :0047A34A 8B83F0010000 mov eax, dword ptr [ebx+000001F0] :0047A350 E843BCFEFF call 00465F98 :0047A355 8B55F0 mov edx, dword ptr [ebp-10] :0047A358 8D45F4 lea eax, dword ptr [ebp-0C] :0047A35B E8DC99F8FF call 00403D3C :0047A360 8B45F4 mov eax, dword ptr [ebp-0C] <- В eax имя :0047A363 5A pop edx <- в edx код :0047A364 E873FFFFFF call 0047A2DC <- Процедура проверки :0047A369 84C0 test al, al :0047A36B 7413 je 0047A380 Видно, что выделенная процедура, это скорее всего процедура проверки ко- да, и test al,al это проверка все Ок, или Нет. Заходим в процедуру, нажимая кнопку F8. И видим следующий код :0047A2E4 E88B9AF8FF call 00403D74 :0047A2E9 83F808 cmp eax, 00000008 :0047A2EC 7E15 jle 0047A303 :0047A2EE 8B158CE04B00 mov edx, dword ptr [004BE08C] :0047A2F4 8B12 mov edx, dword ptr [edx] :0047A2F6 8BCE mov ecx, esi :0047A2F8 8BC3 mov eax, ebx :0047A2FA E891FCFFFF call 00479F90 :0047A2FF 84C0 test al, al :0047A301 7505 jne 0047A308 Мы видим, что это сравнение на длинну имени. Странно нигде об этом не предупреждалось?!!! Ну да ладно вводим такое имя: FessCool2002. И начинаем заново трассировать, проходим проверку и заходим в процедуру call 00479F90. И трассируем до тех пор, пока не увидим следующий код... :0047A018 8B55F4 mov edx, dword ptr [ebp-0C] :0047A01B 8B45FC mov eax, dword ptr [ebp-04] :0047A01E E851EAFFFF call 00478A74 :0047A023 8BD8 mov ebx, eax :0047A025 33C0 xor eax, eax Здесь по адресу edx можно посмотреть настоящий код. Как я это угадал? Все просто, как в детстве, тут просто нужно упорство. Я трассировал и смотрел на изменяющиеся регистры, пока не нашел этот. На имя FessCool2002 это код 664d8cad-751e7eb5-86cb2621-00f3541f.
2) Написание кейгена на основе самой программы
Так код мы подсмотрели, теперь осталось написать кейген, это не просто, а очень просто. Делать это будем используя MessageBoxA, как я обычно и де- лаю. Ищем любой вызов процедуры MessageBoxA в листинге Win32Dasm. Вот первый :00426272 50 push eax :00426273 57 push edi :00426274 56 push esi :00426275 8B4324 mov eax, dword ptr [ebx+24] :00426278 50 push eax * Reference To: user32.MessageBoxA, Ord:0000h | :00426279 E82E03FEFF Call 004065AC Так процедура вызывается из 4065AC посмотрим, что там * Reference To: user32.MessageBoxA, Ord:0000h | :004065AC FF253C164C00 Jmp dword ptr [004C163C] Хорошо. Теперь попробуем найти по коду эту строку в самом файле, т.е. ищем FF253C164C00, одна единственная и нашлась по адресу 59AC. Теперь ос- талось начиная со строки 47A01B написать вызов, функции MessageBoxA. Дела- ем это так, заходим в QView и ищем строку hex-кода E851EAFFFF8BD8. У меня она обнаружилась на 7941B теперь начиная с этого адреса вписываем такие строки (через тире представлены их hex представление) push 0 - 6A00 push edx - 52 push edx - 52 push 0 - 6A00 call 59AC - E886C5F8FF nop - 90 Теперь запускаем программу, вписываем свое имя и в МессагаБоксе видим нужный код. Вот это кул. Но теперь, если вы попробуете еще раз зарегиться на другое имя, то вам придется удалить параметр RegUserName из ключа ре- естра HKCU\SOFTWARE\DLG\TabMail, там же в параметре RegCode, можно видеть, введенный вами код, но это код который вы ввели просто так, а не настоящий так, что вот еще один метод, так сказать нахождение ключа и патч в одном флаконе.
Послесловие
Вот и закончена работа потирая руки вы регистрируете программу на себя. Винище льется рекой вы празднуете халявно заработанные 19$. Хочу надеяться, что эта статья Вас чему-либо научила и помогла в осво- ении этой нелегкой науки. Крэкеры, крякеры и кракерята, сказать практически нечего разве, что только не ругайте сильно разработчиков за такую корявую защиту. Разработчики, если хотите, чтобы за Вашу программу платили Вам, а не пиратам защищайте сильнее, а то эта защита никуда не годна, ее слома- ет даже начинающий. Автор: Fess

Все ругательства отправлять в null
Все остальное на lomovskih@yandex.ru

Спасибо за интерес к моему творчеству!
Удачи в Reversing Engeneering!
P.S. Запомните все материалы публикуются только в учебных целях и автор за их использование ответственности не несет!!
P.P.S. Возможно имеют место опечатки, заранее извините!


With best wishes Fess

И да пребудет с вами великий дух bad-сектора.



Обсуждение статьи: TabMail v2.2 или не стоит отчаиваться. >>>


Материалы находятся на сайте https://exelab.ru



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS