The Joylock Case (version 4.0) |
CoffeeCup Password Wizard Version 4.0 is Here...
Create unlimited password protected pages with unlimited usernames and passwords with CoffeeCup Password Wizard. You don't even have to know Flash, Java, or HTML ! Customize the look and feel to match your page.
You can even point different users to different URLs ! Preview within the program or your favorite browser. It's all that easy ! All this and more make CoffeeCup Password Wizard the easiest way to password protect your pages !
- Create Usernames and Passwords to protect your Web Site with Flash or Java !
- Easily works in multiple framesets
- Add and Modify Users quickly and easily
- Redirection for Incorrect Logins
- Preview as you work
- Customize Size and Colors to match your Web Pages
- Easy to use - No Java experience needed
- Only $30 to Register!
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(); }This snippet helps us understanding what variable stands for. And what are the parameters readable from the source :
decript(linkURL, 0, 0, 0, 0, 0, false); <--- s = wslzebajkcnrvogpquftxhidmy vttp://aaa.jnsseejrp.jny/ywxxce.vtyc, { i=0,j=0,k=0,l=0,i1=0,flag=FALSE String s1 = ""; String s2 = s.substring(0, 26); <--- s2 = wslzebajkcnrvogpquftxhidmy String s3 = s.substring(26, s.length()); <--- s3 = vttp://aaa.jnsseejrp.jny/ywxxce.vtyc String as[] = new String[52]; for(int j1 = 0; j1 < 52; j1++) as[j1] = ""; <--- clear as[] as[0] = as[0] + s2.charAt(alphabet.indexOf("a")); <--- Use s2 to get the value of as[0] : as[0] = w as[1] = as[1] + s2.charAt(alphabet.indexOf("b")); <--- as[1] = l as[2] = as[2] + s2.charAt(alphabet.indexOf("c")); <--- as[2] = z as[3] = as[3] + s2.charAt(alphabet.indexOf("d")); <--- as[3] = e 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[26] = w as[27] = as[27] + s2.charAt(alphabet.indexOf("b")); <--- as[27] = l as[28] = as[28] + s2.charAt(alphabet.indexOf("c")); <--- as[28] = z as[29] = as[29] + s2.charAt(alphabet.indexOf("d")); <--- as[29] = e 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(); <--- capitalize : as[26] = W, as[27] = L etc ... for(int l1 = 0; l1 < s3.length(); l1++) <--- for each character of : "vttp://aaa.jnsseejrp.jny/ywxxce.vtyc" check if : switch(s3.charAt(l1)) { case 65: // 'A' <--- We have no caps in our linkURL, let's go directly to case 97 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' <--- we have some 'a', and as[26] is W ... 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' <--- first character of s3 is v. we enter here. s1 (who was void until now) = as[21], s1 = s1 + as[21]; <--- wich is the position 21 in "wslzebajkcnrvogpquftxhidmy". ie : h 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; <--- We're at the first passage in the loop .. i think it's really clear now. We can imagine what will be the next ones ... } if(flag) <--- Flag is false, we jump to 'else' { [SNIPPED] } else { linkURL = s1; <--- return from the decript() function, with linkURL = s1 (decyphered) return; }
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V W S L Z E B A J K C N R V O G P Q U F T X H I D M Y w s l z e b a j k c n r v o g p q u f t x h i d m y
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V C F T Z M A P U X N R S J I B G W Y K Q V L E O D H c f t z m a p u x n r s j i b g w y k q v l e o d h
username[i] = s1.substring(0, j); ---> j = 6 --> cut the 6th first characters of s1, and put it in username. Username = sample password[i] = s1.substring(j, j + k); ---> k = 4 --> cut the 4th next characters of s1, and put it in password. Password = test urls[i] = s1.substring(j + k, j + k + l); ---> l = 36, lenght of the url --> cut the url, and put it in urls. urls = http://www.coffeecup.com/middle.html frames[i] = s1.substring(j + k + l, s1.length()); ---> unused