Cel : Expandable Menu Applet [ ENTERCD#1 7/98 ]
Narzedzia: JAD - dekompilator klas JAVY [ http://web.unicom.com.cy/~kpd/jad.html ]
JDK - kompilator JAVY [ http://java.sun.com/ ]
Wstep:
Dzisiaj przedstawie zupelnie nowe podejscie do crackowania, a mianowicie crackowanie programów napisanych w JAVIE. JAVA zdobywa coraz wieksza popularnosc i mozemy sie spodziewac coraz wiekszej ilosci produkcji napisanych w tym jezyku. Po naszej (crackerów) stronie stoi "sklonnosc" klas JAVY do latwej dekompilacji.
A wiec zaczynamy:Program sklada sie z pliku .exe generujacego parametry appletu. Plików z przykladami i dwóch plików .class (pliki appletu). Kiedy uruchomimy plik przykladu pierwsze co rzuca sie nam w oczy to czarny prostokat z napiem "UNREGISTERED" - trzeba cos z tym zrobic. Dekompilujemy plik ExpandMenu.class (piszemy "jad ExpandMenu.class"). W wyniku uzyskalismy plik ExpandMenu.jad. Przegladarka wyswietla applet przez wywolanie jego funkcji 'paint()'. Szukamy jej w otrzymanym listingu:
public void paint(Graphics g)
{
offscreenGraphics.setColor(backcolor);
offscreenGraphics.fillRect(0, 0, size().width, size().height);
if(backimgactive)
{
Image image = getImage(backimgURL);
offscreenGraphics.drawImage(image, 0, 50, size().width, size().height - 50, this);
}
offscreenGraphics.setColor(Color.black);
offscreenGraphics.fillRect(0, 0, size().width, 50);
offscreenGraphics.setColor(Color.orange);
offscreenGraphics.setFont(new Font(nodefont.toString(), 3, 10));
offscreenGraphics.drawString("Expandable Menu Applet (unregistered)", 5, 20);
offscreenGraphics.drawString("Copyright ApplePie Software 1998", 5, 40);
Teraz najlepiej usunmy linie :
[...].setColor(Color.black); <-- ustawienie czarnego koloru
[...].fillRect(0, 0, size().width, 50); <-- narysowanie prostokata
[...].setColor(Color.orange); <-- ustawienie pomaranczowego koloru
[...].setFont(new Font(nodefont.toString(), 3, 10)); <-- ustawienie czcionki
[...].drawString("Expandable Menu Applet (unregistered)", 5, 20); <-- wiadomo co
[...].drawString("Copyright ApplePie Software 1998", 5, 40); <-- tez wiadomo
Linie:
tree[0].top = 50 + TOPMARGIN;
Zmienmy na:
tree[0].top = TOPMARGIN;
(Margines 50 pikseli potrzebny byl na tekst "unregistered:) A:
offscreenGraphics.drawImage(image, 0, 50, size().width, size().height , this);Na:
offscreenGraphics.drawImage(image, 0, 0, size().width, size().height , this);(Aby tlo zaczynalo sie od samej gory)
Teraz wystarczy skompilowac plik ExpandMenu.java ("javac ExpandMenu.java").
Zakonczenie:Autor chce od nas 10 bucksów, a nawet nie zadal sobie trudu, zeby zmienic nazwy zmiennych na jakies trudniejsze do zinterpretowania... Jesli checsz dalej uzywac ten program - zaplac za niego (napisz autorowi, ze juz masz zarejestrowany plik .class i nie musi sie fatygowac, aby Ci go wyslac... :)