Сейчас на форуме: subword, rtsgreg1989, zds (+9 невидимых) |
eXeL@B —› Основной форум —› Что Вы думаете о защите Reflexive Arcade 2006? |
Посл.ответ | Сообщение |
|
Создано: 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. Принцип взлома тот же %) |
|
Создано: 09 августа 2007 12:56 · Личное сообщение · #2 |
|
Создано: 09 августа 2007 13:11 · Личное сообщение · #3 [X-Ray] - боян. Хотя вроде в последних выпусках у меня такой патчинг вызывал ребут после выхода игры и в самой игре "виднелись" кнопки типа "Buy Now" (пример Ricochet Infinity), х.з. Мне пришлось расшифровать зашифрованные байты в RWG файле - тогда все нормуль и игра полностью зарегена. ----- Array[Login..Logout] of Life |
|
Создано: 09 августа 2007 13:12 · Личное сообщение · #4 |
|
Создано: 09 августа 2007 13:21 · Личное сообщение · #5 |
|
Создано: 09 августа 2007 13:23 · Личное сообщение · #6 |
|
Создано: 09 августа 2007 13:33 · Личное сообщение · #7 |
|
Создано: 09 августа 2007 14:54 · Личное сообщение · #8 |
|
Создано: 09 августа 2007 19:22 · Личное сообщение · #9 Vovan666 пишет: для некоторых игр тоже не панацея Да, например еще в играх Clash'N Slash. Там помимо общей регистрации есть еще и собственная проверка. [X-Ray] Можно сделать и так. Не париться и сразу же искать стринг "Reflexiv.radll_HasTheProductBeenPurchased" (он есть во всех или почти во всех играх). Мы окажемся в функции загрузки библы ReflexiveArcade.dll. А оттуда переходим в вызывающую функцию и патчим. В общем, как ты и говорил. А еще можно пропатчить и саму библу. Чтобы всегда возвращалась 1 (зареганы), а не 0. ----- Программист SkyNet |
|
Создано: 09 августа 2007 19:26 · Личное сообщение · #10 |
|
Создано: 09 августа 2007 19:34 · Личное сообщение · #11 |
|
Создано: 09 августа 2007 19:34 · Личное сообщение · #12 Predator Alex пишет: там flash значит в качестве оверлея сидит Ну при чем тут флеш? Распаковывать-то ведь ничего не нужно. Просто используется общая (универсальная) схема регистации для всех игр портала. А в некоторых играх (мало где) FrenFolio пишет: помимо общей регистрации есть еще и собственная проверка. ----- Программист SkyNet |
|
Создано: 09 августа 2007 19:35 · Личное сообщение · #13 |
|
Создано: 09 августа 2007 22:17 · Личное сообщение · #14 [X-Ray] пишет: В том-то и дело, что этот стринг не виден, "дополнительные функции" видны только после запуска игры, да и то не все (HasTheProduct... как раз не видна) Вот патч который как раз патчит HasTheProductBeenPurchased, не красиво, но работает. rapidshare.com/files/37653476/reflexive.wrapper.build.168.patcher.rar |
|
Создано: 11 августа 2007 23:23 · Личное сообщение · #15 |
|
Создано: 11 августа 2007 23:33 · Личное сообщение · #16 Soft_Ice пишет: Если тупо патчить только длл - работать не будет, проверено. На последних билдах не работает. Раньше работало, правда Soft_Ice пишет: надо убивать кучу проверок на CRC, имя ЕхЕ файла, его размер итп. Но можно было сделать лоадер. Так что проще действительно сделать патч exe. Это же просто вариант. ----- Программист SkyNet |
|
Создано: 26 февраля 2008 04:09 · Личное сообщение · #17 А кто-нибудь может описать, как декриптовать файл? В смысле принцип понятен... Но по тутору (копирование расшифрованного участка в hex виде в блокнот! Эта жесть у меня не разу не получилась)!!! Как можно по-другому? Можно конечно написать ещё одну не нужную софтину, но хотелось бы обойтись без этого ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 26 февраля 2008 05:40 · Личное сообщение · #18 |
|
Создано: 26 февраля 2008 07:29 · Поправил: Kiev78 · Личное сообщение · #19 |
|
Создано: 26 февраля 2008 07:33 · Личное сообщение · #20 Isaev пишет: Но по тутору (копирование расшифрованного участка в hex виде в блокнот! Эта жесть у меня не разу не получилась)!!! Так там есть еще видеотутор, как сделать. Вроде не особо сложно. Isaev пишет: А кто-нибудь может описать, как декриптовать файл? Я видел только анврапперы, реализованные по алгоритму, описанному в туторе. Не знаю, возможно можно как-то и по-другому сделать... Вот еще один тутор по распаковке Reflexive Arcade от HighEnergy filesurf.ru/29551 с "жертвой". ----- Программист SkyNet |
|
Создано: 26 февраля 2008 07:37 · Поправил: Isaev · Личное сообщение · #21 Zorn я как раз об этом и говорю... Именно "выдернуть оригинальную секцию кода из дампа, заменить ею покриптованую из оригинального rwg"! Я знаю где она, как расшифровать, откуда вырезать и куда вставить... Вопрос: как это сделать не в текстовом редакторе??? По-приличнее способы есть? правка: ни чего себе сколько уже написали! Спасибо, буду пробывать ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 26 февраля 2008 08:33 · Поправил: Zorn · Личное сообщение · #22 Kiev78 пишет: Я делал так: Загружаю в Олю, ставлю бряк на ВрайтПроцессМемори, запускаю, брякаюсь, пошагово дохожу до РезюмеТред, и стоя на нем можно дампить RWG (он уже раскриптован и готов к запуску), так как в RWG нет никаких антидамповых приемов, то дамп получается 100% рабочим (и даже по размеру совпадает байт в байт). Единственная трудность - процесс RWG не виден ни в ПеТулс, ни в ЛордПе, ни в самой Оле нет возможности сдампить дочерний процесс. Да можно просто запустить игру (без Оли) и тогда RWG видно. Неважно что дамп не рабочий получится (дампить естественно RWG нужно), нам то только секция кода нужна. Isaev пишет: Вопрос: как это сделать не в текстовом редакторе??? По-приличнее способы есть? Я сначала сравнивал в тотале и смотрел откуда различия в секции кода начинаются. Потом в ВинХексе старую вырезал, новую вставлял. Можешь еще попробовать с помощью PE Editor'а (Save section to disk.../Load section from disk...) Хотя у этого способа есть недостаток - игра должна запуститься (т.е. срок еще не должен выйти), но думаю это не такая уж большая проблема. ЗЫ. Тутор не читал, делал по своему. |
|
Создано: 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 |
|
Создано: 26 февраля 2008 18:36 · Личное сообщение · #24 Isaev пишет: Кстати принцип работы unwrappera??? как он бряк делает, где ему надо? Посмотри анвраппер от Eraser'a, он с сырцами на асме filesurf.ru/29683 Isaev пишет: API-Hook? Да, хукаются 3 API - CreateProcess, OpenProcess и WriteProcessMemory. Реализован через бесконечный цикл посредством замены первых двух байт нужной API на 0EBh,0FEh с последующих восстановлением байт. ----- Программист SkyNet |
|
Создано: 03 марта 2008 22:40 · Личное сообщение · #25 |
|
Создано: 04 марта 2008 08:16 · Поправил: Freecod · Личное сообщение · #26 |
|
Создано: 04 марта 2008 08:21 · Личное сообщение · #27 |
|
Создано: 04 марта 2008 19:36 · Личное сообщение · #28 |
|
Создано: 08 марта 2008 22:17 · Личное сообщение · #29 |
eXeL@B —› Основной форум —› Что Вы думаете о защите Reflexive Arcade 2006? |