Online: 0x0F80 (3968)

☕ Jak uzyskać kod źródłowy apletu Java?
Dla początkujących


RobertG
12:33 08-05-2011
Zobacz profil
 Napisane 12 lat temu (29 września 2007 o godz. 19:12:43) przez RobertG
Często w necie można spotkać aplety Java, np. chateria na interii. Ten tekst to w sumie taki mały tutorial jak dostać się do kodu źródlowego tej chaterii (czyli każdego apletu java). Czy się to komuś przyda nie wiem, ale fajnie wiedzieć jak to zrobić. :)

Zaczynamy:
http://czateria.interia.pl/ , najeżdżamy na link do jakiegoś pokoju. Widzimy na dolnej belce w Firefox, iż uruchamiana jest funkcja openRoom(). Klikamy w Firefoxie ctrl+U, ctrl+F, wpisujemy openRoom i przechodzimy do kodu tej funkcji.

Widzimy kod:
var winurl = /czat,room,+(rid)+,+(name?name:);
window.open(winurl, rid ,

Tak więc okno, które się otwiera z apletem Java z chatem ma adres:
http://czateria.interia.pl/czat,room,TUTAJ_ID_KTORE_WIDAC_GDY_NAJEZZAMY_MYSZA_NAPOKOJ,
Ja wybrałem:
http://czateria.interia.pl/czat,room,80,

Zapisujemy to na dysk, bo odpalenie tego jak zwykłą stronę w zakładce lubi zawiesić przeglądarkę. Otwieramy stronę w edytorze tekstu, od razu w oczy rzuca się:
var txt=;
txt = http://qan.interia.pl/chat/applet/czat_4_054_.jar

Kopiujmy go do okienka URL przeglądarki, zapisujemy plik *.jar na dysku. Pliki *.jar to tak na prawdę zip albo rar (już nie pamiętam), wiec rozpakowujemy go, np. Total Commanderem.

http://www.kpdus.com/jad.html
Ściągamy dekompiler, czytamy HOWTO, które jest do niego dołączone i dekompilujemy by uzyskać kod źródłowy, przykład kodu po dekompilacji:
package d;
import INTChat;
(...)
import java.util.EventObject;
import java.util.Vector;

class r extends i
    implements Runnable, b, MouseListener
{
    public r(p p1)
    {
        String s1;
        boolean flag;
        flag = ba.bg;
        (...)
        c();
        k = new c(this, INTChat.getServerHost(), 14016, -10);
        k.i = true;

        P = new int[6];
Dekompilacja nie zawsze przebiega OK (tak jak zresztą dla każdego kodu, maszynowego też).

BTW. Funkcja openRoom jest pisana w JavaScript, a nie w Java, tak przypomnę by się nie myliło nikomu. =]

haker.com.pl

czeski
10:36 31-07-2008
Zobacz profil
 Napisane 12 lat temu (31 lipca 2008 o godz. 10:36:42) przez czeski
Co z tego, że dekompilujesz jak tego nie skompilujesz ponownie, bo aplet czaterii traktowany jest obfuscatorem i string encryption, i nazwy funkcji przez to mieszanie (kodowanie nazw) są nieprawidłowe.
Używaleś dekompilatora jad - z żadnym parametrem ten program nie da satysfakcjonujących nas wyników czystego kodu źródłowego pliku class czaterii.
Wkleiłeś tylko początek kodu źródłowego, bo dalsza część to tylko goto L2; else goto L76;
Nawet Zelix classmaster nie radzi sobie z dekompilacja tego apletu... W końcu czateria korzysta z dobrego obfuscatora.
Udowodnij, że się mylę!

haker.com.pl

© 2020 by haker.com.pl. Wszelkie prawa zastrzeżone.

Wszystkie treści umieszczone na tej witrynie są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie opublikowane tutaj treści (w tym kody źródłowe i inne) służą wyłącznie celom informacyjnym oraz edukacyjnym. Właściciele tej witryny nie ponoszą odpowiedzialności za ewentualne niezgodne z prawem wykorzystanie zasobów dostępnych w witrynie. Użytkownik tej witryny oświadcza, że z zamieszczonych tutaj danych korzysta na własną odpowiedzialność. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Korzystając z zasobów witryny haker.com.pl oświadczasz, że akceptujesz powyższe warunki oraz politykę prywatności.