Ok.
Diamo un'occhiata alle opzioni di scambio.
Diamo quindi una prima occhiata a questo strumento.
Quindi vado nel riquadro della directory delle applicazioni e apro questo testo di classe attraverso Cha Cha con Shady Guy.
E questo qui, eccolo.
Questa è la panoramica di questo strumento, è super pulito e mi piace molto.
A sinistra abbiamo i nomi dei pacchetti e questi nomi contengono le classi sottostanti.
Per esempio, all'interno dei sistemi, abbiamo questo sistema di comportamento alieno e possiamo
vedere il codice Java da qui se prendiamo questo.
Chad Abbiamo avuto problemi con la compilazione di questo metodo, che quindi presenta questi riferimenti al bytecode.
Pertanto, non è possibile ottenere il codice sorgente Java in questo momento.
Ok.
Un buon punto di partenza è questo qui, perché il nome del pacchetto è identico all'identificatore del pacchetto di questa
applicazione.
È molto probabile che il codice qui sotto sia stato aggiunto dallo sviluppatore, perché risulta anche,
per esempio, che le classi Java di Android sono fornite in bundle con il sistema Android e non sono
interessanti per noi.
Pertanto questo sembra provenire dallo sviluppatore.
E sì, ne abbiamo già la prova.
Quindi, sotto il nome di questo pacchetto potrebbero esserci molte cose interessanti per cui iniziare il reverse engineering
di questa applicazione.
Il JDK è dotato di molte opzioni interessanti, di cui discuteremo rapidamente.
Abbiamo questo, per esempio, questo è un tipo aperto e possiamo cercare qui i tipi.
Per esempio, se si digita player, si ottengono questi, see, che significa classi o questo E, che significa
tipi enum.
C'è anche un'intelligenza artificiale per le interfacce.
E possiamo vedere qui, per esempio, che se ottengo di più ora abbiamo tutte le classi che contengono player a questo punto,
se vogliamo cercare all'interno dell'intero codice, per esempio, per le variabili o i nomi dei metodi, dobbiamo usare
una ricerca diversa, che è proprio accanto a questa.
E qui possiamo vedere cosa vogliamo cercare.
E sì, di solito controllo tutto proprio qui, perché non sappiamo bene cosa stiamo
cercando.
Ad esempio, se si cerca un come, questo potrebbe essere il nome di un campo, potrebbe essere un metodo o un costruttore
e così via.
Pertanto, mi piace andare avanti con tutti loro.
Se l'uscita diventa troppo grande.
Ci provo, sì.
Ridurre al minimo questo approccio.
Ad esempio, se cerchiamo, come non cerchiamo tipi o campi, potremmo cercare come all'interno di
metodi o costruttori, ad esempio.
Ma il più delle volte non è così.
Così possiamo aderire a tutti.
È anche bello avere questa X qui ed è anche insensibile alle maiuscole e alle minuscole.
Per esempio, se cerchiamo qualcosa, diciamo Aiden, otteniamo tutti questi risultati alieni laggiù e qui, per esempio, possiamo vedere, ok, qui c'è
stata una classe aliena, ma questa è una classe di gruppi e la classe di questo gruppo
sembra contenere qualche riferimento a stringhe con Alien.
Ed eccoci qui.
Ci sono alieni con le corde, colpi alieni e così via.
Quindi questa ricerca è la finestra più utilizzata nella categoria per me in questo momento.
Ok.
Poi c'è questo, che è la gerarchia dei tipi.
Anche io non sono sicuro di questa pronuncia.
Spero che sia corretto.
Questo è molto utile durante il nostro approccio di reverse engineering, perché mostra l'ereditarietà
di queste classi.
Per esempio, abbiamo questo sistema di comportamento alieno qui e questo estende il sistema di elaborazione
delle entità se andiamo in cima.
Possiamo vedere.
Sì, estende il sistema di elaborazione delle entità e questo estende il sistema delle entità.
Lo vediamo qui.
Così possiamo vedere l'ereditarietà di tutte le classi, il che è molto utile durante il processo di reverse
engineering.
Va bene.
E infine, cosa rimane?
L'unica cosa che rimane sono le preferenze.
Possiamo sfuggire ai caratteri Unicode.
Questo è piuttosto interessante.
Esplorazione della directory.
Mi dispiace per questa volta.
Profondità massima.
L'ho testato con un'applicazione perché non ero sicuro che Shady Guy cercasse nei file che si trovano
in sottodirectory fino a 40.
Quindi, se si aggiungono 40 directory in un'applicazione, la mia ipotesi era che potessimo perderle.
Ma l'ho testato e funziona.
Ma se si incontra un'applicazione che ha molte sottodirectory, potrebbe trattarsi di qualche offuscamento
o di qualche meccanismo anti-inversione.
Pertanto, vi invitiamo a controllarli manualmente.
Per il resto, il resto non è così importante.
E sì, forse la dimensione dei caratteri potrebbe essere utile se si volesse aumentarli a 40, ad esempio,
e poi a 14.
Scusate, allora è più facile da leggere e questo è tutto.
In questo momento carichiamo le classi Java in questo file e possiamo fare il reverse engineering di questa applicazione avendo
a disposizione tutti questi strumenti.
Nella maggior parte dei casi, ci atteniamo semplicemente a questo qui, che è il motore di ricerca.
Nella prossima sezione, daremo un'occhiata ad ADX, che è uno strumento a riga di comando, e a Shade X, che è l'interfaccia
grafica per questo strumento.
All'interno di questo strumento possiamo inserire un intero APK, il che è molto bello, ma presenta anche alcuni svantaggi,
che vorrei sottolineare in merito a questo approccio.
Va bene.
Per ora è tutto.
Sentitevi liberi di curiosare e di fare il reverse engineering di questa applicazione dopo che vi avrò presentato il nostro strumento.
Il vostro compito sarà sicuramente quello di familiarizzare con questo sistema e vi fornirò anche alcuni compiti da
svolgere.
Ad esempio, per trovare le vite dei giocatori e altre cose.
Non voglio rovinare tutto in questo momento.