Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
enjarify — Traduce il bytecode Dalvik (DEX/APK) in bytecode Java equivalente, permettendo agli strumenti di analisi Java di elaborare applicazioni Android con alta correttezza per i casi limite. | Kitploit
Strumenti/GitHubGitHub/google/enjarify
Sicurezza AndroidAnalisi StaticaAnalisi del CodiceReverse EngineeringSicurezza MobileAnalisi di BinariArchived
GitHubgoogle/enjarify

enjarify

Traduce il bytecode Dalvik (DEX/APK) in bytecode Java equivalente, permettendo agli strumenti di analisi Java di elaborare applicazioni Android con alta correttezza per i casi limite.

Vedi Repository
2.7k5396 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Nota: Questo repository potrebbe essere obsoleto. Lo sviluppo futuro avverrà su https://github.com/Storyyeller/enjarify.

Introduzione

Enjarify è uno strumento per tradurre bytecode Dalvik in bytecode Java equivalente. Ciò consente agli strumenti di analisi Java di analizzare applicazioni Android.

Utilizzo e installazione

Enjarify è un'applicazione puramente Python 3, quindi puoi semplicemente clonare il repository con git ed eseguirlo. Per eseguirlo direttamente, supponendo che tu sia nella directory principale del repository, puoi semplicemente digitare

root@kitploit:~
python3 -O -m enjarify.main yourapp.apk

Per un uso normale, probabilmente vorrai utilizzare gli script wrapper e configurarlo nel tuo PATH.

Linux

Per comodità, viene fornito uno script shell wrapper, enjarify.sh. Questo tenterà di utilizzare Pypy se disponibile, poiché è più veloce di CPython. Se vuoi essere in grado di chiamare Enjarify da qualsiasi punto, puoi creare un collegamento simbolico da qualche parte nel tuo PATH, come ~/bin. Per fare ciò, supponendo che tu sia nella directory principale del repository,

root@kitploit:~
ln -s "$PWD/enjarify.sh" ~/bin/enjarify

Windows

Viene fornito uno script batch wrapper, enjarify.bat. Per poterlo chiamare da qualsiasi punto, aggiungi semplicemente la directory principale del repository al tuo PATH. Lo script batch invocherà sempre python3 come interprete. Se vuoi usare pypy, modifica lo script.

Utilizzo

Supponendo che tu abbia configurato correttamente lo script nel tuo PATH, puoi chiamarlo da qualsiasi punto semplicemente digitando enjarify, ad es.

root@kitploit:~
enjarify yourapp.apk

La forma più basilare di utilizzo è specificare un file apk o un file dex come input. Se specifichi un apk multidex, Enjarify tradurrà automaticamente tutti i file dex e restituirà i risultati in un unico jar combinato. Se specifichi un file dex, solo quel file dex verrà tradotto. Ad esempio, supponendo che tu abbia estratto manualmente i file dex, potresti fare

root@kitploit:~
enjarify classes2.dex

Il file di output predefinito è [inputname]-enjarify.jar nella directory corrente. Per specificare esplicitamente il nome del file per l'output, passa l'opzione -o o --output.

root@kitploit:~
enjarify yourapp.apk -o yourapp.jar

Per impostazione predefinita, Enjarify rifiuterà di sovrascrivere il file di output se esiste già. Per sovrascrivere l'output, passa l'opzione -f o --force.

Perché non dex2jar?

Dex2jar è uno strumento più vecchio che tenta anch'esso di tradurre Dalvik in bytecode Java. Funziona abbastanza bene la maggior parte delle volte, ma molte caratteristiche oscure o casi limite possono causarne il fallimento o addirittura produrre risultati errati in modo silenzioso. Al contrario, Enjarify è progettato per funzionare nel maggior numero possibile di casi, anche per codice dove Dex2jar fallirebbe. Tra le altre cose, Enjarify gestisce correttamente nomi di classe Unicode, costanti utilizzate come tipi multipli, cast impliciti, gestori di eccezioni che saltano nel flusso di controllo normale, classi che fanno riferimento a troppe costanti, metodi molto lunghi, gestori di eccezioni dopo un gestore catchall e valori di inizializzazione statici del tipo sbagliato.

Limitazioni

Enjarify attualmente non traduce metadati opzionali come attributi del file sorgente, numeri di riga e annotazioni.

Enjarify fa del suo meglio per tradurre con successo quante più classi possibile, ma ci sono alcuni casi potenziali in cui semplicemente non è possibile a causa di limitazioni in Android, Java o entrambi. Fortunatamente, questo accade solo in circostanze artificiose, quindi non dovrebbe essere un problema nella pratica.

Suggerimenti sulle prestazioni

PyPy è molto più veloce di CPython. Per installare PyPy, visita http://pypy.org/. Assicurati di ottenere PyPy3 anziché il PyPy normale. Lo script wrapper Linux utilizzerà automaticamente il comando pypy3 se disponibile. Su Windows, dovrai modificare tu stesso lo script wrapper.

Per impostazione predefinita, Enjarify esegue ottimizzazioni sul bytecode che lo rendono più leggibile per gli umani (propagazione delle copie, rimozione dei valori inutilizzati, ecc.). Se non ne hai bisogno, puoi accelerare le cose disabilitando le ottimizzazioni con l'opzione --fast. Nota che nel rarissimo caso in cui una classe sia troppo grande per entrare in un classfile senza ottimizzazione, Enjarify la ritenterà automaticamente con tutte le ottimizzazioni abilitate, quindi questa opzione non influisce sul numero di classi tradotte con successo.

Dichiarazione di non responsabilità

Questo non è un prodotto ufficiale di Google (sperimentale o altro), è solo codice che è di proprietà di Google.

Scarica lo strumento