Сейчас на форуме: vsv1, NIKOLA, r0lka, johnniewalker (+3 невидимых) |
eXeL@B —› Крэки, обсуждения —› Взлом Alawar игр (отучим от триала) |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 15 . 16 . >> |
Посл.ответ | Сообщение |
|
Создано: 28 сентября 2006 04:20 · Личное сообщение · #1 Уж извините за форму написания ведь он почти первый (че-то я в последнее время расщедрился) Мини тутор по снятию триал-защиты с игр от Alawar`a Инструмент: Shadow with bpmx да голова Кролик : Игра "Разгадай код Да Винчи" Как обычно приобрел очередной ComputerBild и на диске прилагаемом к нему нашлась игруха от алавара "Разгадай Код Да Винчи". На все про все наиграться мне отвели 30 минут а игруха класная новый вариант Lines.Поскольку я никогда не смотрю что мне нужно оттдать за то чтобы вдоволь насладится очередным программным продуктом пришлось на время отложить работу и взятся за сей продукт. При первом рассмотрении PEid нашел Aspr.Периодически лазить в реестр и что нибудь там чистить это не по мне. Не долго думая обработал поделку stripper`ом.Получилось.Причем stripper сказал что триал инфы не используются. Уже интересно ДА. Однако продукт после распаковки запускаться не захотел и улетал в несуществующие адреса. Как же так несправедливо получается уже потрачено 5 минут драгоценного времени впустую 8-( не отступать рано продолжим. Загрузил дамп в shadow и своим трейсером дошел до места где вызываются не существующие адреса. Выглядело это место примерно так call dword [4383a8] где по этому адресу лежало 00401440 естественно указывающее вникуда. Беда но зачем же отступать. Я рассудил так раз такой call есть значит что-то не до конца обработало дамп не доведя до ума т.е. при распаковке процедуры приведения проги до нормального вида не включались а сидели в апи аспра т.е. где то же они есть.Поиском всех референсов на адрес 004383а8 нашлась интересное место: 1 PUSH da_vinci.0040E36D ; /Arg5 = 0040E36D 2 PUSH DWORD PTR DS:[428F44] ; |Arg4 = 00000000 3 PUSH da_vinci.0042839C ; |Arg3 = 0042839C 4 PUSH da_vinci.004210DC ; |Arg2 = 004210DC ASCII "GetLocaleInfoW" 5 PUSH da_vinci.00420F50 ; |Arg1 = 00420F50 ASCII "kernel32.dll" 6 CALL da_vinci.0040E02F ; \da_vinci.0040E02F 7 JMP DWORD PTR DS:[42839C] ; da_vinci.0040D9F0 8 PUSH da_vinci.0040E24E ; /Arg5 = 0040E24E 9 PUSH DWORD PTR DS:[428F40] ; |Arg4 = 00000000 10 PUSH da_vinci.004283A8<---вот он адресок ; |Arg3 = 004283A8 11 PUSH da_vinci.004210EC а это то что должно быть --> ; |Arg2 = 004210EC ASCII "GetProcAddress" 12 PUSH da_vinci.00420F50 ; |Arg1 = 00420F50 ASCII "kernel32.dll" 13 CALL da_vinci.0040E02F ; \da_vinci.0040E02F 14 JMP DWORD PTR DS:[4283A8] 15 PUSH da_vinci.0040E2AA ; /Arg5 = 0040E2AA 16 PUSH DWORD PTR DS:[428F3C] ; |Arg4 = 00000000 17 PUSH da_vinci.004283B8 ; |Arg3 = 004283B8 18 PUSH da_vinci.004210FC ; |Arg2 = 004210FC ASCII "LoadLibraryW" 19 PUSH da_vinci.00420F50 ; |Arg1 = 00420F50 ASCII "kernel32.dll" 20 CALL da_vinci.0040E02F ; \da_vinci.0040E02F 21 JMP DWORD PTR DS:[4283B8] ; da_vinci.0040DA3A Осмыслив данный кусок кода начинаю понимать что это то что надо однако ни одного референса на 1 строку решаю рискнуть выставляю оер на строку 8 и жму F8 до 14 строки и о радость по адресу 4383a8 цифирки меняются на почти (внимательно) валидные адреса. 1 PUSH da_vinci.0040E36D ; /Arg5 = 0040E36D 2 PUSH DWORD PTR DS:[428F44] ; |Arg4 = 00000000 3 PUSH da_vinci.0042839C ; |Arg3 = 0042839C 4 PUSH da_vinci.004210DC ; |Arg2 = 004210DC ASCII "GetLocaleInfoW" 5 PUSH da_vinci.00420F50 ; |Arg1 = 00420F50 ASCII "kernel32.dll" 6 CALL da_vinci.0040E02F ; \da_vinci.0040E02F 7 JMP DWORD PTR DS:[42839C] ; unicows.GetLocaleInfoW 8 PUSH da_vinci.0040E24E ; /Arg5 = 0040E24E 9 PUSH DWORD PTR DS:[428F40] ; |Arg4 = 00000000 10 PUSH da_vinci.004283A8 ; |Arg3 = 004283A8 11 PUSH da_vinci.004210EC ; |Arg2 = 004210EC ASCII "GetProcAddress" 12 PUSH da_vinci.00420F50 ; |Arg1 = 00420F50 ASCII "kernel32.dll" 13 CALL da_vinci.0040E02F ; \da_vinci.0040E02F 14 JMP DWORD PTR DS:[4283A8] <-видите куда теперь он указывает ; unicows.GetProcAddress И так если использовать данную процедуру (их кстати 2 не небольшом расстоянии друг от друга и дальше (естественно пропуская jmp`ы) можно полностью раскодировать импорт, он там небольшой около 20 имен функций.Но вот зараза если внимательно приглядеться то можно заметить что GetProcAddress находится не во всеми любимом kernel32.dll а в какои то херне под названием unicows.dll (Кстати это микрософтовская библиотека я так не хера и не понял зачем она нужна.Плюс с ней программа не пожелала запускаться. Чтож отступать поздно потрачено уже около 25 минут.Думаю дальше. Далее найдется до фига желающих меня обласкать за то что я пошел обходным путем однако ничего не попишешь в тот момент ко мне пришла такая идея. Я взял да подставил в эту микротаблицу импорта правильные адреса всех фунции т.е. теперь по адресу 4283a8 лежал указатель не на unicows.GetProcAddress а на kernel32.GetProcAddress. Все прекрасно прога запустилась но функции триала остались. Думаю дальше ведь времени уже потрачено около 40 минут. Анализ данного импорта показал что wrapper юзает функции в том числе CreateFile и CreateProcess, WriteProcessMemory т.е. по сути wrapper создает отдельный файл и потом его контролирует. Что ж ставим бряки на эти функции и отпускаем прогу нажимаем в ней продолжать играть и вываливаемся на создании файла game32.img.(нужно только поменять атрибуты для файла на Normal) Все вроде бы готово. Уф.Глушим прогу Переименовываем его в game32.exe и пытаемся запустить и...... ОБЛОМ. Прога не запускается. Думаю дальше. Посмотрим на oep (game32.exe) и видим что не все так просто просто там ничего нет. Загружаем в олю родителя оставляем бряки на старом месте.СТАРТ. Проходим как описано выше до создания дочки (game32....) жмем еще раз f9 и вываливаемся на бряке WriteProcessMemory первый пропускаем он просто записывает дочку а вот когда прогавалится еще раз смотрим что же она пишет и о боги видим что в наш game32... на место оер записывается 6 байт посмотрев в буфер запоминаем их а затем подправляем наш game32.exe. все игра заработала..Облегчение..... P.S. Я не знаю сколько продержится эта защита после опубликования данного минитутора пользуйтесь пока. |
|
Создано: 01 апреля 2008 08:27 · Личное сообщение · #2 |
|
Создано: 01 апреля 2008 11:13 · Личное сообщение · #3 |
|
Создано: 01 апреля 2008 17:06 · Личное сообщение · #4 |
|
Создано: 02 апреля 2008 08:02 · Поправил: postgate · Личное сообщение · #5 |
|
Создано: 02 апреля 2008 09:07 · Личное сообщение · #6 |
|
Создано: 02 апреля 2008 19:15 · Личное сообщение · #7 |
|
Создано: 03 апреля 2008 12:10 · Личное сообщение · #8 |
|
Создано: 03 апреля 2008 12:53 · Личное сообщение · #9 |
|
Создано: 04 апреля 2008 01:53 · Поправил: postgate · Личное сообщение · #10 |
|
Создано: 04 апреля 2008 02:06 · Личное сообщение · #11 postgate пробел можно поставить в любом месте ключа, главное что бы ключ не начинался с пробела и не заканчивался им. Иметь у себя на компе лишние ключи в реестре - не есть хорошо. Метод исправления EP более надёжен (та же переустановка винды), т.к. ты получаешь чистинький экзешник, да и мусор относящийся к врапперу можно смело удалить. Если знать что делать - то всё делается быстро. +когда запускаешь игру, не приходится делать лишних телодвижений. ----- Я ещё не волшебник, я только учусь... |
|
Создано: 04 апреля 2008 06:49 · Личное сообщение · #12 |
|
Создано: 05 апреля 2008 10:53 · Личное сообщение · #13 Нашел у китайцев мульти анвраппер. Мож пригодится. Поддерживает Alawar, GameHouse, Reflexive, WildGames 6e07_05.04.2008_CRACKLAB.rU.tgz - Game UnWrapper v1.3 beta2.rar ----- iNTERNATiONAL CoDE CReW |
|
Создано: 18 мая 2008 18:39 · Личное сообщение · #14 |
|
Создано: 01 марта 2009 16:43 · Поправил: Isaev · Личное сообщение · #15 Что-то они в последних версиях поменяли похоже в ресурсах по смещению больше нету новой OEP надо поковырять на досуге ClockMan пишет: Стыдно должно быть около 7 unwrapperow и все идут лесом... Это не стыдно, а интересно приятно, когда люди хоть что-то пытаются исправить ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 01 марта 2009 17:01 · Личное сообщение · #16 |
|
Создано: 01 марта 2009 17:21 · Личное сообщение · #17 |
|
Создано: 01 марта 2009 17:24 · Поправил: Isaev · Личное сообщение · #18 |
|
Создано: 01 марта 2009 18:31 · Личное сообщение · #19 Лично у меня получилось зарегить игру (и все игры этой компании) изменив один байт в одной из dll игры... Рассказать, как? Или это уже не новость? Извините, нет времени перечитывать весь топик! Удачно зарегились, например: Luxor, Авианалет 3, Маджонг Артефакт, АкваБол ну и т.д. Похоже, что все современные игрушки содержат эту dll. Сделав обычный "searsh patch", можно регить все игры, даже если в папке с игрой лежит разные версии этой dll. |
|
Создано: 01 марта 2009 18:41 · Поправил: Hellspawn · Личное сообщение · #20 Isaev да с виду всё тоже самое CreateProcess + VitrualPotect + WriteProcessMemory Code:
----- [nice coder and reverser] |
|
Создано: 01 марта 2009 19:21 · Личное сообщение · #21 |
|
Создано: 01 марта 2009 20:48 · Личное сообщение · #22 |
|
Создано: 01 марта 2009 21:14 · Личное сообщение · #23 |
|
Создано: 01 марта 2009 21:17 · Личное сообщение · #24 Isaev пишет: по смещению 29h лежало краденное OEP, а сейчас нет, поэтому и не работают unwrapperы старые. Я не знаю че там алавровцы опять наменяли, но у нас в группе чел сделал новые тулзы для этой защиты, сказал что изменения минимальны. Может понадобится кому, так что даю ссыль (там извлекалка ключа, как он ее назвал + анвраппер) rapidshare.com/files/204089075/Alawar_new.rar ----- Программист SkyNet |
|
Создано: 02 марта 2009 16:25 · Поправил: MookyJazza · Личное сообщение · #25 Я не пойму, зачем что-то там дампить, искать OEP, править в рестораторе, отсчитывать байты, анврапить, и т.д всякая ..... , когда можно просто изменить ОДИН байт в wrapper.dll, ввести для регистрации абсолютно любой ключ, хоть один символ, и игра будет зарегена!? Нафига всё это нужно? Убить несколько лишних килобайт на харде за ненадобностью? Или ради тренинга? Кто просвятит? link_deleted_by_forum_engine/files/5ky524ba1 - ALWPTCH |
|
Создано: 02 марта 2009 18:11 · Личное сообщение · #26 |
|
Создано: 02 марта 2009 19:04 · Поправил: MookyJazza · Личное сообщение · #27 А это происходит с Алаваровскими играми?? Или ты говоришь о других производителях? Если о других, то оно, конечно, понятно, приходится с ними ковыряться... А вот Алавар? Неужели у них есть игры, которые этого требуют? Я, конечно, в них не спец, просто говорю о тех играх, которые сейчас в ходу и мне на глаза попались. Они то, вроде, этого не требуют... или я ошибаюсь? А насчет быстрее, то, как говорится, с нынешним уровнем развития техники, пара лишних секунд на запуск - не проблема Но я тут человек новый, могу чего-то и не знать... так что, строго не судите |
|
Создано: 02 марта 2009 20:28 · Личное сообщение · #28 |
|
Создано: 02 марта 2009 22:02 · Личное сообщение · #29 OLEGator пишет: Да просто приятнее иметь чистый софт без всяких враперов, которые ещё и срут в реестр своими триал метками. Согласен! Мне тоже чисто психологически приятнее играть буз всяких врапперов и прочего мусоар в папке с игрой. К тому же действительно конкретно для Алавара лучше анврап, чем ключ, впрочем как и для невософта. Уж очень раздражают наги с благодарностями. Хотя это мое имхо опять же. MookyJazza пишет: Я не пойму, зачем что-то там дампить, искать OEP, править в рестораторе, отсчитывать байты, анврапить, и т.д всякая ..... , когда можно просто изменить ОДИН байт в wrapper.dll, ввести для регистрации абсолютно любой ключ, хоть один символ, и игра будет зарегена!? Нафига всё это нужно? Убить несколько лишних килобайт на харде за ненадобностью? Или ради тренинга? Кто просвятит? Мы легких путей не ищем. ----- Программист SkyNet |
|
Создано: 02 марта 2009 22:23 · Личное сообщение · #30 |
|
Создано: 02 марта 2009 22:38 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 15 . 16 . >> |
eXeL@B —› Крэки, обсуждения —› Взлом Alawar игр (отучим от триала) |