minioctt, (edited ) Italian Scrivo questo #post in risposta al seguente:
"App postepay — chiaramente c'è qualcosa che non va"https://t.me/journalctl_micro/3193Molto funny: la #app #Android di PostePay rileva modifiche di sistema ad un #telefono che passerebbe #SafetyNet, col bootloader bloccato, e suppongo quindi senza #root. 😁️
Ho preso 5 minuti (uhmm, no, magari) per un breve #ReverseEngineering di quella parte della #applicazione, arrivando a questa sezione del file (baksmaliato dall’ultima versione presente su APKMirror)
smali_classes6/posteitaliane/posteapp/apppostepay/ui/activity/SplashActivity.smali
, che invoca il dialogo di avviso in foto: 🤓️# riga 4358.method public final e()V# ... inizializzazione di altra roba# riga 4503new-instance v1, Lcom/scottyab/rootbeer/b;invoke-direct {v1, v0}, Lcom/scottyab/rootbeer/b;-><init>(Landroid/content/Context;)Vinvoke-virtual {v1}, Lcom/scottyab/rootbeer/b;->a()Zmove-result v1if-eqz v1, :cond_2# ... visualizza il dialogo se il codice sopra non ha saltato# riga 4542:cond_2# ... ritorna e termina il metodo
Detto in italiano, questo #codice invoca un metodo (dal nome offuscatino?) presente in una certa classe “
com.scottyab.rootbeer
“… ed esce fuori, con una #ricerca sul web, che questa è una #libreria #OpenSource (evidentemente integrata dagli sviluppatori di #PostePay) per controllare se un #dispositivo Android è #rootato. (Non se passa o meno #SlaveryNet, attenzione.) 🍻️È un po’ troppo rubatempo mettersi a capire quale effettivamente è nel codice Java quella funzioncina
b;->a()Z
ora, quindi tiriamo a #indovinare. Ci sono, in RootBeer.java, tante #funzioniboolean
, di cui varie ausiliarie, e 2 principali:isRooted
[With
/Without
]BusyBoxCheck()
. Queste due principali restituiscono un valore positivo qualora anche solo una delle ausiliari chiamate restituiscatrue
, l’unica differenza tra le due è il fare anche il controllo per la presenza del binariobusybox
, oppure no… E quindi le opzioni sono le seguenti: 📜️
checkForBinary(BINARY_SU)
,checkSuExists()
,checkForRootNative()
,checkForMagiskBinary()
: controllo effettivo del root; escludo, da quel che ricordo il suo telefono non è rootato, ed avendo il bootloader bloccato direi che possiamo stare tranquilli.detectRootManagementApps()
: scarto, se il telefono non è rootato non avrebbe senso tenere app di gestione del root.detectPotentiallyDangerousApps()
: controlla se sono installate app “a umma umma”; escludo perché credo nessuna sia utile senza il root, e qualcuna forse è pure malware… eccetto Lucky Patcher, che però ad oggi si auto-spoofa.checkForRWPaths()
: scarto, controlla se alcuni percorsi sensibili sono scrivibili, immagino di no col bootloader bloccato e senza root.checkForDangerousProps()
: da verificare, controlla se alcune #BuildProps di Android sono particolari.- detectTestKeys(): inizialmente sospettavo, ma lo abbiamo verificato (con
getprop | grep build.tags
), e pare non sia il caso (tutto è listato come “release-keys
“).checkForBinary(BINARY_BUSYBOX)
: questa potrebbe essere, ed è #interessante, controlla come ho detto prima la presenza del binariobusybox
, ma da questo commit del 2020 non è più usata nel check predefinito perché — come detto nel commento in quella parte di #source, e alla sezione “False positives” del readme — alcuni #OEM lo lasciano quando non dovrebbero (io credevo fosse normale tralaltro, non un’anomalia!).Quest’ultima #ipotesi mi cattura perché innanzitutto, te micro hai proprio un #MotoE da quello che ricordo, che è uno dei #telefoni listati esplicitamente sul readme… certo, se la #lib usata nella app fosse stata aggiornata, questo non sarebbe dovuto succedere, a meno che i programmatori delle #Poste non abbiano stupidamente usato la funzione di #controllo aggressiva. Però tbh, considerando la qualità del #software #statale o semi-statale qui in #Italia, secondo me semplicemente quella #dipendenza non è mai stata aggiornata (da un lato però, come biasimarli… “se funziona, non toccare”…). Al momento però non riesco a #provare ciò, perché non trovo #APK abbastanza vecchi di PostePay, quindi lancio solo #idee al vento. 😩️
Io punto su #busybox per risolvere questo #mistero. Lo #smartphone non è il mio, quindi io ora posso solo aspettare, se dovessero uscire novità farò un banale edit. (Sperando non siano così grosse da necessitare di un nuovo #messaggio). 😼️
Edit: non ci ho beccato nemmeno per il cavolo: dalla regia, che ha ora testato con il #programma di #test di #RootBeer, vengo a scoprire #malamente che le mie opzioni tecnicamente più plausibili si sono rivelate sbagliate. “Root Management Apps” è cosa fa scattare gli allarmi, cosa che io giustamente ho escluso a priori, ma la regia mi fa appunto sapere che aveva #Magisk Manager installato (soltanto a prendere polvere perché, questo l’ho pensato bene, non ha il root nell’effettivo); e, come previso, la disinstallazione mette a tacere i falsi positivi. Vabbè oh, non potevo immaginarmelo… 🤕️
https://octospacc.altervista.org/2024/01/21/investigazione-della-app-postepay-senza-radice/
#Android #APK #app #applicazione #BuildProps #busybox #codice #controllo #dipendenza #dispositivo #funzioni #idee #indovinare #interessante #ipotesi #Italia #lib #libreria #Magisk #malamente #messaggio #mistero #MotoE #OEM #OpenSource #post #Poste #PostePay #programma #provare #ReverseEngineering #ricerca #root #rootato #RootBeer #SafetyNet #SlaveryNet #smartphone #software #source #statale #telefoni #telefono #test
Add comment