Applicazioni a Pagamento anche in Italia con MarketEnabler

3 Maggio 200958 commenti

Attenzione: Questa applicazione permette solamente l'accesso al market a pagamento e non incitiamo in nessun modo l'utilizzo di tale applicazione per scopi illeciti o fraudolenti.

Come preannunciato oggi lanceremo l'applicazione che aiuterà tutti quelli che si ritrovano in una zona del mondo dove non è concesso scaricare applicazioni a pagamento dall'Android market. Se ci seguite frequentemente ( e se non lo fate forse è il caso di cominciare ;) ) saprete che ieri abbiamo lanciato una preview dell'applicazione e di quello che farà.. Ma rivediamolo anche qui:

Gli Artefici

Partiamo con presentare Tim Strazzere, un amico americano ( in realtà ho scoperto da poco che ha origini siciliane ) , che scrive articoli interessantissimi sul reversing di applicazioni e di sistemi di controllo dentro android. (link al blog) Il suo articolo bomba fu uno che riguardava il reversing del market..  Contattandolo scoprii che stava lavorando ad uno scraper del market. A questo punto avvenne il nostro incontro su gtalk .. Io gli rompevo le scatole e lui mi sopportava ;) L'altro artefice di quest'applicativo sono io Andrea Baccega che si era assolutamente annoiato di chiedere sempre al suo amico d'oltre oceano se poteva procurargli le applicazioni a pagamento da poter recensire.


[ad#ad-androidiani-1]

Il metodo

Io e Tim ci siamo messi al lavoro per trovare il modo di abilitare il market a pagamento anche in italia. Prima di esporvi il metodo e le soluzioni adottate, vorrei farvi capire come siamo arrivati a produrre queste idee di risoluzione.

Per poter mettere mano a quello che il market restituiva bisognava capire come lavora e che tipologia di dati si scambia con i servers di google. Non è bastato un semplice sniff dei pacchetti facendo un semplice MITM.. Come ci si potrebbe aspettare i dati scambiati non sono in  chiaro..

A questo punto, se volevamo capire che cosa si stava dicendo android e google, dovevamo reversare il market e capire esattamente quale funzione si occupava della codifica e quale della decodifica.. Ma cosa ancora più importante era capire che cosa facevano questi due metodi.

Con sorpresa abbiamo scoperto che i metodi di codifica e decodifica utilizzati sono ampiamente documentati ed è la Base64.decodeWebSafe e la Base64.encodeWebSafe .. Entrambi dispobili nelle google data api.

Una volta sniffati e decompressi un buon numero di pacchetti abbiamo trovato essenzialmente alcuni dati che sapevamo di dover cambiare:

  • Nome dell’operatore ( che nel caso mio era Vodafone IT e Strazzere aveva T-Mobile)
  • Numero dell’operatore ( che nel caso mio era 22210 e invece quello corretto era 31026 ) ( Per chi volesse sapere il numero dell’operatore è composto da MCC+MNC )

Secondo le nostre ipotesi infatti, semplicemente cambiando ogni occorrenza di questi valori, avrei potuto leggere il market a pagamento.

Dopo un piccolo BrainStorming abbiamo ipotizzato alcune strade:

  1. Intercettare il pacchetto e cambiarlo onthefly ( Costoso e richiedeva troppo tempo )
  2. Cambiare il core di android che gestisce le chiamate ad internet.
  3. Cambiare il core di android che gestisce il nome e il numero dell’operatore.

Framework.jar

Di primo acchito mi sono subito messo all’opera per ricompilare interamente android e creare una patch che avrebbe dovuto gestire e restituire i valori t-mobile invece di quelli vodafone..

Sebbene questa procedura sia stata lunga e dolorosa lungi da me rompervi con altri dettagli.. Per quei pochi curiosi, ho dovuto cambiare ServiceState ( è facile intuire dove).

Una volta ricompilato android con le modifiche abbiamo incrociato le dita e con qualche sforzo sono riuscito a far girare la mia versione di android su una thedude patchata.

A nostra sorpresa però l’enorme lavoro non è bastato poichè il market non utilizzava solamente la classe ServiceState e infatti metà dati erano italiani e metà americani.. La soluzione perciò era un altra..

Setprop

Nella versione modificata di thedude ho voluto effettuare un ultimo test. Per chi non lo sapesse android ha una lista di (passatemi l’imprecisione) variabili globali che sono nella realtà delle proprietà.

Alcune di queste proprietà sono scrivibili mentre altri sono solamente readOnly. Attraverso alcuni comandi di bash abbiamo scoperto che la mia modifica non cambiava alcune proprietà e dovevano essere cambiate manualmente atraverso la shell..

Dopo alcuni tentativi ci siamo riusciti… E io vedevo le applicazioni a pagamento!!!.. A questo punto Tim mi dice:

“Vuoi vedere che senza la tua patch di framework.jar e solamente utilizzando opportunamente setprop riesci ad avere il market a pagamento?”

Presto fatto, ho scaricato l’ultima versione di android dell’intramontabile JesusFreke e l’ho flashata sopra a tutto il lavoro che avevo appena fatto ( ovviamente facendo un bel nandroid backup ) ..

Apro la jf faccio il login, effettuo tutti i comandi di setprop e provo il market… … … Funziona!!!

Il risultato di questa scoperta è che tutte le idee che ci eravamo fatti, tutto il brainstorming operato è stato inutile, la soluzione ai nostri problemi era così semplice che nessuno dei due ci aveva  pensato .. Almeno non fino alla fine :P

Inoltre, questa ultima soluzione permette di non essere firmware dipendenti.. Se fosse stata necessaria la patch a framework.jar la soluzione sarebbe stata applicabile solamente ad alcuni firmware.

L’applicazione

Bando alle ciance e parliamo dell’applicazione , del suo utilizzo e del disclaimer.

Disclaimer

  • Come al solito, io non sono responsabile dell’utilizzo che ne farete, la mia applicazione vuole solo essere un Proof Of Concept e abilitare la possibilità ( Ancora limitata ) di vedere le applicazioni a pagamento.. Anche in Italia.
  • Se utilizzando l’applicazione combinerete qualche casino non mi ritengo responsabile.
  • L’applicazione sarà a breve rilasciata sotto GPL ( appena trovo 10 minuti per sincronizzare eclipse. )
  • Attenzione: Questa applicazione permette solamente l’accesso al market a pagamento e non incitiamo in nessun modo l’utilizzo di tale applicazione per scopi illeciti o fraudolenti.

Come utilizzare l’applicazione

L’applicazione ha solamente 2 bottoni ;) uno a destra e uno a sinistra..

  • Il Bottone di Sinsitra abilita il market.
  • Il bottone di destra ripristina i valori normali ( in caso qualche applicazione riscontri dei problemi dopo la modifica al market ).

Più facile di così ;)

Nota: Ad ogni riavvio bisogna aprire la applicazione per abilitare la prima volta il market.

Download di Market Enabler

L’applicazione può essere scaricata da qui.

Installazione dell’applicazione

Per installare l’applicazione dovrai semplicemente lanciare il comando

adb install MarketEnabler.apk

o dal browser di android visitate questo link : http://tinyurl.com/marketenabler

Per problemi con la applicazione, riferitevi al nostro forum!

Donazioni: Le donazioni sono sempre ben accette! Pubblicheremo inoltre al più presto un elenco di tutti i donatori che credono nel nostro lavoro.

Per donare (anche 1€), clicca qui.

CopyRight

Potete copiare o prendere spunto da quest’articolo e ridistribuire l’app ( che verrà presto ridistribuita in GPL ) purchè venga citata la fonte dell’articolo e che il download link non venga cambiato.

English: You could copy/translate this post or redistribute the app ( which will be soon released under GPL )  but you’ve to cite this post and do not change the download link of the app.

Nota

Per utilizzare il market a pagamento dovrete registrarvi un account su google checkout. Google Checkout è una piattaforma di pagamento sicuro simile a paypal.

Per farlo usate il browser del vostro pc e puntatelo qui. Le istruzioni di google vi guideranno passo passo ;)

English Version of this Post

Probably androidiani.com Staff will release an english version of this post.. Otherwise, if Tim Strazzere will do it, we will cite them.  So stay Tuned ;)

58 risposte a “Applicazioni a Pagamento anche in Italia con MarketEnabler”

  1. androidandme ha detto:

    +1 for English version.

  2. androidandme ha detto:

    +1 for English version.

  3. 65paul ha detto:

    ho appena comprato “documents to go”.
    Grandi Ragazzi!!!

  4. 65paul ha detto:

    ho appena comprato “documents to go”.
    Grandi Ragazzi!!!

  5. ducati ha detto:

    bravi jesolani! me piase

  6. ducati ha detto:

    bravi jesolani! me piase

  7. […] to rephrase things to make a little more sense in English. For the original article (Italian) go to androidiani.com and for the translated (via google-translate) go here translated […]

  8. Tim ha detto:

    English version is up andrea!

    http://strazzere.com/blog/?p=255

  9. Tim ha detto:

    English version is up andrea!

    http://strazzere.com/blog/?p=255

  10. MarketEnabler: Activa las aplicaciones de pago en el Market | EsferaAndroid ha detto:

    […] Vía Androidiani […]

  11. 65paul ha detto:

    scusate, ma comprare dal market è lecito o si può solo osservare senza comprare nulla?

  12. 65paul ha detto:

    scusate, ma comprare dal market è lecito o si può solo osservare senza comprare nulla?

  13. Giovanni ha detto:

    Grazie mille ragazzi per il vostro lavoro… Siete bravissimi!!!

    Una domanda stupida… ma i soldi se li prendono dall’account di google o dalla scheda?

  14. Giovanni ha detto:

    Grazie mille ragazzi per il vostro lavoro… Siete bravissimi!!!

    Una domanda stupida… ma i soldi se li prendono dall’account di google o dalla scheda?

  15. DeeDeND ha detto:

    Complimenti per questa applicazione!

  16. DeeDeND ha detto:

    Complimenti per questa applicazione!

  17. emuboy ha detto:

    Ho segnalato l’articolo inglese ad hackaday.com , direi che merita :)

  18. emuboy ha detto:

    Ho segnalato l’articolo inglese ad hackaday.com , direi che merita :)

  19. Sebastiano ha detto:

    @65paul: non si sa se sia lecito o meno, però è google che fa affari così :)

    @emuboy: tnx :) speriamo ci linkino lol

  20. […] info: Purchase applications outside of the authorized zones (Strazzere.com) Originele tekst: Androidiani.com (Italiaans) Vorige […]

  21. Sebastiano ha detto:

    @65paul: non si sa se sia lecito o meno, però è google che fa affari così :)

    @emuboy: tnx :) speriamo ci linkino lol

  22. Vesponauta ha detto:

    Davvero un’applicazione unica, sono fiero che sia partita dal caro Andrea!

  23. Vesponauta ha detto:

    Davvero un’applicazione unica, sono fiero che sia partita dal caro Andrea!

  24. […] (o tiksliau vienas italas, kuriam padejo amerikietis), kurie sugebėjo parašyti programą (originalus postas originalo kalba) atrakinančią mokamas programas Market’e :) Žinoma, UI nėra pats gražiausias, bet ne […]

  25. Rolando Ramieri ha detto:

    Ciao a tutti, vi seguo da quando ho cominciato a lavorare con la piattaforma Android, e mi sembrava assurdo che non fosse possibile utilizzare il market in Italia!
    Grazie a questa applicazione, il problema sembra bypassato, complimenti a tutti.
    Approfitto per dirvi, se ne avete voglia, di dare uno sguardo alla pagina web (http://www.araneum.it/android/) che illustra le funzionalità dell’applicazione che ho sviluppato, basata sulla gestione degli onomastici.
    L’applicazione è acquistabile sul market e si chiama “Name Day” (Onomastici) al costo di 2 US$.

    Grazie dell’ospitalità

    Rolando Ramieri

  26. Rolando Ramieri ha detto:

    Ciao a tutti, vi seguo da quando ho cominciato a lavorare con la piattaforma Android, e mi sembrava assurdo che non fosse possibile utilizzare il market in Italia!
    Grazie a questa applicazione, il problema sembra bypassato, complimenti a tutti.
    Approfitto per dirvi, se ne avete voglia, di dare uno sguardo alla pagina web (http://www.araneum.it/android/) che illustra le funzionalità dell’applicazione che ho sviluppato, basata sulla gestione degli onomastici.
    L’applicazione è acquistabile sul market e si chiama “Name Day” (Onomastici) al costo di 2 US$.

    Grazie dell’ospitalità

    Rolando Ramieri

  27. rac ha detto:

    Hy Tim
    I would be interested to extend this hack to the german market.
    Would be cool to have an app that could switch between different markets.
    You wrote that you will publish your code as GPL, are you still going to do that?

    regards rac

  28. rac ha detto:

    Hy Tim
    I would be interested to extend this hack to the german market.
    Would be cool to have an app that could switch between different markets.
    You wrote that you will publish your code as GPL, are you still going to do that?

    regards rac

  29. Andrea ha detto:

    rac, i’m sorry … I’m andrea not Tim. And I developed the app named MarketEnabler..

    Tim is a co-worker on the idea behind.

    Plus, the app will work fine on the german market too. Bye

  30. Andrea ha detto:

    rac, i’m sorry … I’m andrea not Tim. And I developed the app named MarketEnabler..

    Tim is a co-worker on the idea behind.

    Plus, the app will work fine on the german market too. Bye

  31. rac ha detto:

    Sorry Andrea… I meant you… was reading both posts at the same time and messed up the Authors ;-)

    First, thank you a lot for your effort… I’m from CH and there we dont have market access so I had to install pirated apps :-/
    But with your hack I actually could buy all this apps so developer will be pleased from your app too ;-)

    As I understood the market takes some values (MCC, MNC, …) and makes a client footprint with it to identify the target market… your application just changes this values that the market gets a footprint from a US T-Mobile and opens the US/UK Market.
    What my question was about is about:
    Certain apps are just on german market, as example RadAlert wich is protected but free app on german market.
    My idea was that your app could be extended to fake a DE T-Mobile footprint to get access to local apps.

    regards rac

  32. rac ha detto:

    Just saw the post from tim about manually doing it… will write you the german values when I have it ;-)

  33. rac ha detto:

    small bug in your code:

    gsm.operator.alpha and setprop gsm.sim.operator.alpha will stay with US on reset in the app but restored on reboot

  34. rac ha detto:

    Sorry Andrea… I meant you… was reading both posts at the same time and messed up the Authors ;-)

    First, thank you a lot for your effort… I’m from CH and there we dont have market access so I had to install pirated apps :-/
    But with your hack I actually could buy all this apps so developer will be pleased from your app too ;-)

    As I understood the market takes some values (MCC, MNC, …) and makes a client footprint with it to identify the target market… your application just changes this values that the market gets a footprint from a US T-Mobile and opens the US/UK Market.
    What my question was about is about:
    Certain apps are just on german market, as example RadAlert wich is protected but free app on german market.
    My idea was that your app could be extended to fake a DE T-Mobile footprint to get access to local apps.

    regards rac

  35. rac ha detto:

    Just saw the post from tim about manually doing it… will write you the german values when I have it ;-)

  36. Project 2030 ha detto:

    Android market switch…

    So bekommt man Zugriff auf den US oder den DE paid market
    Das reverse engineering wurde von Tim und Andrea gemacht, Andrea hat auch die Market enabler app geschrieben die den US market freischaltet.

    US market (T-Mobile)

    Danke an Tim (strazzere im x…

  37. rac ha detto:

    small bug in your code:

    gsm.operator.alpha and setprop gsm.sim.operator.alpha will stay with US on reset in the app but restored on reboot

  38. Andrea ha detto:

    Are you sure rac?… This is strange because it’s working for me…

  39. Andrea ha detto:

    Are you sure rac?… This is strange because it’s working for me…

  40. rac ha detto:

    I didn’t checked every time (just once) but on reboot the values are ok so nevermind but still strange.
    Maybe some shell command you dropp of didn’t return well?
    Anyway, I wrote a little shell script to select different markets, you can find it on my site.

  41. rac ha detto:

    with my sh script its working fine so I guess Dalvik VM somehow terminates the command…

    with the script it always done in 2 sec but with your app it depends… sometimes 2 sec and sometimes I waited a minute and if I had luck it didn’t force close.
    How are you dropping the shell commands?
    I think it must hang in there somewhere

  42. rac ha detto:

    I didn’t checked every time (just once) but on reboot the values are ok so nevermind but still strange.
    Maybe some shell command you dropp of didn’t return well?
    Anyway, I wrote a little shell script to select different markets, you can find it on my site.

  43. Andrea ha detto:

    Yes rac, Probably i don’t get the correct values..

    This is strange…

  44. Andrea ha detto:

    Yes rac, Probably i don’t get the correct values..

    This is strange…

  45. rac ha detto:

    with my sh script its working fine so I guess Dalvik VM somehow terminates the command…

    with the script it always done in 2 sec but with your app it depends… sometimes 2 sec and sometimes I waited a minute and if I had luck it didn’t force close.
    How are you dropping the shell commands?
    I think it must hang in there somewhere

  46. Giovanni ha detto:

    Raga ma è uscita la nuova versione? Perchè aTrackDog mi dice che c’è la versione 2.0

    Dove la trovo?

  47. Giovanni ha detto:

    Raga ma è uscita la nuova versione? Perchè aTrackDog mi dice che c’è la versione 2.0

    Dove la trovo?

  48. World ha detto:

    AIUTO! ciao io abito in svizzera e sono presso l’operatore swisscom. Ho il problema dell’APD che a ogni riavvio si reimposta e non ho più le app a pagamento. I dati dell’APN sono:
    Nome Swisscom
    APN gprs.swisscom.ch
    Proxy Non impostato
    Porta Non impostato
    Nome Non impostato
    Passwd Non impostato
    Server Non impostato
    MMSC null
    ProxyM Non impostato
    PortaM Non impostato
    MMC 228
    MNC 01
    Tipo default

    Potresti aggiungerlo alla versione Beta per favore?

  49. World ha detto:

    AIUTO! ciao io abito in svizzera e sono presso l’operatore swisscom. Ho il problema dell’APD che a ogni riavvio si reimposta e non ho più le app a pagamento. I dati dell’APN sono:
    Nome Swisscom
    APN gprs.swisscom.ch
    Proxy Non impostato
    Porta Non impostato
    Nome Non impostato
    Passwd Non impostato
    Server Non impostato
    MMSC null
    ProxyM Non impostato
    PortaM Non impostato
    MMC 228
    MNC 01
    Tipo default

    Potresti aggiungerlo alla versione Beta per favore?

  50. […] a meno che non abbiate un dispositivo rooted . In questo caso potrete scaricare la mia applicazione Market Enabler, che modifica i parametri del market facendo credere a google che abitiamo in […]

  51. Ivan ha detto:

    L’applicazione sembra essere veramente bella ma sul mio Hero ottengo il seguente errore We got an error Houston.

    Vi sono solozioni per questo?

  52. Ivan ha detto:

    L’applicazione sembra essere veramente bella ma sul mio Hero ottengo il seguente errore We got an error Houston.

    Vi sono solozioni per questo?

  53. eleuname ha detto:

    ragazzi io ho un htc tim non ancora flashato.. market enabler però non funziona, non trovo nulla a pagamento!
    colpa del mio magic ancora originale tim?

  54. eleuname ha detto:

    ragazzi io ho un htc tim non ancora flashato.. market enabler però non funziona, non trovo nulla a pagamento!
    colpa del mio magic ancora originale tim?

Social Media Auto Publish Powered By : XYZScripts.com