Microsoft fa poco per proteggere i ricavi degli sviluppatori di Windows Store

  • Sep 06, 2023

Stai cercando di guadagnare con le app di Windows Store? Il supporto è nella piattaforma, ma i modi in cui devi fare soldi sono tristemente facili da aggirare...

La versione di prova di Windows Store è scaduta - Grande

Prova scaduta? Nessun problema: scaricalo rapidamente e digita un po', l'app verrà sbloccata senza bisogno di dare allo sviluppatore la tua preziosa valuta in tasca.

Ciò che è emerso nell'ultimo anno è che un modo abbastanza decente per guadagnare con le app per tablet e smartphone è l'acquisto in-app (IAP). L'idea di IAP è che ti consente di creare un gioco da regalare gratuitamente, ma consenti agli utenti di acquistare articoli premium. Ad esempio, potresti riuscire a guadagnare monete d'oro completando le attività del gioco, ma se questo è uno sforzo eccessivo puoi semplicemente acquistare le monete che desideri utilizzando denaro reale.

Questo tipo di modello "freemium" si preannuncia come l'unico modo per fare soldi con le app mobili e qualsiasi proprietario di piattaforma che sia nuovo sul mercato - e sto parlando di telefoni e tablet basati su Windows: deve agire in ordine quando si tratta di aiutare gli sviluppatori a trarne vantaggio opportunità.

All'inizio di questa settimana Giustino Angelo, un ingegnere di Windows Phone presso Nokia ha pubblicato un articolo sul suo blog personale in cui mostra vari modi di sfruttare IAP per ottenere beni che desideri non hai pagato, nascondi gli annunci nei software supportati da pubblicità e trasforma le versioni di prova in versioni complete senza pagamento, sia su Windows 8 che su Windows RT.

Anche se il lavoro di Justin è diligente e ben eseguito, il problema principale è che ciò che mostra è molto, molto semplice. Anche se nessuno ha messo insieme tutti questi pezzi in modo così pubblico, uno sviluppatore decente potrebbe creare una prova di concetto per tutto ciò che ha fatto partendo dai principi fondamentali in poche ore. In tutti i casi, sostanzialmente non esiste alcun livello di protezione. Windows 8 e Windows RT sono completamente aperti. Se sei uno sviluppatore che prende di mira i tablet Windows, l'intera base utenti può fare clic su alcuni interruttori e il flusso di entrate viene interrotto. (Naturalmente, devono essere inclini a farlo.)

Stranamente (beh, forse non è così strano dato il rapporto del suo datore di lavoro con Microsoft), il suo sito web è inattivo, quindi non posso collegarmi al suo articolo. Ma posso parlare del problema e delle sue scoperte.

Ottenere cose per cui non hai pagato

Supponiamo che tu sia uno sviluppatore che crea un gioco in cui desideri inserire alcuni contenuti premium. Quello che faresti normalmente è che le normali meccaniche di gioco ti ricompensino con alcuni oggetti (in questo esempio useremo monete d'oro), ma gli utenti possono acquistare monete extra usando denaro reale. Indipendentemente dalla piattaforma, dovrai memorizzare, in modo persistente e localmente, il numero di monete di cui dispone l’utente. Quando l'utente guadagna monete nel gioco, il valore locale viene aggiornato. Se l'utente acquista più monete utilizzando IAP, è sufficiente incrementare lo stesso valore locale con il numero di monete acquistate in risposta al server IAP che conferma un acquisto andato a buon fine.

(L'effettivo processo IAP è più o meno simile su iOS e per le app di Windows Store: invii una richiesta al server del negozio, convalida il pagamento e ti restituisce una conferma. Quindi agisci in base a tale conferma incrementando il tuo valore locale.)

Quando installi un'app su Windows 8 e Windows RT, accadono due cose. L'app vera e propria è confezionato come una cerniera file. (L'ho semplificato un po', ma va bene per questa spiegazione.) Questo è esploso su disco in un modo noto posizione e vengono apportate un sacco di modifiche al registro in modo che Windows sappia dove si trova l'app e cosa può fare Fare. (Ad esempio, se può condividere, eseguire ricerche, ecc.) Oltre a ciò, Windows creerà una cartella su disco in cui l'app potrà archiviare tutto il suo stato locale. Le app di Windows Store sono sandbox in modo che ciascuna app possa (nella maggior parte dei casi) accedere a livello di codice solo a questa cartella speciale. Se vuoi memorizzare in modo persistente il numero di monete d'oro possedute dall'utente, devi memorizzarlo in questa cartella in qualche modo.

Tuttavia, su Windows 8 e Windows RT, il file system è completamente aperto. Pertanto qualsiasi utente con accesso amministrativo (che è fondamentalmente "ogni utente") può semplicemente accedere a quella cartella e modificarla. Ciò che Justin ha scoperto a livello base è che, supponendo che tu conosca il formato del file, puoi entrare e cambiare le 10 monete d'oro guadagnate nell'app in 10.000.000. Justin mostra esattamente come eseguire questa operazione per un gioco disponibile in commercio nel suo articolo.

(Ci sono alcune sottigliezze in questo, vale a dire che puoi crittografare i file, ma Justin sottolinea che puoi facilmente ottenere intorno a lui l'app è scritta in .NET utilizzando la tecnologia esistente che offre decompilazione e ispezione approfondita di .NET assemblee. La morale qui è che se sei uno sviluppatore, devi offuscare il tuo codice.)

Su iOS non puoi hackerare i file di dati di un'applicazione così facilmente perché sebbene iOS abbia un file system, non puoi accedervi a meno che non effettui il jailbreak del dispositivo. In teoria su iOS potresti fare la stessa cosa che su Windows, ma Microsoft ha reso il tutto stupidamente facile includendo l'accesso root al file system per tutti. In sostanza, i dispositivi Windows 8 e Windows RT sono "pre-jailbroken".

Il jailbreak su iOS è un'attività di nicchia. Mentre su iOS potresti scoprire che il 2% della tua base utenti ha un dispositivo jailbroken (ho indovinato "2%", è probabile che sia molto inferiore), in realtà su Windows il 100% della tua base utenti è jailbroken.

Lo scenario che sto cercando di delineare qui è quello in cui, supponiamo che tu abbia un gioco popolare, quello che potresti fare è consentire all'utente di scaricare una piccola app sul dispositivo Windows 8 che trova il nell'archivio dati privato del gioco, carica i file sul server, dopodiché tali file vengono modificati secondo le tue specifiche, scaricati di nuovo e sostituiti con gli originali disco. In teoria potresti anche addebitare un servizio del genere: una tariffa di $ 10 per consentirti di accedere a centinaia o migliaia di dollari di articoli IAP sono allettanti e ovviamente non genereranno entrate per l'originale sviluppatore. Probabilmente non ho bisogno di insistere sul fatto che in tutta la storia del nostro settore, anche persone con una morale ben sviluppata per Compass è abbastanza facile giustificare la pirateria dei contenuti o, in questo caso, sottrarre qualche dollaro a uno sviluppatore. Le persone lo faranno se possono, e probabilmente più persone di quanto penseresti.

Per inciso, su Windows RT questo processo è leggermente più complicato in quanto non saresti in grado di scaricare un agente che lo faccia per te a causa delle restrizioni imposte dalla porta ARM. Quello che dovresti fare qui è trasferire manualmente i file dal dispositivo e quindi caricarli manualmente sul server dell'exploit. Dovresti quindi sostituire i file sul dispositivo con quelli forniti dal server. Tuttavia è importante notare che, anche se Windows RT decolla alla grande, non esiste una protezione significativamente migliore su Windows RT rispetto a Windows 8. Su Windows RT è più difficile automatizzare gli exploit, ma gli exploit stessi non sono più difficili.

Rimozione degli annunci

Un altro modo in cui gli sviluppatori possono guadagnare dal loro software è inserendo annunci pubblicitari sullo schermo. E su Windows, se vuoi, puoi rimuovere quegli annunci dall'app utilizzando niente di più sofisticato del Blocco note. Justin mostra come farlo nella terza parte del suo articolo.

Descrivere la parte successiva è complicato senza approfondire la tecnologia, ma è il modo più semplice per pensarci questo è che, per lo più, le app di Windows Store sono scritte in modo tale da creare file separati per ciascuna di esse visualizzazione. Ad esempio, se stai creando un'app per la lettura di notizie, potresti creare un file di layout che definisce la vista principale come avendo un elenco di articoli di notizie sulla sinistra e il dettaglio effettivo di una notizia che l'utente seleziona sul Giusto. Ciò che farà uno sviluppatore se desidera includere annunci è semplicemente scrivere nel layout in cui desidera che appaia l'annuncio. L'app si avvia, il layout viene interpretato e l'annuncio viene mostrato.

Questi file di layout sono inclusi nel file zip che viene scaricato prima dell'installazione e vengono esplosi su disco come parte dell'installazione. Il problema qui è che i file di layout sono file di testo e perché abbiamo pieno accesso al file sistema, è possibile aprire questi file di layout nel Blocco note e rimuovere semplicemente gli annunci post installazione. Dopo averlo fatto, all'avvio dell'app l'annuncio semplicemente non verrà visualizzato. Ancora una volta, è il problema dei dispositivi Windows con più o meno jailbreak.

Su iOS questo non è possibile poiché generalmente le app definiscono il proprio layout come codice binario compilato nell'applicazione anziché come file di testo su disco. Pertanto, anche se disponi di un dispositivo iOS con jailbreak e puoi accedere al file system, non puoi comunque rimuovere gli annunci.

Suggerirei che questo sia meno grave del vettore di elusione IAP di cui abbiamo discusso in precedenza, ma è comunque un buon modo per vedere le entrate della tua app venire risucchiate.

Modifica delle versioni di prova in versioni complete

Questo è un po' più un crack tradizionale e meno facilmente eseguibile utilizzando Esplora file e Blocco note.

A differenza di iOS e dell'App Store di Apple, Windows Store supporta le app di prova. Windows mantiene un singolo file che tiene traccia se un'applicazione è in modalità "completa" o "di prova". Modificando il contenuto di questo file puoi passare qualsiasi app dalla modalità di prova alla modalità completa, senza effettivamente acquistare l'app.

Nel suo articolo, Justin parla dell'utilizzo di un'utilità chiamata WSService_crk per fare questo. Non ho incluso un collegamento a questa utilità per vari motivi, non ultimo perché è difficile garantire la sicurezza di tali cose. Tuttavia, ciò che fa questa utility è visualizzare un elenco di app, consentirti di selezionarne una e quindi consentirti di reimpostare l'indicatore di prova rispetto a qualsiasi app installata. La prossima volta che avvierai l'app, non sarà più in modalità di prova.

È difficile fare un confronto con iOS qui poiché le app di prova non sono disponibili. È probabile che qualsiasi sistema di questo tipo su iOS abbia più o meno lo stesso aspetto, ovvero avresti un registro centrale delle app e un flag che indica se sono in modalità di prova o meno. I dispositivi con jailbreak presenterebbero probabilmente la stessa vulnerabilità di Windows. Ma, ancora una volta, il problema è che Windows 8 e Windows RT sono già "jailbroken" e quindi è facile per un'utilità come WSService_crk per ottenere e manipolare i dati necessari per cambiare la bandiera.

Conclusione

Parliamo di Raymond Chen. È un ingegnere Microsoft, che gestisce un blog affascinante chiamato La vecchia cosa nuova. La posizione di Raymond in Microsoft è quella in cui trascorre gran parte della sua carriera occupandosi delle parti interne di Windows e spesso scrive sul blog di exploit deliberati o accidentali del sistema operativo.

Il motivo per cui parlo del blog di Raymond è che spesso parla di "essere dall'altra parte di questo portello ermetico", con il quale di solito significa "sì, puoi farlo, ma devi avere una sorta di insolito privilegio per poterlo fare". In genere è in risposta alle richieste dei clienti in cui segnalano qualche problema orrendo, ma che si trasforma fuori per non essere così orrendo perché si basa su un certo allineamento astrale, o su una disposizione così strana circostanza.

Sappiamo che la strategia di mobilità di Microsoft è (nel bene e nel male) basata sulla rincorsa al mercato i leader cercano di emulare dove ha senso, e fanno un po’ meglio dell’emulazione di base dove lo fanno Potere. Tuttavia, mentre i concorrenti di Microsoft hanno riavviato l'intero approccio per quanto riguarda i dispositivi, la strategia tablet di Microsoft è semplicemente quella di continuare ad aggiungere sempre più bit a Windows. Apple e Google stanno costruendo dispositivi "post-PC". Microsoft ha creato un "PC Plus".

Il problema è che costruendo un "PC Plus", Microsoft ha fatto da pioniere in ciò che la gente pensa di cui hanno bisogno, ma questo mette anche tutti dalla parte sbagliata dei discorsi di Raymond sul "portello ermetico" Di. Il file system e i privilegi elevati su Windows forniscono più utilità rispetto a iOS, ma su iOS tu inizia dal lato destro del portello ermetico e solo con il jailbreak puoi finire dal lato sbagliato lato. (E, naturalmente, usando "giusto" e "sbagliato" nel modo in cui sono qui, sto dando un giudizio su quale filosofia personale sia quella giusta. Quello che sto veramente dicendo è che bloccare un dispositivo informatico in modo che sia più affidabile e... affidabile è positivo per utenti e sviluppatori, ma sto facendo una distinzione tra un'appliance e un Old PC mondiale.)

Come sviluppatore, devi porsi alcune domande serie su questo stato di cose. Ciò che è emerso qui grazie al lavoro di Justin è che la protezione dei ricavi degli sviluppatori non è stata considerata da Microsoft nella piattaforma così com'è oggi. È un peccato, perché ci sono molte cose che Microsoft avrebbe potuto fare per alleviare questo problema.

Per ora, gli sviluppatori Windows devono affrontare il doppio problema di non essere solo una piattaforma di nicchia, ma anche uno in cui il proprietario della piattaforma non ti fa alcun favore in termini di entrate protezione. E puoi scommettere che se Office dipendesse dagli IAP o dalle entrate pubblicitarie, l'intera storia sarebbe stata molto migliore.

Cosa ne pensi? Pubblica un commento o parlami su Twitter: @mbrit.

Grazie a Paolo Ardeleanu E Nic saggio per il loro aiuto nella stesura di questo articolo.