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

Ломаем игры ReflexiveArcade в 6 шагов!!!!
  #1  
Старый 05.10.2006, 20:31
Аватар для aleks28
aleks28
Новичок
Регистрация: 16.09.2006
Сообщений: 9
Провел на форуме:
51794

Репутация: 9
Отправить сообщение для aleks28 с помощью ICQ
Post Ломаем игры ReflexiveArcade в 6 шагов!!!!

Ломаем игры ReflexiveArcade в 6 шагов!!!!

Те кто забрел сюда за поиском кряков - вам здесь делать нечего - для игр Reflexive куча кряков так что не ленитесь и поищите....
А здесь будет рассмотрен способ для их ломания чисто из спортивного интереса.... (кстати я еще не встретил не одной игры этой фирмы к которой этот способ не подошел бы...)
Просто решил поделиться.... Нашел этот способ сам...
(если этот способ известен всем извеняйте - интернет у меня недавно ...)

Короче вот сам способ открываем любую игру от ReflexiveArcade (я беру их на ДПК DVD их там немеряно!!! И за все плати бабки а где нам бабки эти самим то брать???), в отладчике (я пользуюсь IDA), производим поиск строки MINUTES находим строку:

Код:
.data:0042D7D0                 db  59h ; Y
.data:0042D7D1                 db  6Fh ; o
.data:0042D7D2                 db  75h ; u
.data:0042D7D3                 db  20h
.data:0042D7D4                 db  68h ; h
.data:0042D7D5                 db  61h ; a
.data:0042D7D6                 db  76h ; v
.data:0042D7D7                 db  65h ; e
.data:0042D7D8                 db  20h
.data:0042D7D9                 db  5Bh ; [
.data:0042D7DA                 db  4Dh ; M
.data:0042D7DB                 db  49h ; I
.data:0042D7DC                 db  4Eh ; N
.data:0042D7DD                 db  55h ; U
.data:0042D7DE                 db  54h ; T
.data:0042D7DF                 db  45h ; E
.data:0042D7E0                 db  53h ; S
.data:0042D7E1                 db  5Fh ; _
.data:0042D7E2                 db  4Ch ; L
.data:0042D7E3                 db  45h ; E
.data:0042D7E4                 db  46h ; F
.data:0042D7E5                 db  54h ; T
.data:0042D7E6                 db  5Dh ; ]
.data:0042D7E7                 db  20h
.data:0042D7E8                 db  6Dh ; m
.data:0042D7E9                 db  69h ; i
.data:0042D7EA                 db  6Eh ; n
.data:0042D7EB                 db  75h ; u
.data:0042D7EC                 db  74h ; t
.data:0042D7ED                 db  65h ; e
.data:0042D7EE                 db  73h ; s
.data:0042D7EF                 db  20h
.data:0042D7F0                 db  6Fh ; o
.data:0042D7F1                 db  66h ; f
.data:0042D7F2                 db  20h
.data:0042D7F3                 db  67h ; g
.data:0042D7F4                 db  61h ; a
.data:0042D7F5                 db  6Dh ; m
.data:0042D7F6                 db  65h ; e
.data:0042D7F7                 db  70h ; p
.data:0042D7F8                 db  6Ch ; l
.data:0042D7F9                 db  61h ; a
.data:0042D7FA                 db  79h ; y
.data:0042D7FB                 db  20h
.data:0042D7FC                 db  72h ; r
.data:0042D7FD                 db  65h ; e
.data:0042D7FE                 db  6Dh ; m
.data:0042D7FF                 db  61h ; a
.data:0042D800                 db  69h ; i
.data:0042D801                 db  6Eh ; n
.data:0042D802                 db  69h ; i
.data:0042D803                 db  6Eh ; n
.data:0042D804                 db  67h ; g
.data:0042D805                 db  2Eh ; .
адреса могут быть разными в зависимости от игры... После завершения анализа эта строка преврашаеться в
aYouHaveMinutes db 'You have [MINUTES_LEFT] minutes of gameplay remaining. ',0Ah
Далее двойной клик на DATA XREF который нах. возле нашой строки (после ; тоесть переходим на то место откуда эта строка вызываеться...) и мы оказываемся на самом коде
push offset aYouHaveMinutes ;

Поднимаемся вверх до первого DATA XREF, кликаем дважды на него, переходим на код вызвавший нашу процедуру с выводом оставшихся минут:

Код:
loc_404CB5:                             ; CODE XREF: sub_404C3A+6Bj
.text:00404CB5                 fld     dword ptr [esi+18h]
.text:00404CB8                 fcomp   ds:flt_4292D0
.text:00404CBE                 fnstsw  ax
.text:00404CC0                 test    ah, 41h
.text:00404CC3                 jnz     short loc_404CCC
.text:00404CC5                 push    offset loc_42D7D0 << вызов вывода minutes (оставшихся минут игры)
.text:00404CCA                 jmp     short loc_404CD1

Еще раз поднимемся вверх до первого XREF, и делаем двойной клик по нему тоесть переходим на процедуру проверки на зарегестрированность и соответсвенно потребности в выводе оставшихся минут - sub_404C3A+6B:

Код:
.text:00404C9E loc_404C9E:                             ; CODE XREF: sub_404C3A+5Cj
.text:00404C9E                 call    sub_407770 << процедура проверки на зарегестрированность
.text:00404CA3                 test    al, al
.text:00404CA5                 jz      short loc_404CB5 << вот этот переход нужно занопить.. (9090)
.text:00404CA7                 mov     ecx, esi
.text:00404CA9                 call    sub_403492
.text:00404CAE                 push    offset loc_4045A5
.text:00404CB3                 jmp     short loc_404CD1
Нопим переход и....
Вот и все игра запускаеться и говорит спасибо что играете в меня :-).
Конечно можно было сделать еще поумнее - изменить результат возвращаемый функцией проверки кода (которая перед 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... Фуххх рассказал... )

Всем спасибо - не судите строго...


Ну и как обычно:

ВСЯ ПРЕДСТАВЛЕННАЯ ЗДЕСЬ ИНФОРМАЦИЯ ИСПОЛЬЗУЕТЬСЯ ВАМИ НА ВАШ СТРАХ И РИСК... Я НЕ ЗАСТАВЛЯЮ ЕЮ КОГО ТО ПОЛЬЗОВАТЬСЯ А ЛИШЬ ХОЧУ УКАЗАТЬ РАЗРАБОТЧИКАМ НА НЕСОВЕРШЕНСТВО ЗАЩИТЫ ИХ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Последний раз редактировалось aleks28; 07.10.2006 в 17:06..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор игры Crime Life: Gang Wars dinar_007 Болталка 4 28.02.2007 17:43
Калифорнийские власти подали в суд на создателей игры Gta Sa за скрытую порнографию dinar_007 Мировые новости 8 28.01.2006 12:50
Ломаем www.antichat.ru. alsa Болталка 19 14.04.2005 12:57
Игры SHiTS Болталка 4 16.02.2005 12:14



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


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




ANTICHAT.XYZ