Qubixon | 2020-06-06 11:50:00 UTC | #1
Wie ktoś może jak zdekompilować plik .jar? Bardziej mi chodzi o pewien plugin, ale nie wiem jak to zrobić :confused:
DBanaszewski | 2020-06-06 11:29:24 UTC | #2
Możesz użyć prostej aplikacji JD-GUI
, znajdziesz ją tutaj: http://java-decompiler.github.io/
Otwierasz plik .jar i kod jest podawany na tacy (o ile kod źródłowy nie jest “zaciemniony”).
KrEdEnS | 2020-06-06 11:29:17 UTC | #3
@DBanaszewski WinRAR-em przypadkiem nie da się rozpakować .jar?
Tak mi się skojarzyło:
https://share.kredens.ovh/SbINuPZv98.png
DBanaszewski | 2020-06-06 11:29:46 UTC | #4
[quote=”KrEdEnS, post:3, topic:15042”]
WinRAR-em przypadkiem nie da się rozpakować .jar?
[/quote]
Rozpakowanie to nie dekompilacja ;)
KrEdEnS | 2020-06-06 11:30:01 UTC | #5
W sumie racja
logixdev | 2020-06-06 11:38:13 UTC | #6
Mam nadzieję, że nie chcesz tego użyć do jakiegoś chamskiego podkradania kodu.
Moim zdaniem najlepszym dekompilerem jest Procyon (ale działający w wierszu poleceń) lub bazujący na nim otwartoźródłowy Luyten z GUI: https://github.com/deathmarine/Luyten
Qubixon | 2020-06-06 11:41:44 UTC | #7
Tylko nie wiem czy w Java Decompiler da się edytować ten kod. Ponieważ mam tam pola do edycji, ale nie wiem czy jest taka możliwość edytowania.
Qubixon | 2020-06-06 12:09:01 UTC | #8
Kod jest przeznaczony do edycji, nie mam na celu kraść go tylko edytować.
DBanaszewski | 2020-06-06 12:25:13 UTC | #9
Chciałeś tylko zdekompilować plik .jar, o możliwość edycji nie prosiłeś.
Jeżeli chcesz zmodyfikować daną klasę, zainteresuj się np. InteliJ IDEA - ma on wbudowany dekompilator.
Tworzysz projekt, dodajesz oryginalny plik .jar jako bibliotekę, tworzysz (dokładnie taki sam) package, tworzysz nową klasę o takiej samej nazwie jak plik, który chcesz edytować, kopiujesz oryginalną zawartość pliku, edytujesz to co potrzebujesz, kompilujesz pliki, podmieniasz pliki w .jar i gotowe - to jest tylko moje rozwiązanie.
logixdev | 2020-06-06 12:25:13 UTC | #10
W takim razie spoko, szkoda tylko, że kodu źródłowego nie dostałeś po prostu. Otwartoźródłowe projekty są dostępne np. na GitHubie i można je łatwo zaimportować w przypadku np. wspomnianego IntelliJ. Pamiętaj, że przy bardziej skomplikowanych pluginach może się pojawić kilka błędów w kodzie, część dekompilerów np. importy z poszczególnych klas upraszcza na zasadzie dodawania *, zadbaj też o dodanie odpowiedniej dla pluginu wersji Bukkit API.
P.S. Jak chcesz dokonać tylko zmian we wiadomościach (czyli edytować tzw. stringi), to polecam takie chyba dość mało znane narzędzie, a bardzo proste, przyjemne i nieinwazyjne: https://leonardosnt.github.io/jar-string-editor/
Qubixon | 2020-06-06 12:01:23 UTC | #11
Dziękuję za pomoc :smiley:
luxDev | 2020-06-06 12:37:28 UTC | #12
Można też używając Luyten zdekompilować cały kod do archiwum zip
jednak nie oszukujmy się, nie jest to do końca najlepszy sposób, najlepiej gdyby kod byłby na jakimś VCS
system | 2020-07-08 12:37:12 UTC | #13
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.