Google CTF 2018 - Shall We Play a Game?

Support HackTricks

Laai die APK hier af:

Ek gaan die APK op https://appetize.io/ (gratis rekening) oplaai om te sien hoe die apk optree:

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:

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

Volg die stappe van pentest Android om die APK weer te kompileer en te teken. Laai dit dan op na https://appetize.io/ en kom ons kyk wat gebeur:

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:

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:

'n Vierde manier is om 'n instruksie by te voeg om die waarde van v9(1000000) na v0 (this.o) te beweeg:

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:

Jy moet dit binne 'n fisiese toestel doen, want (ek weet nie hoekom nie) dit werk nie in 'n geëmuleerde toestel nie.

Support HackTricks

Last updated