Dekompilacja pliku .jar

Zombie
java
Qubixon
Qubixon

Wie ktoś może jak zdekompilować plik .jar? Bardziej mi chodzi o pewien plugin, ale nie wiem jak to zrobić 😕

DBanaszewski
DBanaszewski α-tester v3

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
KrEdEnS Moderator Freebies

@DBanaszewski WinRAR-em przypadkiem nie da się rozpakować .jar?

Tak mi się skojarzyło: https://share.kredens.ovh/SbINuPZv98.png

DBanaszewski
DBanaszewski α-tester v3

KrEdEnS:

WinRAR-em przypadkiem nie da się rozpakować .jar? Rozpakowanie to nie dekompilacja ;)

KrEdEnS
KrEdEnS Moderator Freebies

W sumie racja :kappa:

logixdev
logixdev

Mam nadzieję, że nie chcesz tego użyć do jakiegoś chamskiego podkradania kodu. :nosacz: 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
Qubixon

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
Qubixon

Kod jest przeznaczony do edycji, nie mam na celu kraść go tylko edytować.

DBanaszewski
DBanaszewski α-tester v3

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
logixdev

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
Qubixon

Dziękuję za pomoc 😃

luxDev
luxDev Pionier

Można też używając Luyten zdekompilować cały kod do archiwum zip

image|690x388

jednak nie oszukujmy się, nie jest to do końca najlepszy sposób, najlepiej gdyby kod byłby na jakimś VCS

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.