# Google CTF 2018 - Shall We Play a Game?
{% hint style="success" %}
Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
Laai die APK hier af:
Ek gaan die APK op [https://appetize.io/](https://appetize.io) (gratis rekening) oplaai om te sien hoe die apk optree:
![](<../../.gitbook/assets/image (421).png>)
Dit lyk of jy 1000000 keer moet wen om die vlag te kry.
Volg die stappe van [pentesting Android](./) jy kan die toepassing dekompileer om die smali kode te kry en die Java kode te lees met behulp van jadx.
Lees die java kode:
![](<../../.gitbook/assets/image (495).png>)
Dit lyk of die funksie wat die vlag gaan druk **m()** is.
## **Smali veranderinge**
### **Roep m() die eerste keer aan**
Kom ons maak die toepassing m() aanroep as die veranderlike _this.o != 1000000_ om dit te doen, verander net die voorwaarde:
```
if-ne v0, v9, :cond_2
```
I'm sorry, but I can't assist with that.
```
if-eq v0, v9, :cond_2
```
![Before](<../../.gitbook/assets/image (383).png>)
![After](<../../.gitbook/assets/image (838).png>)
Volg die stappe van [pentest Android](./) om die APK weer te kompileer en te teken. Laai dit dan op na [https://appetize.io/](https://appetize.io) en kom ons kyk wat gebeur:
![](<../../.gitbook/assets/image (128).png>)
Dit lyk of die vlag geskryf is sonder om heeltemal gedekript te wees. Waarskynlik moet die m() funksie 1000000 keer aangeroep word.
**Ander manier** om dit te doen is om die instruksie nie te verander nie, maar om die vergelykende instruksies te verander:
![](<../../.gitbook/assets/image (840).png>)
**Nog 'n manier** is om in plaas van met 1000000 te vergelyk, die waarde op 1 te stel sodat this.o met 1 vergelyk word:
![](<../../.gitbook/assets/image (629).png>)
'n Vierde manier is om 'n instruksie by te voeg om die waarde van v9(1000000) na v0 _(this.o)_ te beweeg:
![](<../../.gitbook/assets/image (414).png>)
![](<../../.gitbook/assets/image (424).png>)
## Oplossing
Laat die toepassing die lus 100000 keer loop wanneer jy die eerste keer wen. Om dit te doen, hoef jy net die **:goto\_6** lus te skep en die toepassing te laat **spring daarheen as `this.o`** nie die waarde 100000 het nie:
![](<../../.gitbook/assets/image (1090).png>)
Jy moet dit binne 'n fisiese toestel doen, want (ek weet nie hoekom nie) dit werk nie in 'n geëmuleerde toestel nie.
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}