Сейчас на форуме: 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. Я не знаю сколько продержится эта защита после опубликования данного минитутора пользуйтесь пока. |
|
Создано: 22 ноября 2006 07:26 · Личное сообщение · #2 |
|
Создано: 22 ноября 2006 14:32 · Личное сообщение · #3 Ну я благодарен PE KILL за его тулзы (эх когда ж он напишет тулзы к протам , про которые я постил ранее ...:s2 Хотя и снимаю сам практически все руками. Но тулза просто автоматизирует процесс - экономит время. Еще про оленев - девушки со многих форумов обучились извлекать Ехешники и благодарят автора !!! Так что , вот она слава. Ну я конечно, немного помог, заставив обращать внимание на того, кто пишет тулзы, а не перекладывает их... Микрооффтоп закончил ! Теперь по делу конкретно. Появилась новая защита в виде 2 х ЕхЕ - один под УПХ, другой под АСПР 1.23 Все прекрасно распаковывается, но не ломается... Хз в чем дело. Вот Вам и адресок - mirror3.alawar.com/Thomas2Rus.exe Прошу поглядеть и подсказать, в чем там собака порылась ? Не могу никак подход к взлому найти, хотя крек уже есть. Унврап ессно не катит... |
|
Создано: 22 ноября 2006 20:28 · Личное сообщение · #4 |
|
Создано: 22 ноября 2006 21:20 · Поправил: PE_Kill · Личное сообщение · #5 |
|
Создано: 23 ноября 2006 04:51 · Личное сообщение · #6 |
|
Создано: 23 ноября 2006 06:39 · Личное сообщение · #7 |
|
Создано: 23 ноября 2006 19:11 · Личное сообщение · #8 |
|
Создано: 24 ноября 2006 10:04 · Личное сообщение · #9 Vovan666 пишет: Уже есть!!! Это старая защита. Таких игр я штук 5 встречал, там просто второй файл запускается с командной строки которую посылает первый файл, и какой параметр передан от этого и идет зарегистрирована игра или нет. По параметрам - можешь подробнее написать, с примером ? Чего то не смог догнать, когда ЕхЕшки ковырял. |
|
Создано: 24 ноября 2006 21:48 · Личное сообщение · #10 Soft_Ice Если запустить game.exe с параметром "3300", то игра запустится как фулл, но если на этом остановится, то мы не сможем пользоваться лаунчером (Paclands2.exe), который позволяет выставить разрешение. Чтобы лаунчер был фулл, нужно пропатчить в нем один байт и тогда не надо мутить с параметрами, он будет запускать game.exe с параметром "3300":
----- Yann Tiersen best and do not fuck |
|
Создано: 25 ноября 2006 09:31 · Личное сообщение · #11 |
|
Создано: 25 ноября 2006 10:09 · Личное сообщение · #12 Soft_Ice пишет: Появилась новая защита в виде 2 х ЕхЕ - один под УПХ, другой под АСПР 1.23 Все прекрасно распаковывается, но не ломается... Хз в чем дело. сломал её ещё в ноябре 2005: Даже CRACKME бывают сложнее...Итак,как обычно находим какую-нибудь "дырку": * Possible StringData Ref from Code Obj ->"Unregistered version" Далее: :0044FB65 BA9CFB4400 mov edx, 0044FB9C :0044FB6A E83143FBFF call 00403EA0 :0044FB6F C605DC3B450001 mov byte ptr [00453BDC], 01 :0044FB76 E8BDFFFFFF call 0044FB38 :0044FB7B 33C0 xor eax, eax Cуём в byte ptr [00453BDC] ноль и всё работает!!! |
|
Создано: 25 ноября 2006 10:13 · Личное сообщение · #13 |
|
Создано: 26 ноября 2006 14:08 · Личное сообщение · #14 |
|
Создано: 26 ноября 2006 19:15 · Личное сообщение · #15 |
|
Создано: 26 ноября 2006 20:23 · Личное сообщение · #16 |
|
Создано: 27 ноября 2006 01:17 · Поправил: PE_Kill · Личное сообщение · #17 |
|
Создано: 27 ноября 2006 07:17 · Личное сообщение · #18 |
|
Создано: 27 ноября 2006 07:22 · Личное сообщение · #19 |
|
Создано: 27 ноября 2006 08:11 · Личное сообщение · #20 |
|
Создано: 28 ноября 2006 00:54 · Личное сообщение · #21 SharewareBreaker 1) SharewareBreaker пишет: а это смешно,я бы сказал для новичков защита И тем не менее методу ты не объяснил 2) SharewareBreaker пишет: попробуй лучше ломануть "Машину Сокровищ" или другую игру,где используется шифрование Вот это точно LOL. Если бы ты ломал Thomas2Rus.exe то знал бы, что в ней есть покриптованый код, именно поэтому я поменял 1 на 0, т.к. код, который это делает пошифрован и расшифровывается по ключу. Кстати странно называть такую замену: SharewareBreaker пишет: находим какую-нибудь "дырку" Ну только если цифра "0" на дырку похожа 3) Весь остальной флуд будет удаляться... ----- Yann Tiersen best and do not fuck |
|
Создано: 28 ноября 2006 07:49 · Личное сообщение · #22 Nitrogen пишет: подсмотреть идею у PE_Kill, найти другую игру с подобной защитой и выдать за свое? да как два пальца.. пустой треп. я тебе не верю а я не верю что ты свои кейгены сам сделал- скорее стырил исходники у какой-нибудь Phrozen Crew и "выдал за своё" PE_Kill пишет: И тем не менее методу ты не объяснил что здесь не ясно: ищем референс Unregistered и исправляем 01 на 00 Если и такое для вас сложно,стыдно назвать вас даже начинающими "крекерами" PE_Kill пишет: что в ней есть покриптованый код, именно поэтому я поменял 1 на 0, т.к. код, который это делает пошифрован и расшифровывается по ключу да какое здесь криптование к чёртовой матери? защита для полного ламера ИМХО попробуйте сломать что-нибудь посложнее,тогда и поговорим например BVS Solitaire Collection (что не по зубам пасьянсы??? :s6 |
|
Создано: 28 ноября 2006 08:39 · Личное сообщение · #23 |
|
Создано: 28 ноября 2006 10:03 · Личное сообщение · #24 |
|
Создано: 28 ноября 2006 10:08 · Личное сообщение · #25 |
|
Создано: 28 ноября 2006 11:09 · Личное сообщение · #26 |
|
Создано: 28 ноября 2006 11:34 · Личное сообщение · #27 cadet пишет: посмотри, за что PE_Killу спасибо. я тоже я крякнул давно,смотри аттач: 466a_28.11.2006_CRACKLAB.rU.tgz - SB picture.JPG |
|
Создано: 28 ноября 2006 21:06 · Поправил: PE_Kill · Личное сообщение · #28 SharewareBreaker пишет: что здесь не ясно: ищем референс Unregistered и исправляем 01 на 00 PE_Kill пишет: только лечилово про референс на строку не надо устраивать.... SharewareBreaker пишет: попробуйте сломать что-нибудь посложнее,тогда и поговорим например BVS Solitaire Collection (что не по зубам пасьянсы??? LOL, Если что, то я все версии отломал, начиная с 6.0. forum.ru-board.com/topic.cgi?forum=75&bm=1&topic=0592&start=220#lt Всё, инна отсюда. Ara это опять пидар алекс что ли? Кстати скрин эбаута BVS Solitaire Collection у SharewareBreaker поддельный, т.к. имя выравнивается по правой стороне окна, вот так: ----- Yann Tiersen best and do not fuck |
|
Создано: 28 ноября 2006 21:46 · Личное сообщение · #29 |
|
Создано: 28 ноября 2006 23:14 · Личное сообщение · #30 |
|
Создано: 29 ноября 2006 05:00 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 15 . 16 . >> |
eXeL@B —› Крэки, обсуждения —› Взлом Alawar игр (отучим от триала) |