Сейчас на форуме: vsv1, NIKOLA, r0lka, johnniewalker (+4 невидимых) |
eXeL@B —› Крэки, обсуждения —› Взлом Alawar игр (отучим от триала) |
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 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. Я не знаю сколько продержится эта защита после опубликования данного минитутора пользуйтесь пока. |
|
Создано: 28 июля 2009 15:23 · Поправил: SER[G]ANT · Личное сообщение · #2 Serrrgio пишет: SER[G]ANT, ха, твой метод сработал на 3-й ферме а я этот код вставлял в поле для ключа (и с 1 пробелом и с 2-мя), но программа говорила что код неверен как так? Дело в том, что для регистрации игры в самой программе нужно ни только знать символы в ключе, но еще и знать как он выглядит (сколько строк, сколько и какие символы в каждой строке) так что проще создать файл реестра Code:
и 1 кликом зарегать игру. |
|
Создано: 28 июля 2009 15:39 · Личное сообщение · #3 Vovan666 пишет: короткие серийники и раньше были, только никто их не покупал при вводе короткого серийника в реестр забивается длинный и всё... Длинные не подходят пока только вроде на 2ух играх. зы Короткие я вчера закейгенил там простейший xor. rapidshare.com/files/260886101/alsmskg20.fixed.rar А ну ясно, я точно не покупал. Спасибо за ответы, Vovan666 и SER[G]ANT. К счастью, хоть кейген делать не придется, раз Vovan666 уже смастерил. ----- Программист SkyNet |
|
Создано: 01 августа 2009 10:36 · Личное сообщение · #4 Кейген у меня не подошкл ни к одной игре, которые я скачивал сегодня с алавара. Способ от сержанта сработал успешно. Единственный вопрос, я так понял этот ключ зашит в сам ЕХЕ-шник, и будет работать на любой машине? А второе, всегда при запуске игры будет окно с благодарностями о покупке игры, его никак не убрать? ----- The blood swap.... |
|
Создано: 01 августа 2009 10:49 · Личное сообщение · #5 |
|
Создано: 01 августа 2009 11:22 · Личное сообщение · #6 Johnson Finger пишет: alawar-crack.info гы... сайт на 60% состоит из моих кряков... Johnson Finger пишет: Единственный вопрос, я так понял этот ключ зашит в сам ЕХЕ-шник, и будет работать на любой машине? и даже на зарубежных играх(с сайта alawar.com,alawar.pl). Johnson Finger пишет: Кейген у меня не подошкл ни к одной игре, которые я скачивал сегодня с алавара. Небось кейген качал из поста FrenFolio, в моем посте обновленная версия, где вроде пофиксен баг с длинной смс кода. |
|
Создано: 01 августа 2009 11:46 · Личное сообщение · #7 |
|
Создано: 01 августа 2009 19:28 · Поправил: SER[G]ANT · Личное сообщение · #8 |
|
Создано: 01 августа 2009 20:49 · Личное сообщение · #9 |
|
Создано: 01 августа 2009 21:47 · Личное сообщение · #10 |
|
Создано: 02 августа 2009 00:41 · Личное сообщение · #11 |
|
Создано: 02 августа 2009 08:59 · Личное сообщение · #12 FrenFolio писал Сейчас на алаваре враппер снимается следующим образом: также как и раньше дампишь файл лаунча игры (накрытый аспром), ищешь в ресурсах ep игры (сейчас он не переписывается) и рядом будет байт, который нужно восстановить на ep. Вот и все отличие, в этом одном байте, который нужно переписать на ep в оригинальном файле *wrp.exe. Попробывал сделать как написано, может делаю что не так? Пример - Веселая ферма.Печем пиццу 00014EF8 32 2E 31 00 00 00 00 00 00 00 00 00 00 00 00 00 2.1••••••••••••• 00014F08 00 00 00 00 00 00 00 00 00 00 00 00 00 10 00 00 •••••••••••••••• 00014F18 00 60 25 00 00 00 40 00 40 83 1D 00 6A 00 02 00 •`%•••@•@ѓ••j••• 00014F28 1E 00 01 41 6C 61 77 61 72 41 72 63 61 64 65 52 •••AlawarArcadeR 00014F38 75 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 u••••••••••••••• 00014F48 00 00 00 46 61 72 6D 46 72 65 6E 7A 79 50 69 7A •••FarmFrenzyPiz 00014F58 7A 61 50 61 72 74 79 2E 77 72 70 2E 65 78 65 00 zaParty.wrp.exe• 00014F68 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 •••••••••••••••• 00014F78 00 00 00 00 38 18 00 00 72 65 73 3A 2F 2F 46 61 ••••8•••res://Fa 00014F88 72 6D 46 72 65 6E 7A 79 50 69 7A 7A 61 50 61 72 rmFrenzyPizzaPar 00014F98 74 79 2E 65 78 65 00 00 00 00 00 00 00 00 00 00 ty.exe•••••••••• 00 60 25 00 > 00256000 > ошибка 00 00 40 00 > 00400000 > ошибка 40 83 1D 00 > 001D8340 > EntryPoint 6A 00 02 00 > 0002006A > нечего не происходит Какое значение нужно восстановить в ер - 00,6A,02,40,60,25 или 10 а может С3. Менял ер и пробывал запустить FarmFrenzyPizzaParty.wrp.exe, вот мои результаты: 001D8300 > нечего не происходит;001D0040 > нечего не происходит;00008340 > ошибка 001D836A > ошибка;001D6A40 > ошибка;006A8340 > ошибка 001D8302 > ошибка;001D0240 > ошибка;00028340 > ошибка 001D4040 > ошибка;00400240 > ошибка 001D8360 > ошибка;001D6040 > нечего не происходит;00608340 > ошибка 001D8325 > нечего не происходит;001D2540 > ошибка;00258340 > ошибка 001D8310 > ошибка;001D1040 > ошибка;00108340 > нечего не происходит 001D83С3 > ошибка;001DС340 > нечего не происходит;00С38340 > ошибка И почему этот метод непашет, или я нетот байт меняю??? |
|
Создано: 02 августа 2009 10:34 · Личное сообщение · #13 misterix пишет: Попробывал сделать как написано, может делаю что не так? Пример - Веселая ферма.Печем пиццу Здрасьте, решение есть. Вот оно: Vovan666 пишет: Чтож так весь рунет с этой долбаной фермой переполошился, в отладчике проблему найти 5сек. ищи во "взломанном" файле любым хекс-редактором юникодовскую строку wrapper.dll после чего замени ее на какую-нибудь user32.dll или kernel32.dll и всё. Простенькая проверка, есть ли в импорте файла который запустил FarmFrenzy3.wrp файл wrapper.dll, т.к. после "взлома" игру запускает explorer.exe, разумеется у него в табличке нету нужного файла. Но долбаная ферма, - это типа топовая игра у них, там они стараются извратиться именно на ней. Хотя хз конечно, может и на остальных играх так будет. Но такое крутое изменение защиты обходится на раз-два. Можно на крайняк пропатчить тупо сам exe, или же враппер сам патчить, или даже триал продлить. Вариантов море. ----- Программист SkyNet |
|
Создано: 02 августа 2009 11:22 · Личное сообщение · #14 |
|
Создано: 02 августа 2009 21:27 · Личное сообщение · #15 Vovan666 пишет: 00 00 40 00=00400000=image base 40 83 1D 00=001D8340=EP 6A=байт для замены image base+EP=005DD6340=VA OEP=Адрес по которому надо C3 заменить на 6A 005DD6340 - такого адреса просто нет 003С5000 - последний адрес в FarmFrenzyPizzaParty.wrp.exe (так показал - Hex Workshop) а проба заменить упоминание wrapper.dll на user32.dll или kernel32.dll в FarmFrenzyPizzaParty.exe просто привело к краху файла библиотека wrapper.dll в файле FarmFrenzyPizzaParty.wrp.exe - неупоминается вовсе |
|
Создано: 02 августа 2009 21:58 · Личное сообщение · #16 |
|
Создано: 05 августа 2009 10:25 · Личное сообщение · #17 Появился небольшой вопрос, скорее наблюдение, после взлома некоторых игр от алавара, программа запускается показывает логотипы контор (создатели) и подвисает, после нажатия пробела или ввода просто слетает. Чтобы было понятнее, я программу (инсталяционный файл NSIS) в начале расспаковываю 7zip'ом, переделываю exe'шники, тестирую (запускаю и ищу хвосты которые она создает), затем создаю свой инсталлятор (NSIS) и вуаля проект готов. Так вот на моменте "тестирования" происходит такая фигня. Таких программ уже несколько: "Шоу домашних животных", "Фишдом H2O. Подводная одиссея" и мне кажется что еще появятся другие программы. Подскажите пожалуйста как разрулить эту проблему |
|
Создано: 11 августа 2009 19:28 · Поправил: Neo32 · Личное сообщение · #18 |
|
Создано: 11 августа 2009 23:58 · Личное сообщение · #19 Если внимательно предыдущие страницы почитать, всё уже написали, понятно, что есть куча способов сломать, и об основных написали выше: 1) Найти правильный код в ресурсах сдампленной запускалки и внести этот код в реестр. 2) Если триал не истёк, "подсмотреть" отладчиком, по какому ВИРТУАЛЬНОМУ адресу происходит запись в память (поставить бряк на WriteProcessMemory). По этому адресу и пропатчить программу. И не удивляться, что адрес виртуальный 5D1234 будет соответствовать смещению в файле, скажем 1D1234. Если бряк не ставится/не срабатывает - попробовать поставить его не в самое начало WriteProcessMemory, а куда-нибудь поглубже. 3) В конце концов можно догадаться, какой байт куда записать. Т.е. заменить байт <C3> в точке входа на что-то более уместное. Скажем, если слежующая инструкция <mov ebp,esp> (8Bh ECh), то логично записать байт с кодом 55h <push ebp>, если следующий за C3 байт равен 60h, то C3 можно попробовать заменить на 6A с тем, чтобы получилось <push 60h> (6Ah 60h), если же там что-то непонятное выходит, то можно попробовать поставить байт E8h, чтобы получился call. |
|
Создано: 18 августа 2009 07:13 · Личное сообщение · #20 |
|
Создано: 19 августа 2009 09:46 · Личное сообщение · #21 |
|
Создано: 27 декабря 2009 16:03 · Личное сообщение · #22 Промазал! В общем возник вопрос по взлому. Попалось мненесколько игр (Легенды. Тайна старинного сундука и др.) в которых байты, выдранные из дампа меняются не в EP а в FileOffset, который легко вычисляет exeinfoPE, или даже вьювер в тотал коммандере. Вот мне стало интересно, как можно вручную вычислить этот адрес? |
|
Создано: 27 декабря 2009 16:30 · Личное сообщение · #23 |
|
Создано: 27 декабря 2009 16:33 · Личное сообщение · #24 |
|
Создано: 27 декабря 2009 16:53 · Поправил: foxmail · Личное сообщение · #25 Vovan666 пишет: там надо пересчитывать адреса и размеры всех секций Можно с этого места по подробнее. "Вручную" это я немного перегнулПри помощи утилиты. В любом HEX редакторе найти ту же комбинацию c3c390 найти проблемы не составит, просто хочется автоматизировать этот процесс именно вычислением этого "Entry Point RAW" (в тотале) или "FileOffset" что одно и тоже |
|
Создано: 27 декабря 2009 17:29 · Личное сообщение · #26 |
|
Создано: 10 июня 2010 09:47 · Личное сообщение · #27 Новая версия поделия, на этот раз более умная и, надеюсь, финальная. Должна работать на всех видах вропера от Алавара. 8c08_09.06.2010_CRACKLAB.rU.tgz - reWrapperII.zip |
|
Создано: 10 июня 2010 10:51 · Личное сообщение · #28 |
|
Создано: 10 июня 2010 11:42 · Поправил: Bizonozubr · Личное сообщение · #29 |
|
Создано: 11 июня 2010 01:09 · Личное сообщение · #30 |
|
Создано: 11 июня 2010 15:16 · Личное сообщение · #31 Может пригодится All ALAWAR Games Activator: 1 Farm Frenzy 3: Russian Roulette 2 Grace's Quest: To Catch An Art Thief 3 Farm Frenzy 3 4 Farm Frenzy 2 6 The Treasures Of Montezuma 2 7 Royal Envoy 8 Farm Frenzy 3: American Pie 9 Farm Frenzy 3: Ice Age 10 Magic Encyclopedia 3: Illusions 11 Journey of Hope 12 Fishdom H2O: Hidden Odyssey 13 Farm Frenzy 14 Farm Frenzy - Pizza Party! 15 Hotel Mogul 16 Vacation Mogul 17 Special Enquiry Detail: The Hand that Feeds 18 Mahjongg Artifacts 2 19 The Treasures Of Montezuma 20 Virtual Farm 21 BeachBlox 22 Settlement: Colossus 23 Magic Encyclopedia - Moon Light 24 Heroes of Hellas 2: Olympia 25 Campfire Legends: The Hookman 26 The Treasures Of Mystery Island 27 Snowy: The Bear's Adventures 28 Smash Frenzy 3 29 Smash Frenzy 4 30 Arctic Quest 2 31 Hamlet 32 Pyramid Runner 33 Vampire Saga - Pandora's Box 34 Dragon Empire 35 The Curse Of Montezuma 36 Snowy: Treasure Hunter 2 37 Mall-A-Palooza 38 Oriental Dreams 39 Azgard Defence 40 Beach Party Craze 41 Strike Ball 3 42 Alice's Magical Mahjong 43 Carl the Caveman 44 Turtix 45 BugBits 46 Infinite Jigsaw Puzzle 47 Mystery Cruise 48 Wizard Land 49 1001 Nights: The Adventures Of Sindbad 50 Mahjongg Artifacts |
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . >> |
eXeL@B —› Крэки, обсуждения —› Взлом Alawar игр (отучим от триала) |