2009-11-02 22 views
11

Czy istnieje narzędzie do odfiltrowania kodów zaciemnionych java?(2009) - Narzędzie do odświeżania kodów Java

Kody są pobierane z skompilowanej klasy, ale są zaciemnione i nieczytelne.

+4

Nie duplikat, chyba że można znaleźć taki, który mówi o * rozmyślaniu * (nie zaciemnianiu). –

Odpowiedz

9

Czy próbowałeś, aby kod był mniej niejasny dzięki Java Deobfuscator (aka JDO), swojemu inteligentnemu dekompilatorowi?

Obecnie JDO wykonuje następujące operacje:

  • zmienia nazwę metody ukrywane, zmienne, stałe i nazwy klas być unikalne i bardziej wskazuje ich rodzaju
  • propogates zmian w całym drzewie cały źródłowego (beta)
  • ma łatwy w użyciu interfejs GUI
  • pozwala określić nazwę pola, metody i klasy (nowa funkcja!)

Obecnie JDO nie zrobić następujące (ale pewnego dnia)

  • zmodyfikować metodę kodu bajtowego w żaden sposób
+0

Spróbuję. – Salar

+1

Ta aplikacja nie uwzględnia wielkości liter w nazwach plików i powoduje wiele problemów. – Salar

14

Pierwszym krokiem byłoby poznanie tego, które narzędzie zostało zaciemnione. Może jest już jakiś "odmalowacz" dla danego obfuscatora.

Z drugiej strony można również po prostu uruchomić IDE i wykorzystać jego moc refaktoryzacji. Zmień nazwę klasy, metody i zmiennej na coś poufnego. Wykorzystaj swoje ludzkie zdolności logicznego myślenia, aby dowiedzieć się, co kod faktycznie reprezentuje i nazwać je z wyczuciem. Obraz powoli, ale pewnie rośnie.

Powodzenia.

+0

Nie wiem, jakiego obfuscatora używa się. A w procesie dekompilacji niektóre metody i zmienne pojawiają się jako "???" i one pochodzą z nikąd! Używam JD-GUI http://java.decompiler.free.fr/ – Salar

+1

JDO może pomóc w tym.Zobacz http://stackoverflow.com/questions/1662766/tool-to-deobfuscate-java-codes/1662928#1662928 –

+1

Ah, w ten sposób. Cóż, wtedy dekompiler nie obsługiwał oryginalnej wersji kompilatora, np. dekompilacja przeciwko Java 1.5, podczas gdy kod został skompilowany przy pomocy wersji 1.6. To nie zadziała. Przeczytaj dokumentację dekompilatora i/lub wypróbuj inne. – BalusC

1

Najprawdopodobniej tylko człowiekiem mindpower do sensu to. Uzyskaj najlepszy dostępny dekompiler i zastanów się nad jego wydajnością.

6

Nie gravedig ale napisałem narzędzie, które działa na większości obfuscators handlowych

https://github.com/Contra/JMD

+0

Czy jest tam plik do odczytu? – 2371

+0

Niezupełnie lol. Właśnie dodałem kompilację produkcyjną, więc jeśli przejdziesz do Pobrania, możesz pobrać ją z GUI – Contra

+0

"JMD zostało przerwane z powodu braku czasu i zostało ostatnio zaktualizowane 24 listopada 2010." ... Dwa miesiące przed swoim postem. –

1

Może to będzie działać na Unix/Linux/MacOS?

Jeśli tak, możesz przenieść jeden z etapów procesu na maszynę wirtualną, w której rozpakowuje się kod, przed zmianą nazwy zbyt długiej. Jak długi jest limit nazwy pliku w systemie Windows?