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

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


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

Исследование SP Shell Icons 1.28

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

Очень удобно, когда все крэкерские инструменты, книги и статьи в одном месте. Используйте сборник от EXELAB - вот тут.

Автор: FEUERRADER <feuerrader@nm.ru>

Исследование SP Shell Icons 1.28

Программа: SP Shell Icons 1.28 Размер: 199680 байт Язык: Borland Delphi 4.0 - 5.0 Защита: Регистрационный номер Цель: взлом Инструменты: ASPackDie 1.41, Win32Dasm 9.0 (!)

Описание: прога для замены стандартных иконок в Windows на более красивые, которые предлагает прога. Пакеты с иконками можно качать с их сайта (www.drand.ru). При установке иконок прога просит какой-то ключ, который можно бесплатно получить с сайта автора. Корректность ключа проверяется "на лету" и в статусбар при правильном ключе пишется: "Your Key Passed!"

Исследование: начнем с того, что упаковано всё ASPack 1.1c (как показывает PeID). Берем ASPackDie 1.41 by Y0da; без труда распаковываем... Теперь суем в Win32Dasm 9.0. Почему 9.0, да потому что в этой версии поддерживается кириллица, хотя много и ненужных срок в SDR! Кстати, для чистоты эксперимента я получил код с ихнего сайта, он оказался такой:
"мой@имэйл.ру|711411640801501790901460211801901501" (сходите к ним на сайт и получите свой номер, а таскать чужой не хорошо!). Т.е проверяется имя до знака "|" и цифры. Вернемся к Win32Dasm. Итак, ищем строку "You agree with license agreement?". С этой мессаги начинается установка иконок. Ты жмешь в проге "Да" и дальше он просит номер, если ввел верный номер, после нажатия на ту же кнопку "Install" прога нормально функционирует. Похоже нам придется просто найти пару джампов и пропатчить их... Итак, мы видим в окне:

 * Possible StringData Ref from Code Obj ->"You agree with license agreement?"
                                   |
 :00466366 B83C6C4600              mov eax, 00466C3C
 :0046636B E87C94FEFF              call 0044F7EC     <--выдает противную мессагу
 :00466370 83F807                  cmp eax, 00000007
 :00466373 7505                    jne 0046637A      <-если жмем "YES"--\
 :00466375 E8224AFAFF              call 0040AD9C                        |
                                                                        |
 * Referenced by a (U)nconditional or (C)onditional Jump at Address:    |
 |:00466373(C)                                                          |
 |                                                                      |
 :0046637A 33D2                    xor edx, edx     <------------------/
 :0046637C 8B861C030000            mov eax, dword ptr [esi+0000031C]
 :00466382 E8495FFCFF              call 0042C2D0
 :00466387 33D2                    xor edx, edx
 :00466389 8B8620030000            mov eax, dword ptr [esi+00000320]
 :0046638F E83C5FFCFF              call 0042C2D0
 :00466394 A1688F4600              mov eax, dword ptr [00468F68]
 :00466399 8B00                    mov eax, dword ptr [eax]
 :0046639B E80840FEFF              call 0044A3A8
 :004663A0 8D55FC                  lea edx, dword ptr [ebp-04]
 :004663A3 8B861C030000            mov eax, dword ptr [esi+0000031C]
 :004663A9 E80A60FCFF              call 0042C3B8
 :004663AE 8B55FC                  mov edx, dword ptr [ebp-04]
 :004663B1 B8686C4600              mov eax, 00466C68
 :004663B6 E879DBF9FF              call 00403F34
 :004663BB 85C0                    test eax, eax <--джамп на проверку
 :004663BD 0F8E85000000            jle 00466448  <--кода в переменной
 :004663C3 8D55F8                  lea edx, dword ptr [ebp-08]
 :004663C6 8B861C030000            mov eax, dword ptr [esi+0000031C]
 :004663CC E8E75FFCFF              call 0042C3B8
 :004663D1 8B45F8                  mov eax, dword ptr [ebp-08]
 :004663D4 E80342FFFF              call 0045A5DC
 :004663D9 84C0                    test al, al   <--опять похожая проверка
 :004663DB 0F854B010000            jne 0046652C
 :004663E1 8D45F4                  lea eax, dword ptr [ebp-0C]
 :004663E4 E813C8FEFF              call 00452BFC
 :004663E9 8B45F4                  mov eax, dword ptr [ebp-0C]
 

Идем по переходу 0046652c.

 * Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
 |:004663DB(C), :00466443(U)
 |
 :0046652C 833D30A9460000          cmp dword ptr [0046A930], 00000000
 :00466533 0F87DA000000            ja 00466613
 :00466539 8D45E0                  lea eax, dword ptr [ebp-20]
 :0046653C E8BBC6FEFF              call 00452BFC
 :00466541 8B45E0                  mov eax, dword ptr [ebp-20]
 
 * Possible StringData Ref from Code Obj ->"Русский"
                                   |
 :00466544 BA746C4600              mov edx, 00466C74
 :00466549 E80AD8F9FF              call 00403D58
 :0046654E 7562                    jne 004665B2
 :00466550 6A00                    push 00000000
 :00466552 668B0D606F4600          mov cx, word ptr [00466F60]
 :00466559 B201                    mov dl, 01
 
 * Possible StringData Ref from Code Obj ->"Вы забыли подключить к программе "
                                         ->"пакет с иконками! Если в архиве "
                                         ->"не было файла с расширением ssp, "
                                         ->"его можно скачать с сайта. Если "
                                         ->"он уже есть у Вас - нажмите кнопку "
                                         ->""OK", чтобы его подключить."

Т.е. далее идет код, не относящийся к регистрации. Получается, надо заNOPить переход 004663BD и исправить на безусловный переход 004663DB. А также уберем противное сообщение о соглашении. ЗаНОПим call по адресу 0046636B и правим переход на безусловный в 00466373. Ну всё, работает вроде всё отлично, тутор окончен, до свидания.............

Но НЕТ! Щелкаем на кнопку "Free Bug Report" и прога опять требует код!!! Опять ищем в WinDasm строчку "Before enter your key (correct)". Пару страниц вверх видим:

 * Possible StringData Ref from Code Obj ->"Your Key"
                                   |
 :00463D98 BA3C444600              mov edx, 0046443C
 :00463D9D E8B6FFF9FF              call 00403D58
 :00463DA2 7439                    je 00463DDD      <--джамп на ошибку
 
 * Referenced by a (U)nconditional or (C)onditional Jump at Address:
 |:00463D2B(C)
 |
 :00463DA4 8D55F0                  lea edx, dword ptr [ebp-10]
 :00463DA7 8B831C030000            mov eax, dword ptr [ebx+0000031C]
 :00463DAD E80686FCFF              call 0042C3B8
 :00463DB2 8B55F0                  mov edx, dword ptr [ebp-10]
 :00463DB5 B850444600              mov eax, 00464450
 :00463DBA E87501FAFF              call 00403F34
 :00463DBF 85C0                    test eax, eax
 :00463DC1 7E1A                    jle 00463DDD      <-- на ту же ошибку
 :00463DC3 8D55EC                  lea edx, dword ptr [ebp-14]
 :00463DC6 8B831C030000            mov eax, dword ptr [ebx+0000031C]
 :00463DCC E8E785FCFF              call 0042C3B8
 :00463DD1 8B45EC                  mov eax, dword ptr [ebp-14]
 :00463DD4 E80368FFFF              call 0045A5DC
 :00463DD9 84C0                    test al, al
 :00463DDB 7555                    jne 00463E32  <--на нормальный код

Отлично! NOPим джампы по 00463DA2, 00463DC1. А по адресу 00463DDB исправляем джамп на безусловный. Вот и все. Прога ничего не просит и нормально банчит.

А теперь, как говорит Vallkor "для самых ленивых, кряк":

 Difference(s) between unpacked.exe & unp_cracked.exe
 unp_cracked.EXE
 ==============резать=тут==================
 00063DA2: 74 90
 00063DA3: 39 90
 00063DC1: 7E 90
 00063DC2: 1A 90
 00063DDB: 75 EB
 0006636B: E8 90
 0006636C: 7C 90
 0006636D: 94 90
 0006636E: FE 90
 0006636F: FF 90
 00066373: 75 EB
 000663BD: 0F 90
 000663BE: 8E 90
 000663BF: 85 90
 000663C0: 00 90
 000663C1: 00 90
 000663C2: 00 90
 000663DB: 0F E9
 000663DC: 85 4C
 000663DD: 4B 01
 000663DE: 01 00
 000663E0: 00 90
 ==============резать=тут==================

Спасибо за интерес к этой статье!



Все права защищены ©  2003 



Обсуждение статьи: Исследование SP Shell Icons 1.28 >>>


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



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


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