2009-11-02 6 views
11

Esiste uno strumento per deoffuscare i codici offuscati java?(2009) - Strumento per deoffuscare i codici Java

I codici vengono estratti da una classe compilata ma sono offuscati e non leggibili.

+4

Non un duplicato, a meno che non ne trovi uno che parla di * deobfuscation * (non offuscamento) –

risposta

9

Hai provato a rendere il codice meno oscuro con Java Deobfuscator (aka JDO), una sorta di decompilatore intelligente?

Attualmente JDO esegue le seguenti operazioni:

  • rinomina metodi offuscato, variabili, costanti e nomi di classe essere unico e più indicativo di loro tipo
  • propagherà modifiche in tutto l'albero intera sorgente (beta)
  • ha una GUI facile da usare
  • consente di specificare il nome per un campo, metodo e classe (nuova funzione!)

Attualmente JDO non fare il seguente (ma un giorno potrebbe)

  • metodo di modifica bytecode in alcun modo
+0

Farò un tentativo. – Salar

+1

Questa applicazione non fa distinzione tra maiuscole e minuscole per i nomi di file e causa molti problemi. – Salar

14

Il primo passo sarebbe quello di imparare con quale strumento è stato offuscato. Forse c'è già un "deobfuscator" in giro per il particolare obfuscator.

D'altra parte, è anche possibile eseguire un IDE e utilizzare i suoi poteri di refactoring. Rinominare la classe, il metodo e i nomi delle variabili in qualcosa di sensibile. Usa i tuoi poteri di pensiero logico umano per capire cosa rappresenta effettivamente il codice e nominali sensibilmente. E l'immagine crescerà lentamente ma sicuramente.

Buona fortuna.

+0

Non so quale oscuratore è utilizzato. E sul processo di decompilazione alcuni metodi e variabili appaiono come "???" e vengono dal nulla! Sto usando JD-GUI http://java.decompiler.free.fr/ – Salar

+1

JDO può aiutare a farlo.Vedi http://stackoverflow.com/questions/1662766/tool-to-deobfuscate-java-codes/1662928#1662928 –

+1

Ah, in questo modo. Bene, quindi il decompilatore non supportava la versione del compilatore originale, ad es. decompilare contro Java 1.5 mentre il codice è stato compilato con 1.6. Questo non funzionerà. Leggi la documentazione del decompilatore e/o prova quelli diversi. – BalusC

1

Molto probabilmente solo MindPower umano di dare un senso esso. Ottieni il miglior decompilatore disponibile e medita sul suo output.

6

Non gravedig ma ho scritto uno strumento che funziona sulla maggior parte obfuscators commerciali

https://github.com/Contra/JMD

+0

C'è un readme per questo? – 2371

+0

Non proprio lol. Ho appena aggiunto una build di produzione, quindi se vai su Download puoi scaricarlo con la GUI – Contra

+0

"JMD è stato interrotto per mancanza di tempo ed è stato aggiornato l'ultima volta il 24 novembre 2010." ... Due mesi prima del tuo post. –

1

Forse funziona su Unix/Linux/MacOS?

In tal caso, è possibile spostare un passaggio del processo in una VM, in cui si scompatta il codice, prima di rinominare i nomi troppo lunghi. Quanto è lungo il limite del nome del file su Windows?

Problemi correlati