299 Shares 3252 views

Reverse-engineering per i principianti. Tutte le applicazioni Android di protezione da reverse engineering

A volte uno vuole vedere, e che tipo di compilazione di un programma specifico? Poi si deve utilizzare un reverse-engineering. Di cosa si tratta? Come funziona? Come è questo processo? Tutto questo si impara da questo articolo.

Che cosa è un programma di reverse-engineering?

La cosiddetta analisi delle applicazioni di processo al fine di capire come funziona, in modo che in futuro per ricreare questo processo, rendendo le modifiche necessarie. Di solito utilizzato per questo scopo e debugger assembler. A seconda della qualità del software utilizzato sarà diverso e il risultato è la quantità di tempo che dovrebbe essere speso su di esso per portare in una forma normale. Spiegare reverse-engineering per i principianti il miglior esempio. Come ciò eseguire un'applicazione scritta per Android. Ora cerchiamo di essere per scoprire cosa e come.

Lavorare con Android-applicazioni

In primo luogo abbiamo bisogno di chiarire alcuni punti. L'applicazione utilizza il bytecode e LogCat. Questo controparti locali precedentemente menzionati debugger e assembler. È inoltre necessario comprendere la struttura delle applicazioni stesse. Così, ogni programma è un file con l'estensione apk. Ha imballato zip'om. Siamo interessati a suoi contenuti – le risorse dell'applicazione, classes.dex e AndroidManifest.xml. Se fate la programmazione su Android, i problemi con il primo e il secondo non dovrebbe essere. Ma classes.dex – questo codice byte programma che è compilato specificatamente per la macchina virtuale. Estratto dal suo codice sorgente Java disponibili su Internet non ottenere i fondi. Ma è possibile ottenere codici operativi Dalvík – una speciale serie di comandi che vengono utilizzati per la macchina virtuale. Per analogia si può dire che questa assemblea di inondazione locale. Classes.dex anche può essere convertito in un file con il vaso. Anche in tal caso, è possibile ottenere un java-codice dopo la decompilazione, che sarà più o meno leggibile. Questo è il percorso che andiamo.

decompilazione

Questo processo sarà effettuato utilizzando il programma Apk Manager. Prima di iniziare, assicurarsi che non vi sia il driver corretto per devaysa e la modalità USB-debug funzionante. Inizialmente, avremo bisogno di spostare il file che verrà analizzata in una direttiva apk_manager luogo-apk-qui-per-modding. Dopo di che è necessario eseguire Script.bat. Se non c'è nessun problema, quindi avviare la console, che sarà scritta verde. Selezionare il numero del punto nove – "Decompile". Una volta avviato il processo, è necessario non chiudere console. Poi, l'open interest APK-file utilizzando l'archiviazione ed estratto da esso classes.dex, da elaborare dex2jar programma. Per noi il risultato richiesto è necessario spostare un oggetto con il bat estensione. Vedrete il file, che si concluderà a .jar. Finora, la finestra non si chiude.

analizziamo i dati

Per ottenere informazioni sull'applicazione, è necessario aprirlo manifesto. In base ad esso, stabiliamo che agisce come l'attività principale. Era lei che presenta ora la più grande importanza per noi. E 'anche auspicabile guardare il fondo del programma. Se il fondo è l'informazione circa il gestore delle licenze, è molto difficile da realizzare reverse engineering. Se si passa a JD-GUI ed espandere l'albero, possiamo vedere diversi spazi dei nomi. Si supponga che i tre di loro. Nel primo sono i file associati con la pubblicità. Il secondo sarà classi License Manager. Nel terzo, noi siamo i dati necessari. E 'quando andiamo. Non ci sarà bisogno di trovare e rimuovere la chiave, e poi il resto delle linee che controllano se versione con licenza di lavoro. Tutti questi devono essere puliti. Poi, nel nostro Apk manager alla ricerca di un luogo in cui posto specificato bytecode. Ora facciamo un piccola digressione e commentate la squadra, che può potenzialmente causare problemi. Dopo di che, non ci resta che compilare il programma.

Creare applicazioni

Questo ci aiuterà tutti uguali Apk Manager. Nella console, che non abbiamo bloccato, selezionare la voce №14. Prossimo trucco. Se l'applicazione è piuttosto complicato, quando si inizia, si può perdere parzialmente o completamente la sua efficienza. Non ti preoccupare, vuol dire che siamo solo a metà strada e un altro posto dove andare. Noi continuiamo a svolgere le applicazioni Android Tutti i reverse-engineering-. Dire, che cosa fare in un caso particolare, in termini generali, ahimè, è impossibile. Pertanto, cercare aree problematiche avranno il loro. Ad esempio, se una finestra di applicazione è bloccata finestra pop-up, si dovrebbe vedere il codice e rimuovere la parte che è responsabile di questo dialogo. Per contribuire a questo può JD-GUI. Come si può vedere, l'ingegnerizzazione inversa non è un compito facile, e richiede un notevole bagaglio di conoscenze. Anche se tutto è gestito senza problemi, sarà necessario verificare le prestazioni delle applicazioni. Cioè, il reverse-engineering è più tempo di attività. Continuiamo a lavorare fino a quando sono identificati tutti i problemi.

sicurezza

Che cosa succede se abbiamo bisogno di protezione All-Android applicazione dal reverse engineering? In questo caso, ci sono due opzioni: l'uso di programmi specifici o la creazione di una struttura di codice che interferirà per fare parsing scritta. Quest'ultima opzione è adatta solo professionisti con esperienza, in modo che prenderà in considerazione solo il primo metodo di protezione. Come un utilizzo del software ProGuard specializzato. Questa applicazione, che viene utilizzato per ridurre, offuscamento e di ottimizzazione del codice. Se il programma di "inseguire" attraverso di essa, si ottiene un file con estensione * .apk più piccolo di lui. In tal caso sarebbe molto più difficile da smontare. E il vantaggio di questo programma è che è anche stata introdotta nelle applicazioni di build Android con aggiornamenti R9. Pertanto, approfittare di esso è uno sviluppatore che ha gli strumenti standard di creazione e lo sviluppo.

conclusione

Non possiamo dire che il reverse-engineering può essere rappresentato come qualcosa di uniformemente buono o cattivo. Naturalmente, dal punto di vista degli sviluppatori, che hanno creato una domanda, non è un lieto evento. Ma d'altra parte, in molti casi sperimentato programmatori che scrivono i file necessari può essere un momento meno costoso che l'uso di tali strumenti. Anche se per gli sviluppatori alle prime armi reverse-engineering può rendere un buon servizio se non v'è alcuna idea di come implementare qualcosa, anche esemplare, e non del tutto chiaro profilo può aiutare con il raggiungimento di questo obiettivo.