Autore Topic: Modifica APP (raggirare controllo Wifi obbligatorio)  (Letto 3337 volte)

Offline crash4

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 4.3
Modifica APP (raggirare controllo Wifi obbligatorio)
« il: 07 Gennaio 2014, 19:42:09 CET »
0
Buonasera a tutti,
nella speranza di non aver sbagliato sezione, essendo nuovo del forum, vi espongo il mio problema.
Mi trovo qui perchè sono migrato pochi giorni fa da da ios (iphone4 e ipad2) ad android (s4 e tab3).
Per lavoro uso molto un programma per la gestione della musica da remoto (Sonos v4.2) che però richiede di stare sulla stessa rete wifi dell'amplificatore per funzionare. Tramite una VPN ho risolto il primo problema, ossia di stare sulla stessa subnet dell'ampli, ma purtroppo il programma in questione fa una verifica sullo stato di accesso al wifi. Se non è collegato ad una qualunque rete wifi il programma non va avanti, non permettendomi di accedere al menu. Con ios risolvevo con l'app "3G Unrestrictor", che fa credere al programma di essere su wifi, ma con android mi hanno detto che, probabilmente per un limite del SO, un programma simile non esiste.
Allora ho pensato di andare a modificare manualmente il programma in questione. Per prima cosa tramite root ho revocato al programma il permesso di leggere lo stato wifi, ma purtroppo va in crash e si chiude, così ho abbandonato questa strada.
Come ultima risorsa ho pensato di andare ad intervenire sul codice così da evitare il controllo sul wifi, o di far credere al programma di essere sempre su wifi.
Ho decompilato l' apk e ora mi sono ritrovato tanti file .smali dal codice, per me, abbastanza incomprensibile poichè, da quello che ho capito, è un codice java/assembly (perdonatemi se ho detto una mostruosità).
Ora non so più che fare e non riesco ad andare avanti e purtroppo questo programma mi è fondamentale per lavorare. Non vorrei proprio tornare ad ios sinceramente, ed è proprio per questo che ho pensato di chiedere consiglio a chi è decisamente più esperto di me.

C'è un anima pia disposto a darmi qualche dritta o addirittura a spiegarmi come procedere?

In attesa di una risposta ringrazio e rinnovo i saluti.

Crash4

Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #1 il: 07 Gennaio 2014, 19:54:47 CET »
0
Per quanto ne so io, ammenoche l'applicazione non sia Open Source non è possibile modificare il suo codice sorgente e ricompilarla con funzioni aggiuntive o modifiche. A tal punto o ne crei una che sia come vuoi tu oppure potresti provare a contattare lo sviluppatore esponendo le tue considerazioni.

Inviato dal mio Galaxy Nexus con Tapatalk 2

SimoneDev @ Google Play Store

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #2 il: 07 Gennaio 2014, 21:56:33 CET »
0
Mi spiace ma non sono a conoscenza di applicazioni analoghe a quella che descrivi. Mi sa che non ce ne sono perchè fondamentalmente non ce n'è (quasi) mai bisogno. (quasi perchè il tuo è un caso)

Una cosa che proverei: metti il cellulare in Tethering e collegati al cellulare dal tablet, una volta connessi entrambi vedrebbero una rete wifi e userebbero quella 3g per i collegamenti dati.

Altra cosa che proverei: (come suggerito) scrivi all'autore per chiedergli di supportare una VPN.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline crash4

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 4.3
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #3 il: 08 Gennaio 2014, 13:38:57 CET »
0
Ciao a tutti e grazie per le risposte.
Bradipao ho provato come mi hai consigliato. Il programma in questione funziona in tethering, ma solo sul dispositivo che si collega, e non su quello che da il collegamento. Purtroppo è una soluzione non pratica, perchè la maggior parte delle volte non ho il tablet con me e quindi non avrei risolto il problema.
Nel frattempo ho contattato lo sviluppatore, ma da quel che ho capito non rientra proprio nella loro filosofia permettere l'accesso da remoto. Poi chissà che non abbiano già avuto molte richieste in merito e forse un giorno lo faranno.
Nel frattempo stavo pensando di modificare il codice sui files .smali, magari con l'aiuto di un debugger.
Sapreste consigliarmene uno?
PS Per CrotaNexus: non ho mai fatto un reverse engineering su android, ma so per certo che è fattibile, e piccole modifiche (per i più esperti anche grandi) si possono fare. Prendi ad esempio, tanto per dirne una, l'applicazione Skygo che è stata modificata e ricompilata per funzionare anche con il root.
Io spero che la mia sia una piccola modifica ;-) , magari basta cambiare nel codice uno 0 -> in 1 o viceversa, chissà.
Attendo altri consigli o idee.
Grazie

Crash4

Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #4 il: 08 Gennaio 2014, 16:40:01 CET »
0
Quello che dici è vero. E' possibile fare il Reverse Engineering di una applicazione Android. Ti basta rinominare il file apk in zip, estrarre il classes.dex e lavorare su quello tramite Dex2Jar o simili. Successivamente con un decompilatore Java apri il file elaborato da Dex2Jar. Così facendo risali al codice sorgente, anche se quasi del tutto infedele poichè la maggior parte delle applicazioni hanno il Proguard insito, che provvede ad offuscare il codice per rendere difficoltoso il problema del Reverse Engieering. Purtroppo lo rende soltanto difficile, non impossibile.

Resto comunque dell'idea che modificare un'applicazione adattandola alle tue esigenze è una pratica quasi del tutto impossibile. Se poi riesci nell'impresa, buon per te.
« Ultima modifica: 08 Gennaio 2014, 17:05:10 CET da CrotaNexus »
SimoneDev @ Google Play Store

Offline crash4

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 4.3
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #5 il: 08 Gennaio 2014, 19:09:10 CET »
0
Ho fatto in maniera differente da come hai spiegato tu; ho utilizzato il programma Apktool 2 che mi ha decompilato il tutto in files .smali.
Purtroppo non so dire se il Proguard ha offuscato il codice...proverò a ricompilare e signare il tutto per vedere se l'apk risultante funziona a dovere.
A quel punto dovrei cercare le righe da modificare per rendere non necessario il controllo wifi.
Mentre provo potreste indicarmi un buon e semplice dubugger?
Grazie

Crash4

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #6 il: 08 Gennaio 2014, 19:47:27 CET »
0
Mentre provo potreste indicarmi un buon e semplice dubugger?

Cosa intendi per "debugger" ?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline crash4

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 4.3
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #7 il: 08 Gennaio 2014, 20:01:12 CET »
0
Un programma che mi esegua passo passo le istruzioni e che mi permetta di individuare velocemente il punto che mi interessa magari posizionando dei breakpoints.
Stavo lavorando su una cosa del genere per vedere se fa al caso mio:

The blog of Dima Kovalenko: Debugging Smali code with apk-tool and NetBeans works!

Fatemi sapere che ne pensate :-)

Crash4

Offline CrotaNexus

  • Utente normale
  • ***
  • Post: 156
  • Vuolsi così colà dove si puote ciò che si vuole
  • Respect: +25
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    SimoneDev
  • Sistema operativo:
    Windows 8.1
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #8 il: 08 Gennaio 2014, 20:14:06 CET »
0
Ho fatto in maniera differente da come hai spiegato tu; ho utilizzato il programma Apktool 2 che mi ha decompilato il tutto in files .smali.
Purtroppo non so dire se il Proguard ha offuscato il codice...proverò a ricompilare e signare il tutto per vedere se l'apk risultante funziona a dovere.
A quel punto dovrei cercare le righe da modificare per rendere non necessario il controllo wifi.
Mentre provo potreste indicarmi un buon e semplice dubugger?
Grazie

Crash4
Se non ti ho consigliato questa soluzione, che conosco ed attuo in alcuni casi, è perchè sapevo a cosa andavi incontro. Con quel programma non risali ai file Java ad estensione .class bensì agli smali (ottenuti dalla decompilazione dei .dex), che sono composti dal linguaggio Assembly della Virtual Machine, quindi, uno pseudocodice.

Rinnovo il mio invito a seguire l'indicazione che ti ho dato poichè è l'unica funzionante (tra quelle da me testate) e che porta ad avere un codice Java abbastanza leggibile in alcune parti. Per ulteriori informazioni puoi visitare questo link: Java - Decompile .smali files on an apk - Stack Overflow.
« Ultima modifica: 08 Gennaio 2014, 20:51:15 CET da CrotaNexus »
SimoneDev @ Google Play Store

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #9 il: 08 Gennaio 2014, 20:44:12 CET »
0
Un programma che mi esegua passo passo le istruzioni e che mi permetta di individuare velocemente il punto che mi interessa magari posizionando dei breakpoints.

Capito. Per questo temo ti serva il codice JAVA del progetto, da caricare e far eseguire in un ambiente tipo Eclipse.

NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline criss74

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +6
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia U - Huawei ideos
  • Play Store ID:
    Il Conte
  • Sistema operativo:
    Debian 7.0 (Testing)
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #10 il: 09 Gennaio 2014, 12:30:55 CET »
0
Secondo me dovresti continuare sulla strada del "ingannare" il software, prova a fare il contrario, cioè prova ad attivare il wifi e ad abilitare il teethering e vedi così se ti funziona. Altrimenti bisognerebbe vedere se con i permessi di root, magari operando a livello di kernel linux si riesca a far credere ad android di essere in wifi anziche in 3g

Offline crash4

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 4.3
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #11 il: 09 Gennaio 2014, 13:45:56 CET »
0
Ciao criss74,
avevo già provato con il tethering ma non ha funzionato. La soluzione del kernel potrebbe essere valida, ma non so dove mettere le mani per fare una modifica simile.
Ciò che più mi stupisce è che software che "ingannano" le app facendo credere di essere in wifi invece che in 3G su IOS esistono da tempo immemore mentre su andorid nada.
Mi chiedo il perchè di una tale mancanza. Sai darmi qualche dritta in merito o su come procedere?
Grazie

Crash4

Offline criss74

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +6
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Sony Xperia U - Huawei ideos
  • Play Store ID:
    Il Conte
  • Sistema operativo:
    Debian 7.0 (Testing)
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #12 il: 09 Gennaio 2014, 15:33:50 CET »
0
Apri una shell sul tuo terminale con adb shell,
prova a dare il comando:
ip addr show:

questo è il risultato sul mio:
Citazione
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: upnlink0: <POINTOPOINT,NOARP,UP> mtu 65541 qdisc pfifo_fast state UNKNOWN qlen 1
    link/phonet 1b peer 00
3: shrm0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 65541 qdisc pfifo_fast state UNKNOWN qlen 3
    link/phonet 26 peer 00
    family 35 ???/0 scope link
4: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
    link/sit 0.0.0.0 brd 0.0.0.0
5: ip6tnl0: <NOARP> mtu 1452 qdisc noop state DOWN
    link/tunnel6 :: brd ::
6: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 90:c1:15:52:76:b2 brd ff:ff:ff:ff:ff:ff
8: rmnet0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 150
    link/phonet_pipe
    inet 109.52.54.134/31 scope global rmnet0

in questo momento ho attiva la connessione dati gsm e l'unica interfaccia ad avere ip è la rmnet0, la wifi è spenta ed infatti l'interffaccia wifi0 è DOWN.
Da questo si può capire che la wifi è identificata dal telefono come wifi0 (non è detto che per tutti i terminali sia così), come la identifica il tuo terminale lo puoi vedere nel build prop in questo modo:
grep wifi.interface /system/build.prop

e questo è il risultato nel mio caso:
Citazione
wifi.interface=wlan0

Considerando ciò e premettendo di avere i privilegi di root, si possono fare due tentativi:
- Cambi il parametro nel build.prop (ma la vedo un pò rischiosa)
- Provi ad attivare in modo fittizio l'interfaccia wifi0 con dei comandi manuali:
ifconfig wlan0 up
ifconfig wlan0 192.168.1.100
avendo cura di scegliere l'indirizzo in modo tale che non vada in conflitto con la tua vpn, ma non so se in questo modo riesci comunque a far credere ad android che la wifi sia attiva.
Devi provare!

Offline crash4

  • Nuovo arrivato
  • *
  • Post: 6
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S4
  • Sistema operativo:
    Android 4.3
Re:Modifica APP (raggirare controllo Wifi obbligatorio)
« Risposta #13 il: 09 Gennaio 2014, 17:12:42 CET »
0
Ciao criss74,
grazie per il prezioso consiglio.
Ho provato come mi hai detto e:

- Nel build.prop non c'è traccia dell'interfaccia wifi.
- Con la shell cmq sono riuscito a vedere le interfacce e la mia è wlan0.

Ho provato ad attivare e ad assegnare un indirizzo come mi hai detto, ma il problema rimane. Credo che cmq questa, anche se un pò macchinosa, possa essere una strada buona.
Ho notato che, anche se mando i due comandi:
ifconfig wlan0 up
ifconfig wlan0 192.168.1.100

il "fast state" della wlan0 rimane su "DORMANT" e non su "UP" e un altro parametro è impostato su "NO-CARRIER". Forse forzando anche questi parametri potrebbe funzionare. Sai come posso fare?

Grazie

Crash4
« Ultima modifica: 09 Gennaio 2014, 17:15:05 CET da crash4 »