2013-08-09 10 views

risposta

9

Come sempre c'è un compromesso tra comodità e sicurezza. Più sicuro vuoi la tua app, meno conveniente sarà per te sviluppare.

Il codice sorgente è intrinsecamente insicuro a causa della facilità di decompilazione, in particolare con il telefono rooted. Per proteggere il tuo codice sorgente puoi offuscare e/o crittografare il tuo codice che impedirà la decompilazione. Non sono sicuro di quali strumenti sono disponibili per Android, ma sono sicuro che complicherà il processo di compilazione. Se solo offuscate, la decompilazione potrebbe essere ancora possibile, ma sarà molto più difficile e richiederà probabilmente che la persona tenti di decompilare il codice per conoscere e comprendere il Bytecode se viene utilizzato un forte livello di offuscamento.

Per proteggere le tue risorse, credo che la tua unica opzione sia utilizzare la crittografia. Di nuovo questo complicherà l'app e/o il processo di creazione a seconda di dove implementate.

Anche se si utilizza la crittografia per proteggere le risorse, è necessario proteggere la chiave di crittografia all'interno del codice sorgente. Ovviamente, non importa quale schema di crittografia utilizzi se la tua chiave di crittografia è in chiaro nel codice sorgente, allora chiunque può prendere la chiave e il tuo patrimonio e decodificarlo. Tutto ciò è aggiungere un altro piccolo recinto per saltare.

Tuttavia, se si protegge correttamente la chiave di crittografia e si utilizza un buon algoritmo di crittografia, è necessario preoccuparsi di meno. Questo è un processo abbastanza complicato, tuttavia, è difficile utilizzare una chiave per la crittografia all'interno del codice e non tenerla in chiaro. Anche se non lo si mantiene in chiaro nel codice, a un certo punto deve essere in memoria per eseguire la decrittografia. Quindi, se qualcuno può collegare un debugger o eseguire il dump della memoria al momento giusto, comprometterà la chiave. Certo, questo richiede un avversario molto più abile.

In generale, devi decidere esattamente chi sei preoccupato di rubare i tuoi beni. Se sei preoccupato per la media di Joe che li copia, allora dovresti essere ok. Se sei preoccupato per un hacker professionista, un kiddie di script, ecc. Accedendo a loro, probabilmente sei sfortunato.

7

qualcuno può, per favore, dirmi come salvaguardare le mie risorse di app Android dai gatti che vogliono creare app simili?

In genere, non è possibile. Se è nell'app, chiunque lo desideri può raggiungerli.

Siete invitati a rollare il vostro schema di crittografia, o utilizzare strumenti come DexGuard. Tuttavia, poiché il motore e la chiave di decrittografia devono trovarsi nell'app stessa, tutto ciò aumenta il livello di impegno richiesto per accedere alle risorse. Rendere più difficile ridurrà le probabilità che qualcuno afferri le risorse dal tuo APK, ma non ne impedisce la possibilità. E, naturalmente, ci sono altri modi per ottenere gran parte di questa roba (ad es. Screenshot e editor di immagini, registrazione dell'audio riprodotto dall'app).

+0

Ho provato il metodo di crittografia e decrittografia ma rallenta notevolmente l'app. Quindi preferisco mantenere le risorse direttamente.Grazie comunque per la tua risposta – Yogamurthy

0

È possibile proteggere i contenuti delle cartelle degli asset crittografandoli mediante algoritmi di crittografia avanzata e decrittografandoli in fase di runtime. I copioni non possono facilmente decrittografare e ottenere il contenuto delle cartelle degli asset semplicemente estraendo apk usando gli strumenti zip.

Problemi correlati