ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

делаем патч для всех версий Crystal Player Pro
  #1  
Старый 09.01.2007, 11:05
Аватар для ProTeuS
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию делаем патч для всех версий Crystal Player Pro

делаем патч для всех версий Crystal Player Pro

Попытаемся сделать универсальный пат4ер для всех версий Crystal Player Pro, которая нагло просит заругистрировать, 4то проявляется в показе длительного нага каждые 5 минут при просматривании фильмов поверх него самого. Это не радует. так 4то грузим жертву в ольку. распаковываем.

Код:
00775001 > 90               NOP
00775002   60               PUSHAD
00775003   E8 03000000      CALL Crystal.0077500B
00775008  -E9 EB045D45      JMP 45D454F8
0077500D   55               PUSH EBP
0077500E   C3               RETN
трейсим по F7 p заходом в подфункции до команды восстановления предыдущего состояния регистров.

Код:
007753B0   61               POPAD
007753B1   75 08            JNZ SHORT Crystal.007753BB
007753B3   B8 01000000      MOV EAX,1
007753B8   C2 0C00          RETN 0C
попадаем на OEP. можем дампить и без проблем восстанавливать импорт импреком.

Код:
004E3253     6A 60          PUSH 60
004E3255   . 68 08585300    PUSH Crystal.00535808
004E325A   . E8 F5EAFFFF    CALL Crystal.004E1D54
004E325F   . BF 94000000    MOV EDI,94
004E3264   . 8BC7           MOV EAX,EDI
004E3266   . E8 35EDFFFF    CALL Crystal.004E1FA0
004E326B   . 8965 E8        MOV DWORD PTR SS:[EBP-18],ESP
004E326E   . 8BF4           MOV ESI,ESP
004E3270   . 893E           MOV DWORD PTR DS:[ESI],EDI
004E3272   . 56             PUSH ESI                                 ; /pVersionInformation
004E3273   . FF15 2C124F00  CALL DWORD PTR DS:[4F122C]               ; \GetVersionExA
004E3279   . 8B4E 10        MOV ECX,DWORD PTR DS:[ESI+10]
004E327C   . 890D DC065B00  MOV DWORD PTR DS:[5B06DC],ECX
004E3282   . 8B46 04        MOV EAX,DWORD PTR DS:[ESI+4]
004E3285   . A3 E8065B00    MOV DWORD PTR DS:[5B06E8],EAX
004E328A   . 8B56 08        MOV EDX,DWORD PTR DS:[ESI+8]
004E328D   . 8915 EC065B00  MOV DWORD PTR DS:[5B06EC],EDX
004E3293   . 8B76 0C        MOV ESI,DWORD PTR DS:[ESI+C]
004E3296   . 81E6 FF7F0000  AND ESI,7FFF
004E329C   . 8935 E0065B00  MOV DWORD PTR DS:[5B06E0],ESI
004E32A2   . 83F9 02        CMP ECX,2
004E32A5   . 74 0C          JE SHORT Crystal.004E32B3
дамп пофиксен, рабо4ий файл создан, теперь можно искать функции регистрации. поскольку они более "интерфейсны" и реализуют лишь визуальное оповещение пользователя о вводе верного\неправильного регкода(4то я обнаружил в изу4ении прошлых релизов исследуемого продукта), то достато4но найти\править код, выводящий наг каждые 5мин и работаться жизни. Я в свое время нашел код проверки (немного поразмыслив, нужно искать вызовы функций CreateCompatibleDC, BitBlt, SelectObject, SetTimer и т.д., вызывающиеся в коде "рядом") - это .0041AB59 для последней 1.97 версий.
0041AB59 |. FF15 88104B00 CALL DWORD PTR DS:[<&gdi32.CreateCompati>; \CreateCompatibleDC
Для любого релиза найти его просто - поставив бряк на CreateCompatibleDC (бряков будет до 10) и
найдя нижележащий код около вызова:
Код:
0041AB06  |. 53             PUSH EBX                                 ; /hWnd
0041AB07  |. 895C24 44      MOV DWORD PTR SS:[ESP+44],EBX            ; |
0041AB0B  |. 895C24 48      MOV DWORD PTR SS:[ESP+48],EBX            ; |
0041AB0F  |. 895C24 4C      MOV DWORD PTR SS:[ESP+4C],EBX            ; |
0041AB13  |. 895C24 50      MOV DWORD PTR SS:[ESP+50],EBX            ; |
0041AB17  |. C74424 54 BC02>MOV DWORD PTR SS:[ESP+54],2BC            ; |
0041AB1F  |. 885C24 58      MOV BYTE PTR SS:[ESP+58],BL              ; |
0041AB23  |. 885C24 59      MOV BYTE PTR SS:[ESP+59],BL              ; |
0041AB27  |. 885C24 5A      MOV BYTE PTR SS:[ESP+5A],BL              ; |
0041AB2B  |. C64424 5B 01   MOV BYTE PTR SS:[ESP+5B],1               ; |
0041AB30  |. C64424 5C 03   MOV BYTE PTR SS:[ESP+5C],3               ; |
0041AB35  |. C64424 5D 02   MOV BYTE PTR SS:[ESP+5D],2               ; |
0041AB3A  |. C64424 5E 01   MOV BYTE PTR SS:[ESP+5E],1               ; |
0041AB3F  |. C64424 5F 22   MOV BYTE PTR SS:[ESP+5F],22              ; |
0041AB44  |. 895424 68      MOV DWORD PTR SS:[ESP+68],EDX            ; |
0041AB48  |. 894424 6C      MOV DWORD PTR SS:[ESP+6C],EAX            ; |
0041AB4C  |. 894C24 7C      MOV DWORD PTR SS:[ESP+7C],ECX            ; |
0041AB50  |. FF15 44134B00  CALL DWORD PTR DS:[<&user32.GetDC>]      ; \GetDC
Это и есть отрисовка нага. На пару десятков байт выше будет процедура проверки.

Код:
00476F3A  |. E8 3C67FFFF    CALL dumped_.0046D67B                    ; \dumped_.0046D67B
00476F3F  |. 84C0           TEST AL,AL
00476F41  |. 0F84 AD010000  JE dumped_.004770F4
00476F47  |. A1 98D15200    MOV EAX,DWORD PTR DS:[52D198]
00476F4C  |. 8945 B4        MOV DWORD PTR SS:[EBP-4C],EAX
00476F4F  |. A1 9CD15200    MOV EAX,DWORD PTR DS:[52D19C]
Нам достато4но подменить выдаваемые ей результаты на


0041AAD2 . FEC8 DEC AL
0041AAD4 . E9 06020000 JMP cracked.0041ACDF
0041AAD9 90 NOP

где JMP прыгает на команду вида

0041ACDF > 8B77 08 MOV ESI,DWORD PTR DS:[EDI+8]

за 10-40 байт перед самим RET из функции

Результирующая сигнатура для пат4а будет выглядеть как


E8 ?? ?? FF FF 84 c0 0F 84! ?? ?? 00 00

она в файле встре4ается только 1 раз, и 4тобы сделать универсальный пат4ер для любой версии проигрывателя в ка4естве домашнего задания (никогда не думал 4то такое скажу) нужно сделать простенький парсер для подс4ета зна4ения 9ого байта в сигнатуре (этот байта равен смещению команды MOV ESI, XXX относительно JE XXX)

E8 ?? ?? FF FF FE c8 E9 A2! ?? ?? 00 00

ЗЫ: на ошибки и смыслой брейнфак не обращаем внимания - писалось в своебразном состоянии сознания

ЗЫЫ: gl hff!

Последний раз редактировалось ProTeuS; 09.01.2007 в 11:20..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перепрошивка Bios видеокарт ~Fenix~ Чужие Статьи 4 05.03.2006 23:08
Сетевой сканер Nmap. Руководство пользователя foreva Чужие Статьи 1 08.02.2005 16:36
ОТЛИЧНАЯ СТАТЬЯ - "Как заметать следы" foreva Чужие Статьи 8 07.02.2005 12:44



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT.XYZ