☕ Jak uzyskać kod źródłowy apletu Java?
🐴 haker.com.pl
🟦 RobertG
🖊️ 19:12 29-09-2007
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:
Widzimy kod:
Tak więc okno, które się otwiera z apletem Java z chatem ma adres:
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ę:
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.
Ś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:
BTW. Funkcja
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 ,
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
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ż).
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];
BTW. Funkcja
openRoom
jest pisana w JavaScript, a nie w Java, tak przypomnę by się nie myliło nikomu. =]
🟦 czeski
🖊️ 10:36 31-07-2008
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
Nawet Zelix classmaster nie radzi sobie z dekompilacja tego apletu... W końcu czateria korzysta z dobrego obfuscatora.
Udowodnij, że się mylę!
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ę!
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.