FreeArcade Flea Circus Level Passwords

FreeArcade offers a game they call Flea Circus, where you have to get most of your fleas pass all the dangers to the finish, by placing blocks and ramps. On a Macintosh at school, the fleas where black and thus rendered invisible, by the way. This webpage is here to tell you the level passwords I found for Flea Circus:

0 NONE
1 CANDLE
2 EAGLE
3 GALAXY
4 PENGUIN
5 PLATE
6 WINTER
7 SPLENDID
8 ITCH
9 YOYO

Enjoy. But if you're curious about how I found these out, stick around for a while.

It all started by decompiling fleas.class using jad, the fast JAva Decompiler. There's a function in there, public void grablevs(), which performs loading of the levels. I found this by grepping for levels[]. You can decompile fleas.class yourself you want the whole source, but here is the beginning of grablevs():

    public void grablevs()
    {
        tscr = 4;
        mes = new Button("Please Wait Loading Levels ...");
        mes.setFont(f);
        mes.reshape(202, 279, 239, 30);
        add(mes);
        dopercent(0);
        try
        {
            fileURL = new URL(getCodeBase(), "levels.lev");
            input = fileURL.openStream();
            dataInput = new DataInputStream(input);
            String text = dataInput.readLine();
            numlev = 0;
            for(int i = 1; i < text.length(); i++)
                numlev = numlev * 10 + (text.charAt(i) - 48);

            for(int n = 0; n < numlev; n++)
            {
                pass[n] = dataInput.readLine();
                for(int i = 30; i < 64; i++)
                    pass[n] = pass[n].replace((char)i, (char)(i + 30));

                if(pword.equalsIgnoreCase(pass[n]))
                    levno = n;
            }

Take note of levels.lev. The passwords are not stored as plaintext. Instead, 30 added is added to their ASCII value. Since I don't grok Java, I translated the function to Perl and ran it (02/14/2001), got the following:

**********pass: NONE+
 CANDLE+
 EAGLE+
 GALAXY+
 PENGUIN+
 PLATE+
 WINTER+
 SPLENDID+
 ITCH+
 YOYO+

num: 1612 1112 1612 1612 1612 1612 1612 2112 812 812
sav: 112 612 412 1612 612 1612 1612 2112 812 812
levstr: 

I suspect the other information there is used to store the actual levels.

Valid HTML 4.0?

Modified Sun Mar 25 08:48:47 2007 generated Sun Mar 25 08:56:33 2007
http://jeff.tk/fleas/