читы для зума делюкс
Zuma Deluxe
Данные по игре | ||||||||||||||||||||
| ||||||||||||||||||||
Коды |
Замедлить движение мяча: Если вы застреваете на более высоком уровне, скажем 12-7, и затем только идете несколько строк ниже туда, где это говорит lvl127 и изменение его урегулирование скорости к 0.2 и сохранить. Заметка: не путайте lvl11 линию выше с level11 линией на той же самой странице. Zuma Deluxe → ФайлыZuma Deluxe — увлекательная логическая головоломка с элементами «три в ряд» и видом сверху. Вас ожидает простой и интересный геймплей. Подробнее Таблица для Cheat Engine [1.1.0.0] Zuma DeluxeПроцесс запуска: 2 не понравилось 1 понравилось Если вы хотите облегчить прохождение Zuma Deluxe (Zuma), то можете воспользоваться нашим файловым архивом. Здесь собраны только проверенные и работоспособные файлы для игр, которые можно скачать бесплатно. При скачивании файлов нужно обратить внимание на версию игры, для которой он предназначен. Трейнеры для игр, например, не всегда совместимы со всеми версиями игры, так как разработчики, выпуская обновления, могут менять архитектуру игры и принципы работы тех или иных ее механик. Обычно версия, с которой совместим файл, указывается прямо в его названии. Обратная разработка коммерческой программы: кейген для Zuma DeluxeВступлениеЗдравствуйте, Хабралюди. Часть 1: коварный FlashВ общем, запускаем игру, играем дольше положенного (или сразу же лезем в ветку реестра HKLM/Software/PopCap/Zuma и выставляем нули в ключах TimesExecuted и TimesPlayed) — и вуаля: Отлично, выбираем «Buy Now», закрываем вылезшее окошко браузера с предложением купить игру за жалкие 16.99 евро, и жмём «Enter the Registration Key Manually». Так-с, поле ввода. Уже от чего-то можно плясать. Пробуем ввести какую-нибудь абракадабру, ожидаемо получаем «Please enter a valid key», и идём разбираться, что к чему. Первое, что настораживает при вдумчивом осмотре — наличие в папке, прямо рядом с бинарём игры, двух файлов, намекающих на использование в программе технологии Flash: собственно, Flash.ocx и drm.swf… Видимо, с закрытием браузера можно было повременить. Ладно, открываем этот самый drm.swf — и что же мы видим: Ищем по «RegFailed» и выходим на вот этот блок кода: Вот оно. Правильный ключ имеет в длину 23 символа (больше просто не позволяет ввести само текстовое поле) и заставляет validate_regkey() возвращать True. На то, что в этом же блоке кода происходит инициализация таких «страшных» значений как gRegFailedMessage, можно не обращать внимания, т.к. здесь, вне зависимости от них, из флэш-объекта посредством fscommand() происходит передача данных в родительский процесс. Что ж, центральная проверка — однозначный шедевр. Надо, наверное, запостить это на govnokod.ru, ну да ладно, мы сюда не позубоскалить собрались. Главное, что эта функция дала нам структуру лицензионного ключа: #####-#####-#####-##### Опять забегая вперёд, скажу что набор верных символов внутри самой программы будет несколько сокращён. Но пока что нам без разницы. Запускаем OllyDBG и загружаем в него нашу подопытную. Запускаем на выполнение (F9) и дожидаемся момента прорисовки главного окна. Ставим на неё точку останова по чтению (выделение → Shift+F3). Далее, в окне проверки, идём по ссылке внизу «Already purchased this game?» → «Enter the Registration Key Manually», и вводим в поле для ключа любую алфавитно-цифровую белиберду, разделённую дефисами на 4 блока по 5 символов. Жмём «Register». Часть 2: we need to go deeperВот мы и попали, наконец, внутрь алгоритма проверки. Идём в список контрольных точек на память и удаляем 0x4417D0 (Alt+Y → Del), выполняемся (Ctrl+F9) до конца функции, т.к. там ничего интересного для нас нет, только цикл сравнения, далее возвращаемся в вызывавшую функцию (F8), и видим там проверку возвращённого результата. Опять пропускаем всё до конца функции и возвращаемся в вызывавшую: Ага! А вот теперь мы в сердце анализатора лицензионного ключа. Чтобы не забыть это место, поставим (F2) контрольную точку на 0x04066CA и осмотримся вокруг. Чуть ниже (0x406757 и 0x4067A8) видны вызовы функций с очень интересными строковыми параметрами «RegSucceeded» и «RegFailed». А повыше (0x406748) находится ветвление, которое передаёт управление в нужную функцию. Это ветвление завязано на сравнение (0x40672D) регистров AL и BL. Похоже, что функция 0x404260, вызываемая ещё двумя командами ранее — это как раз то, что мы искали, т.е. Самая Важная Функция Проверки. Сначала, проверим свою догадку: изменим сравнение так, чтобы оно оказывалось верным при некорректных исходных данных. Наведём выделение на 0x406748 и нажмём пробел. Откроется окно «Assemble». Заменим переход по равенству, JE, на переход по неравенству — JNE. Запустим на выполнение (F9)… Ура, первый бастион взят! Сейчас наша задача — понять, как себя ведут внутри этой функции регистры AL и BL, и где именно расположен кусок кода, ответственный за их равенство либо неравенство. Как видите, содержимое регистра AL на протяжении практически всего «хвоста» хранится в BL, и только перед самым выходом копируется обратно, с дальнейшим восстановлением исходного значения EBX из стэка. У этой функции всего два возможных выходных значения — 0 и 1. Первое генерируется, когда строка байт, указатель на структуру с которой передан как параметр функции, не совпадает со строкой, чей указатель лежит по адресу [ECX + 8]. Второе же (то самое, которое нам нужно) — при обратной ситуации, т.е. когда строки идентичны. Часть 3: MD5, RSA и все-все-всеВернёмся в родительскую функцию и взглянем, откуда берутся значения из [ECX + 8] и [ARG.1 + 8]. Теперь перезапустим программу и остановимся на входе в нашу главную функцию проверки (0x404260). Поставим туда контрольную точку и начнём трассировать функцию построчно (F8), следя за состоянием двух наших аппаратных точек останова. Трассировка показывает, что до строки 0x404546 оба значения остаются неизменными. А вот дальше уже любопытнее. Функция, непосредственно вызываемая из 0x404546, является «трамплином» для запуска функции 0x41E320, так что в ней нет ничего интересного. Ставим точку останова на 0x41E320 и жмём F9. До заветного момента, когда можно сказать, что реверс произведён, осталась одна функция, 0x41E100 (вызов из 0x40458C). Ну тут уж я не буду вас мучать прочтением и расшифровкой ассемблерных листингов, поскольку один хороший товарищ, к тому моменту как я только начал её разбирать, подкинул мне очень вовремя утёкший в Сеть кусок исходника PopCap`овского фреймворка, содержащий в себе пусть не реализацию указанной функции, но хотя бы её название. В общем, барабанная дробь… та функция, на которую мы сейчас собираемся пойти в лобовую атаку, называется aSignature.ModPow(e, n). Также, рекомендую обратить внимание на сами e и n: или, в ассемблерном представлении, Как можно догадаться из названия, ModPow() означает возведение в степень по модулю. окончательно проясняет ситуацию: алгоритм, с которым мы имеем дело — это RSA. Часть 4: генератор ключейВ общем, исходя из вышесказанного, код, генерирующий эту пакость, я решил в кейген не копипастить, а банально красть уже готовую строку из памяти игры посредством ReadProcessMemory(). В качестве небольшого хулиганства, также я добавил возможность записывать в строку имени что-то своё (с помощью WriteProcessMemory(), как несложно догадаться). Но, к сожалению, работает (т.е. сохраняет валидность регистрации) такой трюк только на WINE, но не на «реальной» Windows. В остальном — прошу любить и жаловать: Zuma keygen, proof-of-concept. Кейген проверялся не только на той версии Zuma, про которую идёт речь в статье, но также ещё и на других, более ранних или поздних (я не разбирался). Несмотря на то, что адреса с именем пользователя разнились, сам лицензионный ключ подходил к ним всем, что свидетельствует о неизменности алгоритма аж с 2003 года. Послесловие и использованные ссылкиP.S. Если кто-то может посоветовать более надёжный файлообменник, с которого файлы не удаляются через 30 дней простоя — буду крайне признателен. P.P.S. Каково же было моё удивление, когда уже после взлома я обнаружил, что Zuma.exe из обсуждаемого пакета — это просто обёртка, архив, который по лицензионному ключу разархивирует в свою же папку реальный бинарь с Zuma, названный popcapgame1.exe… [UPDATE:] перенёс картинки на Habrastorage. Читы для зума делюкс
Here you will find the best rated casino online and a list of excellent gambling games!
The best casino bonus website is Onlinecasinoinformatie Nederland. Stay updated with the best new online casinos at www.newcasinosites.me.uk today. Selamat datang pkv games qq online no 1 indonesia (to unpack archives use: WinRar) if you cannot download trainer then go to Chrome/Firefox’s settings, specifically to the Privacy settings and simply unchecking the «Enable phishing and malware protection» option.
|