Dekompilacja pliku .jar

Zombie
java
Qubixon
Qubixon
6 lat temu

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

DBanaszewski
DBanaszewski α-tester v3
6 lat temu

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
6 lat temu

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

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

DBanaszewski
DBanaszewski α-tester v3
6 lat temu

KrEdEnS:

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

KrEdEnS
KrEdEnS Moderator Freebies
6 lat temu

W sumie racja :kappa:

logixdev
logixdev
6 lat temu

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
6 lat temu

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
6 lat temu

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

DBanaszewski
DBanaszewski α-tester v3
6 lat temu

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
6 lat temu

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
6 lat temu

Dziękuję za pomoc 😃

luxDev
luxDev Pionier
6 lat temu

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
6 lat temu

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