[ StratOS @ 24.09.2003. 11:40 ] @
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 |