Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Steb by step info

[es] :: Java :: Steb by step info

[ Pregleda: 2643 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

StratOS
Slovenija

Član broj: 2234
Poruke: 989
*.dsl.siol.net



+1 Profil

icon Steb by step info24.09.2003. u 11:40 - pre 250 meseci
Posto ne znam javu ni c jezik molio bi da mi malo pokazete sto ovo radi :
Radi se o dekompilaciji fajla joylock.class

Evo dekompila toga :
Code:

// Decompiled by DJ v3.5.5.77 Copyright 2003 Atanas Neshkov  Date: 24.9.2003 12:15:45
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   joylock.java

import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.StringTokenizer;

public class joylock extends Applet
{

    public void init()
    {
        super.init();
        int i = size().width - 80;
        StringTokenizer stringtokenizer = new StringTokenizer(getParameter("GENERAL"), "|", false);
        numUsers = Integer.parseInt(stringtokenizer.nextToken());
        if(Integer.parseInt(stringtokenizer.nextToken()) == 11)
            registered = true;
        else
        if(getDocumentBase().toString().startsWith("file"))
            registered = true;
        if(registered)
        {
            bkColor = new Color(Integer.parseInt(stringtokenizer.nextToken(), 16));
            textColor = new Color(Integer.parseInt(stringtokenizer.nextToken(), 16));
            linkURL = stringtokenizer.nextToken();
            if(!linkURL.equalsIgnoreCase(" "))
                decript(linkURL, 0, 0, 0, 0, 0, false);
            linkFrame = stringtokenizer.nextToken();
            loginText = stringtokenizer.nextToken();
            preLoginMessage = stringtokenizer.nextToken();
            reLinkURL = stringtokenizer.nextToken();
            reLinkFrame = stringtokenizer.nextToken();
            username = new String[numUsers];
            password = new String[numUsers];
            urls = new String[numUsers];
            frames = new String[numUsers];
            for(int j1 = 0; j1 < numUsers; j1++)
            {
                StringTokenizer stringtokenizer1 = new StringTokenizer(getParameter(Integer.toString(j1)), "|", false);
                int j = Integer.parseInt(stringtokenizer1.nextToken());
                int k = Integer.parseInt(stringtokenizer1.nextToken());
                int l = Integer.parseInt(stringtokenizer1.nextToken());
                int i1 = Integer.parseInt(stringtokenizer1.nextToken());
                String s = stringtokenizer1.nextToken();
                decript(s, j1, j, k, l, i1, true);
            }

            setBackground(bkColor);
            setLayout(null);
            loginButton = new Button();
            loginButton.setLabel("Login");
            loginButton.reshape(8, size().height - 30, size().width - 16, 24);
            loginButton.setBackground(new Color(0xc0c0c0));
            add(loginButton);
            lUsername = new Label("Username:");
            lUsername.reshape(8, size().height - 88, 64, 24);
            lUsername.setForeground(textColor);
            add(lUsername);
            lPassword = new Label("Password:");
            lPassword.reshape(8, size().height - 60, 64, 24);
            lPassword.setForeground(textColor);
            add(lPassword);
            eUsername = new TextField();
            eUsername.reshape(72, size().height - 88, i, 24);
            eUsername.setBackground(new Color(0xffffff));
            add(eUsername);
            ePassword = new TextField();
            ePassword.setEchoCharacter('*');
            ePassword.reshape(72, size().height - 60, i, 24);
            ePassword.setBackground(new Color(0xffffff));
            add(ePassword);
            textArea = new TextArea(preLoginMessage);
            textArea.reshape(8, 6, size().width - 16, size().height - 98);
            textArea.setBackground(new Color(0xffffff));
            textArea.setEditable(false);
            add(textArea);
        }
    }

    public void paint(Graphics g)
    {
        if(!registered)
        {
            g.drawString("You have the unregistered", 0, 10);
            g.drawString("version of this program", 0, 20);
            g.drawString("You need the registered version", 0, 30);
            g.drawString("for this Applet to work on the internet", 0, 40);
            g.drawString("Click HERE for registration instructions", 0, 50);
        }
    }

    void clickLoginButton(Event event)
    {
        for(int i = 0; i < numUsers; i++)
        {
            if(username[i].equalsIgnoreCase(eUsername.getText()) && password[i].equalsIgnoreCase(ePassword.getText()))
            {
                try
                {
                    URL url;
                    if(!urls[i].equalsIgnoreCase(""))
                        url = new URL(getDocumentBase(), urls[i]);
                    else
                        url = new URL(getDocumentBase(), linkURL);
                    String s;
                    if(!frames[i].equalsIgnoreCase(""))
                        s = frames[i];
                    else
                        s = linkFrame;
                    if(s != null && !s.equalsIgnoreCase(" "))
                        getAppletContext().showDocument(url, s);
                    else
                        getAppletContext().showDocument(url);
                }
                catch(MalformedURLException _ex) { }
                textArea.setText(loginText);
                return;
            }
            if(i == numUsers - 1)
            {
                eUsername.setText("");
                ePassword.setText("");
                textArea.setText("Incorrect Username or Password.");
                if(reLinkURL != null && !reLinkURL.equalsIgnoreCase(" ") && numWrongPass == 2)
                {
                    numWrongPass = 0;
                    try
                    {
                        URL url1 = new URL(getDocumentBase(), reLinkURL);
                        if(reLinkFrame != null && !reLinkFrame.equalsIgnoreCase(" "))
                            getAppletContext().showDocument(url1, reLinkFrame);
                        else
                            getAppletContext().showDocument(url1);
                    }
                    catch(MalformedURLException _ex) { }
                } else
                {
                    numWrongPass++;
                }
            }
        }

    }

    public boolean handleEvent(Event event)
    {
        if(event.key == 10 || event.target == loginButton && event.id == 1001)
        {
            clickLoginButton(event);
            return true;
        } else
        {
            return super.handleEvent(event);
        }
    }

    public boolean mouseUp(Event event, int i, int j)
    {
        if(!registered)
            try
            {
                URL url = new URL(getDocumentBase(), "http://www.coffeecup.com/");
                getAppletContext().showDocument(url);
            }
            catch(MalformedURLException _ex) { }
        return true;
    }

    final void decript(String s, int i, int j, int k, int l, int i1, boolean flag)
    {
        String s1 = "";
        String s2 = s.substring(0, 26);
        String s3 = s.substring(26, s.length());
        String as[] = new String[52];
        for(int j1 = 0; j1 < 52; j1++)
            as[j1] = "";

        as[0] = as[0] + s2.charAt(alphabet.indexOf("a"));
        as[1] = as[1] + s2.charAt(alphabet.indexOf("b"));
        as[2] = as[2] + s2.charAt(alphabet.indexOf("c"));
        as[3] = as[3] + s2.charAt(alphabet.indexOf("d"));
        as[4] = as[4] + s2.charAt(alphabet.indexOf("e"));
        as[5] = as[5] + s2.charAt(alphabet.indexOf("f"));
        as[6] = as[6] + s2.charAt(alphabet.indexOf("g"));
        as[7] = as[7] + s2.charAt(alphabet.indexOf("h"));
        as[8] = as[8] + s2.charAt(alphabet.indexOf("i"));
        as[9] = as[9] + s2.charAt(alphabet.indexOf("j"));
        as[10] = as[10] + s2.charAt(alphabet.indexOf("k"));
        as[11] = as[11] + s2.charAt(alphabet.indexOf("l"));
        as[12] = as[12] + s2.charAt(alphabet.indexOf("m"));
        as[13] = as[13] + s2.charAt(alphabet.indexOf("n"));
        as[14] = as[14] + s2.charAt(alphabet.indexOf("o"));
        as[15] = as[15] + s2.charAt(alphabet.indexOf("p"));
        as[16] = as[16] + s2.charAt(alphabet.indexOf("q"));
        as[17] = as[17] + s2.charAt(alphabet.indexOf("r"));
        as[18] = as[18] + s2.charAt(alphabet.indexOf("s"));
        as[19] = as[19] + s2.charAt(alphabet.indexOf("t"));
        as[20] = as[20] + s2.charAt(alphabet.indexOf("u"));
        as[21] = as[21] + s2.charAt(alphabet.indexOf("v"));
        as[22] = as[22] + s2.charAt(alphabet.indexOf("w"));
        as[23] = as[23] + s2.charAt(alphabet.indexOf("x"));
        as[24] = as[24] + s2.charAt(alphabet.indexOf("y"));
        as[25] = as[25] + s2.charAt(alphabet.indexOf("z"));
        as[26] = as[26] + s2.charAt(alphabet.indexOf("a"));
        as[27] = as[27] + s2.charAt(alphabet.indexOf("b"));
        as[28] = as[28] + s2.charAt(alphabet.indexOf("c"));
        as[29] = as[29] + s2.charAt(alphabet.indexOf("d"));
        as[30] = as[30] + s2.charAt(alphabet.indexOf("e"));
        as[31] = as[31] + s2.charAt(alphabet.indexOf("f"));
        as[32] = as[32] + s2.charAt(alphabet.indexOf("g"));
        as[33] = as[33] + s2.charAt(alphabet.indexOf("h"));
        as[34] = as[34] + s2.charAt(alphabet.indexOf("i"));
        as[35] = as[35] + s2.charAt(alphabet.indexOf("j"));
        as[36] = as[36] + s2.charAt(alphabet.indexOf("k"));
        as[37] = as[37] + s2.charAt(alphabet.indexOf("l"));
        as[38] = as[38] + s2.charAt(alphabet.indexOf("m"));
        as[39] = as[39] + s2.charAt(alphabet.indexOf("n"));
        as[40] = as[40] + s2.charAt(alphabet.indexOf("o"));
        as[41] = as[41] + s2.charAt(alphabet.indexOf("p"));
        as[42] = as[42] + s2.charAt(alphabet.indexOf("q"));
        as[43] = as[43] + s2.charAt(alphabet.indexOf("r"));
        as[44] = as[44] + s2.charAt(alphabet.indexOf("s"));
        as[45] = as[45] + s2.charAt(alphabet.indexOf("t"));
        as[46] = as[46] + s2.charAt(alphabet.indexOf("u"));
        as[47] = as[47] + s2.charAt(alphabet.indexOf("v"));
        as[48] = as[48] + s2.charAt(alphabet.indexOf("w"));
        as[49] = as[49] + s2.charAt(alphabet.indexOf("x"));
        as[50] = as[50] + s2.charAt(alphabet.indexOf("y"));
        as[51] = as[51] + s2.charAt(alphabet.indexOf("z"));
        for(int k1 = 26; k1 < 51; k1++)
            as[k1] = as[k1].toUpperCase();

        for(int l1 = 0; l1 < s3.length(); l1++)
            switch(s3.charAt(l1))
            {
            case 65: // 'A'
                s1 = s1 + as[26];
                break;

            case 66: // 'B'
                s1 = s1 + as[27];
                break;

            case 67: // 'C'
                s1 = s1 + as[28];
                break;

            case 68: // 'D'
                s1 = s1 + as[29];
                break;

            case 69: // 'E'
                s1 = s1 + as[30];
                break;

            case 70: // 'F'
                s1 = s1 + as[31];
                break;

            case 71: // 'G'
                s1 = s1 + as[32];
                break;

            case 72: // 'H'
                s1 = s1 + as[33];
                break;

            case 73: // 'I'
                s1 = s1 + as[34];
                break;

            case 74: // 'J'
                s1 = s1 + as[35];
                break;

            case 75: // 'K'
                s1 = s1 + as[36];
                break;

            case 76: // 'L'
                s1 = s1 + as[37];
                break;

            case 77: // 'M'
                s1 = s1 + as[38];
                break;

            case 78: // 'N'
                s1 = s1 + as[39];
                break;

            case 79: // 'O'
                s1 = s1 + as[40];
                break;

            case 80: // 'P'
                s1 = s1 + as[41];
                break;

            case 81: // 'Q'
                s1 = s1 + as[42];
                break;

            case 82: // 'R'
                s1 = s1 + as[43];
                break;

            case 83: // 'S'
                s1 = s1 + as[44];
                break;

            case 84: // 'T'
                s1 = s1 + as[45];
                break;

            case 85: // 'U'
                s1 = s1 + as[46];
                break;

            case 86: // 'V'
                s1 = s1 + as[47];
                break;

            case 87: // 'W'
                s1 = s1 + as[48];
                break;

            case 88: // 'X'
                s1 = s1 + as[49];
                break;

            case 89: // 'Y'
                s1 = s1 + as[50];
                break;

            case 90: // 'Z'
                s1 = s1 + as[51];
                break;

            case 97: // 'a'
                s1 = s1 + as[0];
                break;

            case 98: // 'b'
                s1 = s1 + as[1];
                break;

            case 99: // 'c'
                s1 = s1 + as[2];
                break;

            case 100: // 'd'
                s1 = s1 + as[3];
                break;

            case 101: // 'e'
                s1 = s1 + as[4];
                break;

            case 102: // 'f'
                s1 = s1 + as[5];
                break;

            case 103: // 'g'
                s1 = s1 + as[6];
                break;

            case 104: // 'h'
                s1 = s1 + as[7];
                break;

            case 105: // 'i'
                s1 = s1 + as[8];
                break;

            case 106: // 'j'
                s1 = s1 + as[9];
                break;

            case 107: // 'k'
                s1 = s1 + as[10];
                break;

            case 108: // 'l'
                s1 = s1 + as[11];
                break;

            case 109: // 'm'
                s1 = s1 + as[12];
                break;

            case 110: // 'n'
                s1 = s1 + as[13];
                break;

            case 111: // 'o'
                s1 = s1 + as[14];
                break;

            case 112: // 'p'
                s1 = s1 + as[15];
                break;

            case 113: // 'q'
                s1 = s1 + as[16];
                break;

            case 114: // 'r'
                s1 = s1 + as[17];
                break;

            case 115: // 's'
                s1 = s1 + as[18];
                break;

            case 116: // 't'
                s1 = s1 + as[19];
                break;

            case 117: // 'u'
                s1 = s1 + as[20];
                break;

            case 118: // 'v'
                s1 = s1 + as[21];
                break;

            case 119: // 'w'
                s1 = s1 + as[22];
                break;

            case 120: // 'x'
                s1 = s1 + as[23];
                break;

            case 121: // 'y'
                s1 = s1 + as[24];
                break;

            case 122: // 'z'
                s1 = s1 + as[25];
                break;

            case 91: // '['
            case 92: // '\\'
            case 93: // ']'
            case 94: // '^'
            case 95: // '_'
            case 96: // '`'
            default:
                s1 = s1 + s3.charAt(l1);
                break;
            }

        if(flag)
        {
            username[i] = s1.substring(0, j);
            password[i] = s1.substring(j, j + k);
            urls[i] = s1.substring(j + k, j + k + l);
            frames[i] = s1.substring(j + k + l, s1.length());
            return;
        } else
        {
            linkURL = s1;
            return;
        }
    }

    public joylock()
    {
        alphabet = "abcdefghijklmnopqrstuvwxyz";
        registered = false;
    }

    Label lUsername;
    Label lPassword;
    TextArea textArea;
    Button loginButton;
    TextField ePassword;
    TextField eUsername;
    int numUsers;
    int numWrongPass;
    String loginText;
    String linkURL;
    String linkFrame;
    String preLoginMessage;
    String reLinkURL;
    String reLinkFrame;
    String username[];
    String password[];
    String urls[];
    String frames[];
    String alphabet;
    Color textColor;
    Color bkColor;
    boolean registered;
}


a dio sorcea na page-u izgleda ovako :
Code:

<APPLET CODE="joylock.class" WIDTH=342 HEIGHT=140>
<PARAM NAME="GENERATOR" VALUE="CREATED WITH THE APPLET PASSWORD WIZARD WWW.COFFEECUP.COM">
<PARAM NAME="GENERAL" VALUE="2|11|005BB7|FFFFFF|pocjviszudnfyqbmtgewlkxarhzqqa://ufrzqkfkr.aybzbgqfkr.cbp/~qzsrxps/usesu-5/ruxj2ci.zqpu| |Yes, that's it !|Can you get past this one ?| | |">
<PARAM NAME="0" VALUE="7|12|61|0|mxupwnkazfstdqhljorvgyeibclowuhawuwlk_lrcuowsolld://pxuolfxfu.dsrorklxfu.zra/~lowuhaw/pwtwp-5/uphm2zc.olap">
<PARAM NAME="1" VALUE="7|12|61|0|pedjwcigosrbtuhmyanfkxlzqvorfubkjeoisbbcjmobpomma://wghomsgsh.akioijmgsh.fip/~mobhrpb/wbzbw-5/hwrc2fn.ompw">
</APPLET>


Vidim da se radi o nekakvom parsingu parametra i alphabeta, zato bih molio da mi tko napise sta se step by step desava kad stisnemo na 'Login' dugme.

Radi se o jednoj igri ... opet
naci cete ju ovdje :http://lightning.prohosting.com/~thegame/level-5/roman_V.html

Pozdrav StratOS
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications."
"The one who is digging the hole for the other to fall in is allready in it."
 
Odgovor na temu

StratOS
Slovenija

Član broj: 2234
Poruke: 989
*.dsl.siol.net



+1 Profil

icon Re: Steb by step info24.09.2003. u 11:52 - pre 250 meseci
Ah, tipichna substitucija ..

ufrzqkfkr.aybzbgqfkr.cbp/~qzsrxps/usesu-5/ruxj2ci.zqpu
lightning.prohosting.com/~thegame/level-5/glaJ2cI.html

'j' i 'i' su ?

pxuolfxfu.dsrorklxfu.zra/~lowuhaw/pwtwp-5/uphm2zc.olap
lightning.prohosting.com/~thegame/level-5/glaM2cC.html

treba jos naci u sto idu 'm' i 'c'

i
wghomsgsh.akioijmgsh.fip/~mobhrpb/wbzbw-5/hwrc2fn.ompw
lightning.prohosting.com/~thegame/level-5/glaC2cN.html

a ovdje 'c' i 'n'

izgleda da cita username i password sa tih lokacija
Pozdrav StratOS
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications."
"The one who is digging the hole for the other to fall in is allready in it."
 
Odgovor na temu

anon676

Član broj: 676
Poruke: 759
*.verat.net



Profil

icon Re: Steb by step info24.09.2003. u 12:18 - pre 250 meseci
Da ti neko procita i objasni svaku liniju koda?!?
malo teze...nadj language reference i citaj, pa gde zapnes pitaj...
 
Odgovor na temu

StratOS
Slovenija

Član broj: 2234
Poruke: 989
*.dsl.siol.net



+1 Profil

icon Re: Steb by step info24.09.2003. u 12:20 - pre 250 meseci
Pa, nesto bas znam
Ta java ima svoje funkcije, to je malo teze, no nije opet tako tezko
Pozdrav StratOS
"Multitasking - ability to f##k up several things at once."
"It works better if you plug it in."
"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications."
"The one who is digging the hole for the other to fall in is allready in it."
 
Odgovor na temu

[es] :: Java :: Steb by step info

[ Pregleda: 2643 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.