Сейчас на форуме: subword, rtsgreg1989, zds (+9 невидимых)

 eXeL@B —› Основной форум —› Что Вы думаете о защите Reflexive Arcade 2006?
Посл.ответ Сообщение

Ранг: 29.9 (посетитель), 9thx
Активность: 0.020.06
Статус: Участник

Создано: 09 августа 2007 12:49
· Личное сообщение · #1

Привет всем! Я не прошу мне помочь, а просто скажите своё мнение по данному поводу. Три дня назад сестрёнка принесла кучу игр от RA-издателей. Игры так себе, 30 минут работают и всё... Ключи искать в облом, я решил посмотреть, как игры устроены. Заметил, что у всех игр есть ReflexiveArcade.dll. PEiD показал наличие в exe-файле Hash-сигнатур. Думаю: ну и чё? Открываю Olly, нахожу все Intermodular Calls. Как я и предполагал, никаких вызовов из этой DLL. Запускаю через отладчик, снова ищу вызовы. Вот они, родные:
reflexiv.radll_Initialize
reflexiv.radll_EnterMenuSection и несколько других.
Ставлю на них бряки и перезапускаю. Первым срабатывает бряк на Initialize. Решил в пошаговом режиме посмотреть, что же дальше. Через несколько нажатий F7 что же я вижу:

00406803 CALL MutantSt.00405F2A
00406808 CMP BYTE PTR DS:[4238E0],0
0040680F JE SHORT MutantSt.00406814 ; JMP to Reflexiv.radll_HasTheProductBeenPurchased
00406811 XOR AL,AL
00406813 RETN
00406814 JMP DWORD PTR DS:[42319C] ; Reflexiv.radll_HasTheProductBeenPurchased

Такого я не ожидал. О_о или это обман, или ... страшно подумать... Смотрю, откуда данная функция вызывается. Ставлю бряки и запускаю дальше. Спотыкаюсь на

00404ACA CALL MutantSt.00406803
00404ACF TEST AL,AL
00404AD1 JE SHORT MutantSt.00404AE1

Вызывается, сравнивается, если не так, то прыгает... Если занопить 00404AD1, то можно играть БЕСКОНЕЧНО!!! Что вы думаете по поводу коэффициента интеллекта у издателей, назвавших главную процедуру регистрации таким образом??

ЗЫ. Обнаружил, что не во всех играх адреса совпадают. В некоторых играх нужно занопить строку 00404С84. Принцип взлома тот же %)



Ранг: 29.9 (посетитель), 9thx
Активность: 0.020.06
Статус: Участник

Создано: 09 августа 2007 12:56
· Личное сообщение · #2

Блин, две одинаковые темы создал... GPRS, мать его так... Извините...




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 09 августа 2007 13:11
· Личное сообщение · #3

[X-Ray] - боян. Хотя вроде в последних выпусках у меня такой патчинг вызывал ребут после выхода игры и в самой игре "виднелись" кнопки типа "Buy Now" (пример Ricochet Infinity), х.з. Мне пришлось расшифровать зашифрованные байты в RWG файле - тогда все нормуль и игра полностью зарегена.

-----
Array[Login..Logout] of Life




Ранг: 117.1 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 09 августа 2007 13:12
· Личное сообщение · #4

[X-Ray] пишет:
Что вы думаете по поводу коэффициента интеллекта у издателей, назвавших главную процедуру регистрации таким образом??


Интеллект есть, коэффициент тоже. Примеров подобного на самом деле не так мало.

-----
Security through obscurity is just an illusion




Ранг: 29.9 (посетитель), 9thx
Активность: 0.020.06
Статус: Участник

Создано: 09 августа 2007 13:21
· Личное сообщение · #5

2 Kindly
Боян - в смысле, на форуме уже есть такая тема или ты где-то об этом читал?




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 09 августа 2007 13:23
· Личное сообщение · #6

[X-Ray] пишет:
форуме уже есть такая тема или ты где-то об этом читал?

Вобсче то данный метод уже давно известен, а по расшифровке статья на сайте лежит.

-----
Array[Login..Logout] of Life




Ранг: 29.9 (посетитель), 9thx
Активность: 0.020.06
Статус: Участник

Создано: 09 августа 2007 13:33
· Личное сообщение · #7

Kindly пишет:
Вобсче то данный метод уже давно известен, а по расшифровке статья на сайте лежит.

Блин . Ну ладно, первая тема комом...



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 09 августа 2007 14:54
· Личное сообщение · #8

Вообще-то как ты это называешь "расшифровка", для некоторых игр тоже не панацея, из последних например Emerald Tale, там в любом случае надо патчить (если конечно не использовать кейген).




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 09 августа 2007 19:22
· Личное сообщение · #9

Vovan666 пишет:
для некоторых игр тоже не панацея

Да, например еще в играх Clash'N Slash. Там помимо общей регистрации есть еще и собственная проверка.
[X-Ray]
Можно сделать и так. Не париться и сразу же искать стринг "Reflexiv.radll_HasTheProductBeenPurchased" (он есть во всех или почти во всех играх). Мы окажемся в функции загрузки библы ReflexiveArcade.dll. А оттуда переходим в вызывающую функцию и патчим. В общем, как ты и говорил.
А еще можно пропатчить и саму библу. Чтобы всегда возвращалась 1 (зареганы), а не 0.

-----
Программист SkyNet




Ранг: 10.7 (новичок)
Активность: 0.020
Статус: Участник

Создано: 09 августа 2007 19:26
· Личное сообщение · #10

Vovan666 пишет:
ля некоторых игр тоже не панацея, из последних например Emerald Tale

там flash значит в качестве оверлея сидит



Ранг: 29.9 (посетитель), 9thx
Активность: 0.020.06
Статус: Участник

Создано: 09 августа 2007 19:34
· Личное сообщение · #11

FrenFolio пишет:
Не париться и сразу же искать стринг "Reflexiv.radll_HasTheProductBeenPurchased"

В том-то и дело, что этот стринг не виден, "дополнительные функции" видны только после запуска игры, да и то не все (HasTheProduct... как раз не видна)




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 09 августа 2007 19:34
· Личное сообщение · #12

Predator Alex пишет:
там flash значит в качестве оверлея сидит

Ну при чем тут флеш? Распаковывать-то ведь ничего не нужно.
Просто используется общая (универсальная) схема регистации для всех игр портала. А в некоторых играх (мало где) FrenFolio пишет:
помимо общей регистрации есть еще и собственная проверка.


-----
Программист SkyNet




Ранг: 29.9 (посетитель), 9thx
Активность: 0.020.06
Статус: Участник

Создано: 09 августа 2007 19:35
· Личное сообщение · #13

FrenFolio пишет:
А еще можно пропатчить и саму библу

Это мысль. Надо посмотреть



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 09 августа 2007 22:17
· Личное сообщение · #14

[X-Ray] пишет:
В том-то и дело, что этот стринг не виден, "дополнительные функции" видны только после запуска игры, да и то не все (HasTheProduct... как раз не видна)

Вот патч который как раз патчит HasTheProductBeenPurchased, не красиво, но работает.
rapidshare.com/files/37653476/reflexive.wrapper.build.168.patcher.rar



Ранг: 74.0 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 11 августа 2007 23:23
· Личное сообщение · #15

Там помимо патча, надо убивать кучу проверок на CRC, имя ЕхЕ файла, его размер итп. Если тупо патчить только длл - работать не будет, проверено.




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 11 августа 2007 23:33
· Личное сообщение · #16

Soft_Ice пишет:
Если тупо патчить только длл - работать не будет, проверено.

На последних билдах не работает. Раньше работало, правда Soft_Ice пишет:
надо убивать кучу проверок на CRC, имя ЕхЕ файла, его размер итп.

Но можно было сделать лоадер. Так что проще действительно сделать патч exe. Это же просто вариант.

-----
Программист SkyNet





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 26 февраля 2008 04:09
· Личное сообщение · #17

А кто-нибудь может описать, как декриптовать файл?
В смысле принцип понятен... Но по тутору (копирование расшифрованного участка в hex виде в блокнот! Эта жесть у меня не разу не получилась)!!! Как можно по-другому? Можно конечно написать ещё одну не нужную софтину, но хотелось бы обойтись без этого

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 26 февраля 2008 05:40
· Личное сообщение · #18

Можно запустить, сдампить rwg, выдернуть оригинальную секцию кода из дампа, заменить ею покриптованую из оригинального rwg (размеры секций вроде одинаковые), переименовать rwg в ехе и играть.



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 26 февраля 2008 07:29 · Поправил: Kiev78
· Личное сообщение · #19

---




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 26 февраля 2008 07:33
· Личное сообщение · #20

Isaev пишет:
Но по тутору (копирование расшифрованного участка в hex виде в блокнот! Эта жесть у меня не разу не получилась)!!!

Так там есть еще видеотутор, как сделать. Вроде не особо сложно.
Isaev пишет:
А кто-нибудь может описать, как декриптовать файл?

Я видел только анврапперы, реализованные по алгоритму, описанному в туторе. Не знаю, возможно можно как-то и по-другому сделать... Вот еще один тутор по распаковке Reflexive Arcade от HighEnergy filesurf.ru/29551 с "жертвой".

-----
Программист SkyNet





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 26 февраля 2008 07:37 · Поправил: Isaev
· Личное сообщение · #21

Zorn я как раз об этом и говорю... Именно "выдернуть оригинальную секцию кода из дампа, заменить ею покриптованую из оригинального rwg"! Я знаю где она, как расшифровать, откуда вырезать и куда вставить... Вопрос: как это сделать не в текстовом редакторе??? По-приличнее способы есть?

правка: ни чего себе сколько уже написали! Спасибо, буду пробывать

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 26 февраля 2008 08:33 · Поправил: Zorn
· Личное сообщение · #22

Kiev78 пишет:
Я делал так: Загружаю в Олю, ставлю бряк на ВрайтПроцессМемори, запускаю, брякаюсь, пошагово дохожу до РезюмеТред, и стоя на нем можно дампить RWG (он уже раскриптован и готов к запуску), так как в RWG нет никаких антидамповых приемов, то дамп получается 100% рабочим (и даже по размеру совпадает байт в байт). Единственная трудность - процесс RWG не виден ни в ПеТулс, ни в ЛордПе, ни в самой Оле нет возможности сдампить дочерний процесс.

Да можно просто запустить игру (без Оли) и тогда RWG видно. Неважно что дамп не рабочий получится (дампить естественно RWG нужно), нам то только секция кода нужна.
Isaev пишет:
Вопрос: как это сделать не в текстовом редакторе??? По-приличнее способы есть?

Я сначала сравнивал в тотале и смотрел откуда различия в секции кода начинаются. Потом в ВинХексе старую вырезал, новую вставлял.

Можешь еще попробовать с помощью PE Editor'а (Save section to disk.../Load section from disk...)

Хотя у этого способа есть недостаток - игра должна запуститься (т.е. срок еще не должен выйти), но думаю это не такая уж большая проблема.

ЗЫ. Тутор не читал, делал по своему.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 26 февраля 2008 16:13
· Личное сообщение · #23

FrenFolio спасибо за тутор! Всё вроде тоже самое, но ребята не стали изголяться с Hex-Editorami, что и требовалось... Всё просто: Binary/Copy - Binary/Paste прям в Olly, без извращений!!!

Кстати принцип работы unwrappera??? как он бряк делает, где ему надо? API-Hook? Но, насколько мне известно API-Hook для чужого приложения возможен только из DLL (из статей Ms-Rema на wasme... если я правильно всё понял), а в анврапперах dll нет! Как программно реализовывается исполнение стороннего процесса до определённого места (желательно на Delpi)?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 26 февраля 2008 18:36
· Личное сообщение · #24

Isaev пишет:
Кстати принцип работы unwrappera??? как он бряк делает, где ему надо?

Посмотри анвраппер от Eraser'a, он с сырцами на асме filesurf.ru/29683
Isaev пишет:
API-Hook?

Да, хукаются 3 API - CreateProcess, OpenProcess и WriteProcessMemory. Реализован через бесконечный цикл посредством замены первых двух байт нужной API на 0EBh,0FEh с последующих восстановлением байт.

-----
Программист SkyNet





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 03 марта 2008 22:40
· Личное сообщение · #25

В некоторых играх после unwrap'а нужно ещё проверку патчить, иначе пишет в лог ehslog.txt:
Error: GameName WAS NOT WRAPPED!
и вылетает


-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 04 марта 2008 08:16 · Поправил: Freecod
· Личное сообщение · #26

Тема была мегабояном ещё 3 топика назад =/
Хардкорные крекеры ничего не хучат - они ломают код своими стальныи ручищами, запихивая незапихивамое, меняя неменяемое. Они настолько суровы, что прямо в коде врапера меняют WriteProcesMemory меняют на WriteFile =)



Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 04 марта 2008 08:21
· Личное сообщение · #27

Оно

3916_03.03.2008_CRACKLAB.rU.tgz - RA_DevEd.rar




Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 04 марта 2008 19:36
· Личное сообщение · #28

Freecod
Большое спасибо за сырцы! Погляжу на досуге. Но все-таки опиши суть своего метода распаковки. Насколько я понимаю, ты не дампишь в памяти процесс "*.RWG" игры, а сразу же пишешь в файл?

-----
Программист SkyNet




Ранг: 108.7 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 08 марта 2008 22:17
· Личное сообщение · #29

Да, всё сурово - патчим файл рубашки в месте перезаписи рубашкой нераспакованных данных распакованными. В итоге при выполнении враппер создаёт файл и сам вносит в него распакованные данные. Вот такая коварная наёпка несчастной защиты ='(


 eXeL@B —› Основной форум —› Что Вы думаете о защите Reflexive Arcade 2006?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати