![]() |
Ломаем игры ReflexiveArcade в 6 шагов!!!!
Ломаем игры ReflexiveArcade в 6 шагов!!!!
Те кто забрел сюда за поиском кряков - вам здесь делать нечего - для игр Reflexive куча кряков так что не ленитесь и поищите.... А здесь будет рассмотрен способ для их ломания чисто из спортивного интереса.... (кстати я еще не встретил не одной игры этой фирмы к которой этот способ не подошел бы...) Просто решил поделиться.... Нашел этот способ сам... (если этот способ известен всем извеняйте - интернет у меня недавно ...) Короче вот сам способ открываем любую игру от ReflexiveArcade (я беру их на ДПК DVD их там немеряно!!! И за все плати бабки а где нам бабки эти самим то брать???), в отладчике (я пользуюсь IDA), производим поиск строки MINUTES находим строку: Код:
.data:0042D7D0 db 59h ; YaYouHaveMinutes db 'You have [MINUTES_LEFT] minutes of gameplay remaining. ',0Ah Далее двойной клик на DATA XREF который нах. возле нашой строки (после ; тоесть переходим на то место откуда эта строка вызываеться...) и мы оказываемся на самом коде push offset aYouHaveMinutes ; Поднимаемся вверх до первого DATA XREF, кликаем дважды на него, переходим на код вызвавший нашу процедуру с выводом оставшихся минут: Код:
loc_404CB5: ; CODE XREF: sub_404C3A+6BjЕще раз поднимемся вверх до первого XREF, и делаем двойной клик по нему тоесть переходим на процедуру проверки на зарегестрированность и соответсвенно потребности в выводе оставшихся минут - sub_404C3A+6B: Код:
.text:00404C9E loc_404C9E: ; CODE XREF: sub_404C3A+5CjВот и все игра запускаеться и говорит спасибо что играете в меня :-). Конечно можно было сделать еще поумнее - изменить результат возвращаемый функцией проверки кода (которая перед test al,al) - вместо xor al,al внести mov al,1 :-) Но так как мы сделали ведь легче!!! Хотя второй вариант более правильный (так как эта процедура могла быть вызвана и из другого места и там также пришлось бы нопить переход... Но в нашем случае этого делать не нужно, как и всех играх от этой компании, а их у меня не мало - 34 штуки) Итак еще раз - что нужно сделать: 1 - Ищем minutes; 2 - переход вверх (на xref); 3 - переход вверх; 4 - все мы на переходе который нужно занопить... 5 - открываем winhex переходим на нужный адрес (в нашем случае это 4CA5 .text:00404CA5-ImageBase) 6 - нопим переход 9090 (Занопить переход означает заменить команду jXX на nop, так как команды переходов имеют разную длину то в зависимости от этой длины нужно заменять ее на несколько команд nop... Например в нашем случае команда jz short loc_404CB5 имеет опкод 74 OE и занимает 2 байта, а вот команда nop имеет опкод 90 и занимает один байт поэтому нужно команду jz заменять на 9090 тоесть 2 команды nop... Фуххх рассказал... :) ) Всем спасибо - не судите строго... Ну и как обычно: ВСЯ ПРЕДСТАВЛЕННАЯ ЗДЕСЬ ИНФОРМАЦИЯ ИСПОЛЬЗУЕТЬСЯ ВАМИ НА ВАШ СТРАХ И РИСК... Я НЕ ЗАСТАВЛЯЮ ЕЮ КОГО ТО ПОЛЬЗОВАТЬСЯ А ЛИШЬ ХОЧУ УКАЗАТЬ РАЗРАБОТЧИКАМ НА НЕСОВЕРШЕНСТВО ЗАЩИТЫ ИХ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ |
| Время: 08:33 |