Autore Topic: Emulatori e terminazione di una app in esecuzione  (Letto 1298 volte)

Offline samigio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC
  • Sistema operativo:
    Android 3.2
Emulatori e terminazione di una app in esecuzione
« il: 20 Dicembre 2014, 00:46:07 CET »
0
Ciao,
attraverso una verifica a livello di codice  è possibile determinare se un app è run-time sul dispositivo mobile piuttosto che l’emulatore. In particolare invocando il metodo BRAND della classe BUILD si ottiene:
- il valore “generic” se l’app è run time su un emulatore ARM CPU based
- il valore  “generic_x86″ se l’app è run time su un emulatore Intel based
- il valore del prodotto\hardware del dispositivo mobile sul quale l’app è run time

Alcuni programmatori utilizzano questo controllo per eventualmente terminare l’esecuzione dell’app se questa è run time sull’emulatore.

Mi chiedo quale possono essere le motivazioni che inducono un programmatore a terminare l'esecuzione dell'app se questa "gira" su un emulatore.

Che ne pensate

Ciao
Gianluca

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #1 il: 20 Dicembre 2014, 03:30:27 CET »
0
La verifica se un app sta girando sotto un emulatore dipende dal programmatore, alcuni non vogliono perché blocchi gli eventuali banner pubblicitari o vogliono ostacolare il reverse engineering o gli da fastidio che qualcuno esegua la propria app sull'emulatore o altro.

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline samigio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC
  • Sistema operativo:
    Android 3.2
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #2 il: 20 Dicembre 2014, 14:41:48 CET »
0
Ok per i banner perchè non avevo pensato a questa possibilità, anche se non capisco perchè vengono bloccati nel caso in cui l'app "gira" sun un emulatore che ad esempio consente la raggiungibilità della rete Internet.

Per quanto riguarda l'ostacolare l'attività di reverse engineering non mi trovo molto d'accordo. Il controllo del BRAND per la terminazione dell'app può essere efficace durante la fasa di run time dell'app stessa, mentre il reverse engineering lo faccio (utilizzando prodotti open source) sul file .apk senza che questo sia in esecuzione.

Interessante confronto.

Ciao
Gianluca

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #3 il: 20 Dicembre 2014, 15:43:47 CET »
0
Emulatore permette di esaminare facilmente la memoria dei programmi per cercare dati riservati offuscati nel codice.

Emulatore permette di simulare la posizione GPS, alcuni giochi si basano su questa informazione e qualcuno potrebbe sfruttarlo per barare.

Con emulatore si può facilmente reindirizzare il traffico internet per ingannare le app con dei finti server.

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline samigio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC
  • Sistema operativo:
    Android 3.2
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #4 il: 20 Dicembre 2014, 23:26:41 CET »
0
Tu dici perchè potrebbe impedire di usare dei banner pubblicitari e io mi chiedo perchè? Perchè un banner pubblicitario potrebbe essere bloccato su un app che gira su un emulatore? Da cosa dipende tecnicamente l'eventuale blocco?

Ciao
Gianluca

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #5 il: 21 Dicembre 2014, 10:34:18 CET »
0
Emulatore per accedere a una rete esterna passa attraverso un TUN/TAP  network bridge, non è detto che sia attivo.

Con l'emulatore è più facile  bloccare eventuali siti di banner attraverso un blocco selettivo di determinati IP senza intervenire direttamente sull'Android emulato.

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline samigio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC
  • Sistema operativo:
    Android 3.2
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #6 il: 21 Dicembre 2014, 11:28:27 CET »
0
Si mi torna il discorso del blocco selettivo degli IP, però è anche vero che questa cosa la puoi fare anche direttamente sui dispositivi mobili utilizzando un firewall opportunamente configurato.

E comunque in generale ma quanti utilizzano un emulatore? Probabilmente solo chi ha necessità di fare analisi e dunque poche persone - ne consegue che il taglio pubblicitario sarebbe minimale.

Ciao


Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #7 il: 21 Dicembre 2014, 17:55:19 CET »
0
Per accedere al firewall interno o modificare un file particolare devi abilitare l'utente root nel dispositivo.

Vero, la gente che trasferisce le app nel emulatore sono molto pochi ma ci sono programmatori che rivelano e bloccano l'esecuzione se app gira sotto l'emulatore o se scoprono l'utente root abilitato.

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline samigio

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC
  • Sistema operativo:
    Android 3.2
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #8 il: 21 Dicembre 2014, 20:28:21 CET »
0
Non sempre occorre essere "root". Un esempio, chiaramente non esaustivo, è dato dall'applicazione "NoRoot Firewall" disponibile al link https://play.google.com/store/apps/details?id=app.greyshirts.firewall&hl=it. Nella descrizione viene testualmente riportato quanto segue: "NoRoot Firewall allows you to create filter rules based on IP address, host name or domain name. You can allow or deny only specific connections of an app". Da questo punto di vista dunque potrei tranquillamente filtrare gli IP di provenienza dei banner pubblicitari.

In generale tornando al punto di partenza mi rimane ancora poco chiaro quale sia la motivazione che induce un programmatore a terminare un'app se viene eseguita su un emulatore.

Ciao

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Emulatori e terminazione di una app in esecuzione
« Risposta #9 il: 21 Dicembre 2014, 22:50:54 CET »
0
Unica cosa che ha di firewall quell'app è nel nome :-)

Fidati, l'unico modo per accedere al firewall del sistema operativo è abilitate l'utente root.
adb logcat | tee /tmp/logcat | grep TAG