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

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


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

Регистрация Kyodai Mahjongg 9.42

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

Массу крэкерских инструментов, видеоуроков и статей вы сможете найти на видеокурсе от нашего сайта. Подробнее здесь.
 
Данное описание не претендует на полнофункциональое учебное пособие по взлому программ или введение во взлом. Оно предпологает обмен опытом. Буду рад любым отзывам, предложениям... ведь это моё первое подобное описание.
Используемые инструменты: Numega Soft Ice 4.00, QView 2.90 Предварительные сведения: Результат регистрации она записывает в Kyodai.ini и каждый раз проверяет правильность регистрации... Необходимо еще на старте пограммы перехватить её проверку кода и сделать так, чтоб любой код воспринимался как правильный. В SoftIce ставим бряк на MessageBoxA: :bpx MessageBoxA ...запускаем Kyodai.exe, и попадаем в Функцию MessageBoxA жмем F12, потом еще 2 раза... Мы оказались по адресу CS:0047E06A. Если посмотреть внимательней то находящиеся выше комманды: :0047E02A 8B80E0050000 mov eax, dword ptr [eax+000005E0] :0047E030 BA04F44700 mov edx, 0047F404 ;Текстовая строка: "Make sure you read the help files and the menus !" :0047E035 E826A3FCFF call 00448360 :0047E03A FFB5B8FEFFFF push dword ptr [ebp+FFFFFEB8] :0047E040 8D8524FFFFFF lea eax, dword ptr [ebp+FFFFFF24] :0047E046 BA23000000 mov edx, 00000023 :0047E04B E8D45CF8FF call 00403D24 :0047E050 8B8524FFFFFF mov eax, dword ptr [ebp+FFFFFF24] :0047E056 E8CD5DF8FF call 00403E28 :0047E05B 8BD0 mov edx, eax :0047E05D A1CC894900 mov eax, dword ptr [004989CC] :0047E062 8B00 mov eax, dword ptr [eax] :0047E064 59 pop ecx :0047E065 E88E1FFBFF call 0042FFF8 ;Вызов MessageBoxA :0047E06A 8B45FC mov eax, dword ptr [ebp-04] собирают в кучу текст сообщения о прелестях регистрированной версии... Еще выше видим переход на адрес стоящий прямо после комманды Call, вызывающей MessageBox. :0047DD86 8B45FC mov eax, dword ptr [ebp-04] :0047DD89 E88635FFFF call 00471314 :0047DD8E 84C0 test al, al ;Сравнение AL с AL :0047DD90 0F85D4020000 jne 0047E06A ;Если AL не равен 0 то "мы зарегистрированы" :0047DD96 6A40 push 00000040 :0047DD98 8D8D28FFFFFF lea ecx, dword ptr [ebp+FFFFFF28] С первого взгляда кажется что если заменить условный переход на безусловный, то на этом все кончится... А что если регистрация проверяется еще где нибудь в программе. Лучше всего посмотреть содержимое функции стоящей над проверкой, потому что это она возвращает 0 или 1 в AL. Ставим bpx на вызов этой функции: :bpx cs:0047DD89 Перезапускаем программу... В всплывшем SoftIce входим в Call нажатием F8 Идут проверки на неправильность кода (надо запомнить адрес перехода на незарегистрированную ветку программы) потом проверки имени!!! если имя совпадет то судя повсему вам что-то сотрут :( Угроза звучит так: "We erase your hard disk only for evaluation purposes..." поэтому адрес 004715D3 надо запомнить как неправильный. но вот в конце... :004715C7 BA1C194700 mov edx, 0047191C ;проверка очередного ;имени :004715CC E8A327F9FF call 00403D74 :004715D1 751B jne 004715EE ;туда - если все правильно Этот переход отличается от всех ранее встреченных переходом на 004715EE вот его мы и искали... Теперь надо только исправить переход после первой проверки на безусловный переход на адрес 004715EE. Теперь осталось найти это место в файле.... а, вот этого места в файле и нет! Если посмотреть таблицу объектов то сразу бросается в глаза то, что все объекты имеют имя UPX плюс порядковый номер. Так обычно называет объекты упаковщик UPX в данном случае файл оказался запакован UPX 0.72 Теперь прийдется или распаковывать файл или патчить его прям так - запакованого....... Мне интересен второй вариант ПЕРЕД ВЫПОЛНЕНИЕМ СЛЕДУЮЩЕЙ ЧАСТИ СДЕЛАЙТЕ НЕСКОЛЬКО КОПИЙ ОРИГИНАЛЬНОГО KYODAI.EXE Упаковщик этой версии(с другими версиями не сталкивался) внедряет в файл неупакованый и некриптованый разпаковщик. Выполнение программы идет так: 1. Распаковщик распаковывает программу в памяти 2. Совершает переход на начало распакованной программы 3. Работа распакованной программы Нам нужно сделать так: 1. Распаковщик распаковывает программу в памяти 2. Переход на наш патчкод 3. Патч программы 4. Переход на начало пропатченной распакованной программы 5. Работа пропатченной распакованной программы Патчкод надо просто дописать в конец программы. Перейти за самый последний байт программы, перейти в режим ассемблера. За последним байтом программа добавит еще байт неинициированный. Войдите в режим редактирования, нажмите Tab чтобы перейти в режим ввода ассемблерных инструкций и введите: mov word ptr [0047133E],0000 mov dword ptr [00471360],000289E9 mov byte ptr [00471365],90 jmp 0 Получится должно примерно так: 00087F79: 5B pop ebx 00087F7A: 0000 add byte ptr [eax],al 00087F7C: 002400 add byte ptr [eax+eax],ah 00087F7F: 00FF add bh,bh ;Конец программы 00087F81: 66C7053E1347000000 mov word ptr [0047133E],0000 ;Патчкод 00087F8A: C70560134700E9890200 mov dword ptr [00471360],000289E9 00087F94: C6056513470090 mov byte ptr [00471365],90 00087F9B: E900000000 jmp 0087F9B ;переход на OEP где OEP - точка входа в распакованную программу (вычисляется ниже) Найти точку входа можно протрассировав программу в СофтАйсе(слишком морочно) или найти последовательность комманд: popad jmp XXXX Коды: popad - 61h jmp XXXX - E9XXXX Мы будем искать 61E9h в файле Kyodai.exe Когда найдем то запишем адрес на который совершается переход по джампу - это и есть OEP который мы искали, а вместо этого адреса введем адрес нашего патчкода ( в данном случае это 87F81) В конец нашего патчкода в последний джамп надо вписать адрес который мы толькочто записали. Вот и всё! Программа принимает любые введенные имя и код, и не достаёт нас напоминаниями... Enjoy!



 Author : Shaman
 E-mail: shaman@cydem.zp.ua
 


Обсуждение статьи: Регистрация Kyodai Mahjongg 9.42 >>>


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



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


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