spaccapresenze senza app universitaria...

spaccapresenze senza app universitaria...

Al momento, alla spaccaversità, non ricordo se lo accennai già, ma ho ben due corsi che richiedono un numero minimo di presenze a lezione registrate se si vuole partecipare alle prove intercorso… e non solo da me, a quanto pare, ma in diverse classi è arrivata questa strana novità dopo le “vacanze invernali”. A parte qualche docente, si usa il sistema di tracciamento elettronico #EasyBadge… e qui inizia il bello, o il brutto, a seconda dei punti di vista. 🤕 (Principalmente il brutto, ma io ho dalla mia parte la magia!)

La cosa elettronica l’hanno fatta ovviamente a modo cacoso loro, perché non c’è manco una webapp; c’è da usare una app nativa, disponibile soltanto per Android e iOS, che da installata pesa 30 MB perché ha fin troppe funzioni anche se l’unica che a me serve è la firma, e per giunta non funziona manco troppo bene. Quindi, io la mandai a fanculo da subito in favore di uno script shell stupidissimo, che è un semplice comando cURL al server delle presenze, e per queste settimane ho goduto. 🤭

💖💣, [05/03/2025, 09:13]
prima e ultima volta che mi servirà questa app proprietaria, perché se la sua funzione è 1 richiesta HTTP la rifaccio in pochi minuti.

💖💣, [05/03/2025, 09:13]
[🦜 Sticker]
https://t.me/c/1519410362/347558

Oggi c’è stato però un minimo aggiornamento sulla questione, e proprio per questo ne approfitto ora per raccontare questa robetta, che nei giorni passati mi era sfuggita. Il professore si è svegliato, e si è accorto che può proiettare dei QR code da far scansionare, anziché mettere a schermo gli OTP alfanumerici da farci digitare a mano… però io intanto ho dovuto fare un pochino di reverse engineering nuovo, perché questa cosa non l’avevo potuta implementare e ora ho dovuto. 🔧

Fortunatamente, il QR code altro non contiene che una stringa base64, che codifica una stringa del formato QR_{OTP}-{timestamp(UNIX)}, che il solito endpoint delle presenze accetta come quelli digitati a mano (ma, il suffisso -{timestamp} viene e va levato… che cazzo lo hanno messo a fare?); in realtà, questo si scopre facilmente, visto che, quando dalla app si scansiona il QR code, quel codice viene proprio decodificato e incollato nella casella dove altrimenti si dovrebbe scrivere a manina. 👍

Anche stavolta, tutto è bene quello che finisce in modo da permettermi di non usare software bloattato… ma fosse solo quello regà; proprio oggi ho scoperto che la scansione dei codici QR in app è rotta sul mio Ximi, da un errore riguardo la mancanza di Google Play Services (ed ha ragione), nonostante intanto il riquadro della fotocamera si veda, però alla fine comunque non scansiona nulla. Sul tablet funziona, ma comunque è cacca: addirittura, all’avvio deve scaricare ogni volta dei dati dal server, facendo perdere tempo, invece il mio script non ne ha bisogno. 😛

Unico lato negativo così è che devo fare la speedrun per registrare la presenza via QR: scansionare dal mio scanner preferito (che almeno funziona…), cliccare il copia negli appunti, passare a Termux (preparato subito prima con l’invocazione dello script già mezza scritta) e fare incolla lì, poi invio… ma, a parte che alla fine lo si può pensare come fosse un piccolo attimo di gaming, ben gradito in quanto capace di aggiungere del brio a faccende normali, non è più lento di digitare i vecchi codici non-QR a mano. 🌋

Lo script aggiornato con la decodifica del base64 è solo qualche decina di byte in più, quindi comunque godimmo, e ora l’ho messo qui: https://memos.octt.eu.org/m/MoKJmyGTVShHjNGpDgNoPB. Anche se non so a chi più possa essere utile… le altre università che usano lo stesso sistema hanno domini o endpoint diversi per la API (stesso software, più configurazioni diverse di stelle nell’universo, vaffanculo a loro), quindi chi studia altrove dovrà mettersi come me con PCAPdroid MITM (e quindi Android rootato) a reversare, se vuole godere. 🐵