Привет! Несколько дней назад я наткнулся на забавную игра , в которой нужно объезжать препятствия на мотоцикле и получать за это очки, а мы с друзьями начали мерить количество полученных очков и немного увлеклись.
Немного подумав, я решил покопаться в коде игры и добавить небольшой хак на очки.
Итак, вот как разобрать приложение для Windows Phone, что-то в нем изменить и собрать все обратно: Для начала определимся со всем, что нам нужно:
- Разблокированное устройство Windows Phone (эмулятор тоже будет работать, но удовольствия от игры нет).
- Установлен WP7.1 SDK или любую альтернативу установке .
xap на устройство.
- .
NET-отражатель
для декомпиляции/компиляции сборок. - Рефлексил для сохранения сборок
- ВхГ редактировать значения HEX
- Телефон7Маркет скачать .
xap с маркета
Для начала скачайте приложение из маркета с помощью Phone7Market. Находим игру поиском, кликаем правой кнопкой мыши и сохраняем в нужную директорию на диске.
Теперь копируем наш файл .
xap, переименовываем копию в .
zip и распаковываем в папку.
Например, после операций моя папка выглядит примерно так:
Теперь перейдем к самому интересному.
Распакуйте reflexil и скопируйте путь к нему.
Теперь запустите ReShrper и перейдите в Инструменты -> Надстройки.
нажмите Добавить и вставьте путь к Reflexil.Reflector.dll в папку с reflexil. Эта штука нужна в рефлекторе для того, чтобы редактировать и пересобирать сборки.
Открываем в рефлекторе наш ранее распакованный архив.
Быстро пролистав список библиотек, открываем ту, название которой похоже на приложение.
Скорее всего, это основной проект.
Класс сразу бросается в глаза Конфигурация .
Подождите, это класс с базовыми ценностями! Теперь вы можете изменить что-то незначительное, например скорость или вероятность появления автомобилей.
Немного подкорректируем скорость начисления очков, вероятность появления препятствий и количество очков за обход препятствий.
Открытие ВхГ и выберите нашу библиотеку ThreeDMoto.dll .
Немного страшно, но легко понять.
Находим строку, которую будем менять.
Итак, у нас есть значения 0,5, 1, 3, 5. Возвращаемся в HxD и нажимаем поиск.public static readonly float[] TIMESPAN_OF_SHIFT = new float[] { 0.5f, 1f, 3f, 5f };
Будем искать по номеру 3.
Было найдено несколько значений.
Сейчас ищем 5. Их всего 2. Теперь нам нужно найти место, где 3 и 5 находятся рядом:
Большой.
Убеждаемся, что стоят именно нужные цифры и заменяем все 4 на 0,1
Нажмите «Сохранить» и переключитесь на отражатель.
Чтобы убедиться, что мы все сделали правильно.
Удаляем библиотеку из рефлектора и подключаем снова.
Заходим в конфиг и находим нужную строку: public static readonly float[] TIMESPAN_OF_SHIFT = new float[] { 0.1f, 0.1f, 0.1f, 0.1f };
Итак, конструкция изменилась.
Теперь в проводнике перетаскиваем dll на zip и подтверждаем замену.
Переименуйте .
zip в .
xap и загрузите приложение на устройство.
И получаем первую ошибку.
Эта ошибка возникает, поскольку пакет .
xap содержит файл с контрольной суммой приложения.
WMAppPRHeader.xml .
Удаляем файл из архива и пробуем еще раз:
Телефон говорит что-то странное.
Если вдуматься, то такое может возникнуть только из-за редактирования библиотеки без перекомпиляции.
Итак, снова открываем рефлектор с библиотекой и сохраняем нашу библиотеку.
Снова выполняем действие переименования, перетаскиваем и загружаем проект на устройство.
Это сработало.
Теперь ускорение происходит за четверть секунды, а очки умножаются в 4 раза практически мгновенно.
Теперь отредактируем количество очков за обход препятствия и вероятность появления препятствий на дороге.
Замените все на:
Сохраняйте, переименовывайте, копируйте, переименовывайте, загружайте.
Теперь вы легко сможете установить рекорд любого размера.
Итак, подведем итоги
При разработке игр и приложений на Windows Phone разработчикам не следует забывать, что их код можно просмотреть после компиляции.Чтобы усложнить жизнь тем, кто будет это смотреть или редактировать, можно использовать удобные и простые инструменты для обфускации кода и подписи сборок.
Это создаст несколько проблем.
Из-за подписи сборку будет сложнее редактировать, а из-за обфускации будет совершенно непонятно, что редактировать.
Ведь с помощью описанного метода можно не только редактировать безобидные значения, но и удалять триалы из приложений и даже добавлять свои методы и классы и переписывать существующие.
Теги: #windows phone 7 #WP7 #reflector #Разработка для Windows Phone #обратное проектирование
-
Как Распознать Спамера По Электронной Почте
19 Oct, 24 -
Эминем Снова Ссорится С Apple
19 Oct, 24 -
Эволюция Носителей Информации
19 Oct, 24 -
Импорт Виртуальных Машин Hyper-V В Windows 8
19 Oct, 24