All in по фану. Як розібрати, змінити і зібрати назад мобільну гру на Unity
- Зміст статті Розробники ігор із задоволенням користуються тими зручностями, що їм надає движок Unity,...
- Перші кроки
- Починаємо веселощі в iOS
- INFO
- Продовження доступно тільки учасникам
- Варіант 2. Відкрий один матеріал
Зміст статті
Розробники ігор із задоволенням користуються тими зручностями, що їм надає движок Unity, але, як з'ясувалося, він настільки ж зручний і для будь-якого охочого розкрити ці ігри. Для прикладу я візьму Poker World і покажу на ній, як можна не тільки міняти параметри, але і влізти в саму логіку, переінакшити все на свій лад і перепакувати APK. Заодно зберемо невеликий набір утиліт, який допоможе в роботі з мобільним софтом.
INFO
Всі маніпуляції з додатком робилися виключно в дослідницьких цілях і не переслідують фінансової вигоди в будь-якому вигляді.
Робота роботою, а відпочивати теж потрібно. Людина я не азартна, але карти залишати люблю. Нещодавно я помітив офлайнових додаток для гри в покер під назвою Poker World. У нього аскетичний інтерфейс, мінімальний набір функцій, але є майже все, що мені потрібно. Напружував тільки підвищений інтерес розробників до Донату. Тому з кожною роздачею дослідницька жилка напружувалася і таки не витримала. Я взявся за клавіатуру з твердим наміром роздобути собі трохи віртуальних грошенят.
Перші кроки
Щоб почати вівісекцію додатки, нам знадобиться невеликий стенд. В першу чергу варто поставити нормальний емулятор Android. Раніше я використовував Andy, але тепер він зкурвився і навіть почав пхати Майнер в свої дистрибутиви. Мені в терміновому порядку довелося шукати заміну. Моя основна ОС - Windows, і тому все пошуки були спрямовані на дистрибутиви для цієї платформи. Я перебрав з десяток варіантів з топа видачі Google, і всі вони, культурно висловлюючись, залишали бажати кращого. Однак мої молитви були почуті, і я натрапив на MEmu . На момент написання статті остання версія була 5.5.1. Тут є все, що тобі може знадобитися. Створювати можна віртуальні машини Android версій 4.4 і 5.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 до останньої версії і скопіювати в ту ж папку.
Головне вікно утиліти 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.
Цікавий файл з настройками гри Poker World
Сам файловий менеджер Filza дозволяє відкривати, редагувати і зберігати файли plist. У ньому розташовуються різні настройки, які стосуються гри в цілому і поточного користувача зокрема. Мій погляд зачепився за парочку цікавих іменованих змінних: UserChips і UserTickets. І так, вони означають саме те, що ти подумав. Це кількість твоїх грошей (фішок) та квитків. Я поміняв значення на потрібні і запустив гру.
Редагування кількості грошей і квитків у гравця в Poker World
Додали собі фішок і квитків
І вуаля! Віртуальний мільйонер. Крім цього, у файлі знаходиться купа цікавих параметрів - таких як поточний рівень гравця, його позиція в десятці лідерів, які рівні вже пройдені, ліміти столів та інше. Якщо буде цікаво, то можеш поекспериментувати на дозвіллі, а я переходжу до версії додатка для Android і більш захоплюючим речей.
Продовження доступно тільки учасникам
Варіант 1. Приєднайся до товариства «Xakep.ru», щоб читати всі матеріали на сайті
Членство в співтоваристві протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалами «Хакера», збільшить особисту накопичувальну знижку і дозволить накопичувати професійний рейтинг Xakep Score! Детальніше
Варіант 2. Відкрий один матеріал
Зацікавила стаття, але немає можливості стати членом клубу «Xakep.ru»? Тоді цей варіант для тебе! Зверни увагу: цей спосіб підходить тільки для статей, опублікованих більше двох місяців тому.
Ru»?