yaoteng / myhunter (Italiano)

# # # # # AVVISO: La stringa di funzionalità è molto importante. Può essere modificato insieme all’evoluzione dei servizi di indurimento. Se non è corretto, il processo di disimballaggio non può essere attivato. DexHunter sfrutta” fwrite ” e altre funzioni libc per manipolare i file. Ma queste funzioni sono agganciati da servizi di indurimento con conseguente crash del processo. Di conseguenza, non è possibile utilizzare l’immagine fornita per decomprimere i servizi hardedning più recenti. È meglio sostituire queste funzioni con le chiamate di sistema dirette per evitare crash.,

DexHunter mira a decomprimere automaticamente il file dex indurito.

DexHunter si basa sul codice sorgente di Android runtime. È composto da ARTE modificata e runtime DVM. È possibile utilizzare il runtime modificato per sostituire il contenuto originale nei codici sorgente Android (Android 4.4.3). La modifica è principalmente in ” art / runtime / class_linker. cc “(ART) e ” dalvik/vm/native/dalvik_system_DexFile.cpp “(DVM).

###Uso:

Se si desidera decomprimere un app, è necessario spingere il file “dexname” a “/ data / ” nel cellulare prima di avviare l’applicazione., La prima riga in “dexname” è la stringa di funzionalità (riferendosi a ” slide.pptx”). La seconda riga è il percorso dati dell’app di destinazione (ad esempio ” /data/data/com.test.test/”). Il suo finale di linea dovrebbe essere nello stile di Unix / Linux. È possibile osservare il registro utilizzando “logcat” per determinare se la procedura di disimballaggio è terminata. Una volta fatto, il generato “intero.il file” dex ” è il risultato desiderato che si trova nella directory dei dati dell’app.

###Suggerimenti:

  1. DexHunter semplicemente riutilizza il contenuto prima della sezione “class_def” invece di analizzarli per l’efficienza., Se ci sono alcuni problemi, è possibile analizzarli e riassemblarli di nuovo o modificarli staticamente.

  2. Vale la pena notare che alcuni campi “annotation_off” o “debug_info_off” potrebbero non essere validi nel risultato. Questi file non hanno nulla a che fare con l’esecuzione solo per ostacolare la decompilazione. Non ci occupiamo specificamente di questa situazione per il momento. Puoi semplicemente programmare alcuni script per impostare i file non validi con 0x00000000.,

  3. Come è noto, alcuni servizi di hardening possono proteggere diversi metodi nel file dex ripristinando le istruzioni appena prima di essere eseguite e pulendole subito dopo aver finito. Quindi è anche necessario modificare la funzione” DoInvoke “(ART) o” dvmMterp_invokeMethod ” (DVM) per estrarre l’istruzione protetta durante l’esecuzione.

4)La stringa di funzionalità può essere modificata insieme all’evoluzione dei servizi di hardening.

5) Se” fwrite ” e altre funzioni libc falliscono, forse queste funzioni vengono agganciate indurendo i sevizi., Di conseguenza, non è possibile scaricare la memoria tramite di essi. È possibile ignorare questa limitazione chiamando direttamente le chiamate di sistema pertinenti.

DexHunter ha una propria limitazione. Con lo sviluppo dei servizi di indurimento, DexHunter potrebbe non essere efficace in futuro. Se siete interessati, è possibile modificare DexHunter per tenere il passo con i servizi di indurimento continuamente.

###Descrizione del file:

“demo.mp4” è il video dimostrativo di disimballaggio di un app indurito da Ali.

“prova.apk ” è il campione utilizzato nel video.

“dexname” è il file di configurazione utilizzato nel video.,

La directory”art” è il runtime modificato per ART.

La directory”dalvik” è il runtime modificato per DVM.

i file”immagine” 7z contengono i file immagine di sistema utilizzati nel video.

Se avete qualunque domanda, si prega di contattare me via e-mail a [email protected].

Se si utilizza questo codice, si prega di citare il seguente documento. Grazie!

Yueqian Zhang, Xiapu Luo e Haoyang Yin, DexHunter: Towards Extracting Hidden Code from Packed Android Applications, Proceedings of the 20th European Symposium on Research in Computer Security (ESORICS), Vienna, Austria, September 2015.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Vai alla barra degli strumenti