Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

1 - Fidler

Description

Welcome to the Seventh Flare-On Challenge!

This is a simple game. Win it by any means necessary and the victory screen will reveal the flag. Enter the flag here on this site to score and move on to the next level.

This challenge is written in Python and is distributed as a runnable EXE and matching source code for your convenience. You can run the source code directly on any Python platform with PyGame if you would prefer.

Walkthrough

The first we do is executing the Python script as follows (remember installing pygame first):

C:\> python3 fidler.py

The following screen will appear:

Fidler 1

So we need to find out the password. To do so we check the source code of the application. The first thing that draws our attention is the function check_password at the begining of the source code.

def password_check(input):
    altered_key = 'hiptu'
    key = ''.join([chr(ord(x) - 1) for x in altered_key])
    return input == key

So we can modify it to print out the real password when we enter whatever data.

C:\> python3 fidler.py

ghost

Great! Now we can see the second screen:

Fidler 2

If we check the source code, we see the following sentence in the game_screen function:

	target_amount = (2**36) + (2**35)
        if current_coins > (target_amount - 2**20):
            while current_coins >= (target_amount + 2**20):
                current_coins -= 2**20
            victory_screen(int(current_coins / 10**8))
            return

This means that we must achieve a total ammount of...

(2^36 + 2^35) - (2^20) = 103079215104

... coins to get the key. This means that we have to perform this ammount of clicks on the kitty, something impossible. So instead, we modify the source code, specifically the cat_clicked function, to get the necessary coins to get the flag:

def cat_clicked():
	global current_coins
    current_coins += 1000000000000
    return

Finally, we got the key!

idle_with_kitty@flare-on.com

Fidler 3