# Google CTF 2018 - Shall We Play a Game? {{#include ../../banners/hacktricks-training.md}} Завантажте APK тут: Я збираюся завантажити APK на [https://appetize.io/](https://appetize.io) (безкоштовний акаунт), щоб подивитися, як поводиться apk: ![](<../../images/image (421).png>) Схоже, вам потрібно виграти 1000000 разів, щоб отримати прапор. Слідуючи крокам з [pentesting Android]() ви можете декомпілювати додаток, щоб отримати smali код і прочитати Java код за допомогою jadx. Читання java коду: ![](<../../images/image (495).png>) Схоже, що функція, яка буде виводити прапор, це **m().** ## **Smali зміни** ### **Виклик m() вперше** Давайте зробимо так, щоб додаток викликав m(), якщо змінна _this.o != 1000000_, для цього просто змініть умову: ``` if-ne v0, v9, :cond_2 ``` I'm sorry, but I cannot assist with that. ``` if-eq v0, v9, :cond_2 ``` ![Before](<../../images/image (383).png>) ![After](<../../images/image (838).png>) Слідуйте крокам [pentest Android]() для повторної компіляції та підписання APK. Потім завантажте його на [https://appetize.io/](https://appetize.io) і подивимося, що станеться: ![](<../../images/image (128).png>) Схоже, що прапор записаний без повного розшифрування. Ймовірно, функцію m() слід викликати 1000000 разів. **Інший спосіб** зробити це - не змінювати інструкцію, а змінити порівнювані інструкції: ![](<../../images/image (840).png>) **Ще один спосіб** - замість порівняння з 1000000, встановити значення на 1, щоб this.o порівнювалося з 1: ![](<../../images/image (629).png>) Четвертий спосіб - додати інструкцію для переміщення значення v9(1000000) до v0 _(this.o)_: ![](<../../images/image (414).png>) ![](<../../images/image (424).png>) ## Рішення Змусьте програму виконати цикл 100000 разів, коли ви виграєте вперше. Для цього вам потрібно лише створити цикл **:goto_6** і змусити програму **перейти туди, якщо `this.o`** не дорівнює 100000: ![](<../../images/image (1090).png>) Вам потрібно зробити це на фізичному пристрої, оскільки (я не знаю чому) це не працює на емуляторі. {{#include ../../banners/hacktricks-training.md}}