All in по фану. Як розібрати, змінити і зібрати назад мобільну гру на Unity

  1. Зміст статті Розробники ігор із задоволенням користуються тими зручностями, що їм надає движок Unity,...
  2. Перші кроки
  3. Починаємо веселощі в iOS
  4. INFO
  5. Продовження доступно тільки учасникам
  6. Варіант 2. Відкрий один матеріал

Зміст статті

Розробники ігор із задоволенням користуються тими зручностями, що їм надає движок Unity, але, як з'ясувалося, він настільки ж зручний і для будь-якого охочого розкрити ці ігри. Для прикладу я візьму Poker World і покажу на ній, як можна не тільки міняти параметри, але і влізти в саму логіку, переінакшити все на свій лад і перепакувати APK. Заодно зберемо невеликий набір утиліт, який допоможе в роботі з мобільним софтом.

Заодно зберемо невеликий набір утиліт, який допоможе в роботі з мобільним софтом

INFO

Всі маніпуляції з додатком робилися виключно в дослідницьких цілях і не переслідують фінансової вигоди в будь-якому вигляді.

Робота роботою, а відпочивати теж потрібно. Людина я не азартна, але карти залишати люблю. Нещодавно я помітив офлайнових додаток для гри в покер під назвою Poker World. У нього аскетичний інтерфейс, мінімальний набір функцій, але є майже все, що мені потрібно. Напружував тільки підвищений інтерес розробників до Донату. Тому з кожною роздачею дослідницька жилка напружувалася і таки не витримала. Я взявся за клавіатуру з твердим наміром роздобути собі трохи віртуальних грошенят.

Перші кроки

Щоб почати вівісекцію додатки, нам знадобиться невеликий стенд. В першу чергу варто поставити нормальний емулятор Android. Раніше я використовував Andy, але тепер він зкурвився і навіть почав пхати Майнер в свої дистрибутиви. Мені в терміновому порядку довелося шукати заміну. Моя основна ОС - Windows, і тому все пошуки були спрямовані на дистрибутиви для цієї платформи. Я перебрав з десяток варіантів з топа видачі Google, і всі вони, культурно висловлюючись, залишали бажати кращого. Однак мої молитви були почуті, і я натрапив на MEmu . На момент написання статті остання версія була 5.5.1. Тут є все, що тобі може знадобитися. Створювати можна віртуальні машини Android версій 4.4 і 5.1, а також підтримується емуляція декількох моделей пристроїв.

1, а також підтримується емуляція декількох моделей пристроїв

Налаштування емулятора MEmu 5.5.1

Також тут присутні різні приємні фішки типу емуляції камери, спуфинга GPS, мак-адреси і стільникового оператора, і, звичайно ж, є підтримка тривимірної графіки, тобто можливість запускати гри.

Що дуже важливо, MEmu підтримує установку додатків з файлів APK і, о боги, в ньому є звичайні налаштування мережевого підключення Android. Це дозволяє легко налаштувати пристрій на роботу через проксі типу Burp і перехоплювати трафік. Ти здивуєшся, але частина емуляторів не підтримувала роботу через проксі і не мала стандартних мережевих налаштувань.

Ти здивуєшся, але частина емуляторів не підтримувала роботу через проксі і не мала стандартних мережевих налаштувань

Головний екран емулятора MEmu після запуску

Загалом, поки у мене не виникало претензій до MEmu. Якщо ти знаєш про більш гідних варіантах, не соромся і пиши про них в коментарях.

Ще нам знадобиться APK Studio , Щоб мати можливість зручно розпаковувати, збирати заново і підписувати пакети. Для підпису пакетів до нього буде потрібно завантажити uber-apk-signer і покласти в директорію C: \ Users \ <імя_юзера> \. apkstudio \ vendor, попередньо перейменувавши в uber-apk-signer.jar. Також можеш оновити apktool до останньої версії і скопіювати в ту ж папку.

Також можеш оновити apktool до останньої версії і скопіювати в ту ж папку

Головне вікно утиліти APK Studio

І звичайно ж, сам додаток. його можна завантажити з Play Market і App Store , Але нам же потрібен сам дистрибутив. Тут на допомогу приходять сайти - агрегатори додатків. Такого роду сервіси легко гугл по запиту apk download. Я, наприклад, зупинився на https://apkpure.com/ , Де крім поточної версії програми можна завантажити і попередні (іноді буває корисно).

Переходимо по посиланню і викачуємо нашого піддослідного. На момент написання статті остання версія програми - 1.3.5.

Тепер можна встановити скачаний apk в емуляторі. Для цього достатньо перетягнути його на вікно з запущеним MEmu - практично в кращих традиціях macOS.

Завантаження гри Poker World 1.3.5 в емуляторі

На цьому етапі базові приготування закінчені. Про решту корисних штуках і утиліти я розповім в процесі препарування додатки.

Починаємо веселощі в iOS

Так вийшло, що грати я почав на айфоне. І десь на третьому рівні грошей початок катастрофічно не вистачати. Апарат був без джейлбрейка, і робити мені його зовсім не хотілося, тому я почав шукати баги в логіці самого додатка. Такі, щоб можна було провернути, що не закопуючи в його нетрі.

Парочку таких я і виявив. У грі є можливість раз о четвертій годині крутити однорукого бандита, з якого тобі рандомно випадають всякі ништяки. Їх в грі всього два види - це гроші і квитки. І ті й інші потрібні для участі в турнірах. Так ось в місцевому аналогу тоталізатора можна виграти невелику кількість грошей або один квиток. Кількість грошей, які ти можеш зрубати, залежить від рівня твого персонажа. Кожні кілька рівнів суми виграшу в цій рулетці подвоюються. На найпершому вони становлять від 400 до 2000 доларів.

Своєрідний однорукий бандит в Poker World

Про квиток і 2000 баксів можна забути, за місяць гри і тисячі кручений цієї рулетки жодного разу нічого подібного мені не випало. Цікаво буде поглянути на алгоритм. 🙂

Проте через п'ять таких спинив ти отримуєш можливість зробити джекпот-спин, в якому все виграші помножені на три і, відповідно, можна урвати аж три квитка.

Проте через п'ять таких спинив ти отримуєш можливість зробити джекпот-спин, в якому все виграші помножені на три і, відповідно, можна урвати аж три квитка

Еволюція спинив в Poker World

Баг полягав в тому, що час до наступного спина вважалося від встановленої в системі дати. Тому досить просто згорнути програму, перевести годинник на чотири години вперед, розгорнути його і знову крутити барабан. Так можна робити до нескінченності.

Щоб нескінченно не перекладати час в майбутнє, можна зробити так:

  • звертаємо додаток, перебуваючи на екрані з таблицею спинив і таймером до наступного;
  • переводимо годинник на чотири години вперед;
  • розгортаємо, бачимо, що з'явилася кнопка Spin Now. Натискати її не потрібно;
  • звертаємо;
  • переводимо час на чотири години тому;
  • знову розгортаємо і тепер уже натискаємо кнопку.

Я проводив таку процедуру після кожного джекпот-спина. Це дає можливість не йти далеко в майбутнє, так як від системного часу багато чого залежить. Спрацювання алертів, подій в календарі та інше.

Взагалі, я сильно здивувався тому, які проблеми може викликати зміну дати на пристрої з iOS. Наприклад, після того як я виставив 2030 мене разлогініл iCloud і відмовлявся пускати назад з невідомої помилкою. Я вже було подумав, що мій акаунт заблокували за подорожі в часі. Повторно авторизуватись вдалося тільки після перезавантаження девайса.

INFO

Два роки тому в iOS знайшли баг : Пристрій окірпічівалось, якщо поставити дату на 1970 роки. Можна припустити, що від системної дати багато що залежить.

До того ж сама зміна дати незручна - щоб змінити рік, потрібно прокрутити всі 365 днів. Ось і сиди, вози пальцем як божевільний.

Крім безкоштовних спинив, є ще ігри без вкладень, які теж доступні кожні чотири години. У ланцюжку - п'ять ігор, в кожній ти можеш виграти певну суму, причому чим далі по ланцюжку ти проходиш, тим більше куш. Приз за виграш в останній - один квиток.

Приз за виграш в останній - один квиток

Еволюція безкоштовних ігор в Poker World

Прискорити можна точно таким же способом - зміна системного часу. До слова сказати, цей стандартний фінт з переведенням годинників ще багато де прокатує, не соромся і чекай в тих додатках, де пропонують чогось почекати. 🙂

Але це все квіточки. У мене завалявся старий джейлбрейкнутих айфон, а це значить, що настав час зазирнути глибше в надра гри і подивитися, що там діється. Запускаю утиліту Filza і дивлюся, де розташовуються файли програми. У мене це / path. Трохи покопавшись, я виявив цікавий файл com.youdagames.pokerworld.plist.

plist

Цікавий файл з настройками гри Poker World

Сам файловий менеджер Filza дозволяє відкривати, редагувати і зберігати файли plist. У ньому розташовуються різні настройки, які стосуються гри в цілому і поточного користувача зокрема. Мій погляд зачепився за парочку цікавих іменованих змінних: UserChips і UserTickets. І так, вони означають саме те, що ти подумав. Це кількість твоїх грошей (фішок) та квитків. Я поміняв значення на потрібні і запустив гру.

Редагування кількості грошей і квитків у гравця в Poker World
Редагування кількості грошей і квитків у гравця в Poker World   Додали собі фішок і квитків Додали собі фішок і квитків

І вуаля! Віртуальний мільйонер. Крім цього, у файлі знаходиться купа цікавих параметрів - таких як поточний рівень гравця, його позиція в десятці лідерів, які рівні вже пройдені, ліміти столів та інше. Якщо буде цікаво, то можеш поекспериментувати на дозвіллі, а я переходжу до версії додатка для Android і більш захоплюючим речей.

Продовження доступно тільки учасникам

Варіант 1. Приєднайся до товариства «Xakep.ru», щоб читати всі матеріали на сайті

Членство в співтоваристві протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалами «Хакера», збільшить особисту накопичувальну знижку і дозволить накопичувати професійний рейтинг Xakep Score! Детальніше

Варіант 2. Відкрий один матеріал

Зацікавила стаття, але немає можливості стати членом клубу «Xakep.ru»? Тоді цей варіант для тебе! Зверни увагу: цей спосіб підходить тільки для статей, опублікованих більше двох місяців тому.


Ru»?