Flareon-22¶
Flaredle¶
Challenge¶

Process¶
Understanding Game / Application Logic¶
- Understand what Yellow, Green and Grey means in wordle
- Green: The letter is right and in the correct position in the word.
- Yellow: The letter is correct but is in the wrong position.
- Grey: The letter is wrong and isn’t in the word at all.
- We notice that in the source code file of the game there is a "words.js" which contains a list of valid words. These words are all small letters and a-z with no numbers or characters.

Python file to count occurence of all Characters¶
We then wrote a python file to count the occurences of characters from A-Z in the wordlist.
import string
def loopWordCount():
testtest = ''
for char in string.ascii_lowercase:
testtest += str(word.count(char)) + ','
return testtest
def create_counted_wordlist():
r_word_file = open(r'C:\Users\flare\Desktop\Script\wordlist.txt','r')
w_word_file = open (r'C:\Users\flare\Desktop\Script\counted.txt','w')
wordlist = r_word_file.readlines()
for word in wordlist :
# print(word +
# loopWordCount() + '\n')
w_word_file.writelines(loopWordCount())
w_word_file.writelines(word)
Comma-separated-value from the occurences of A-Zs.

Parse CSV into Excel / LibreOffice¶
- We will now parse the csv file into excel so that we can filter with each try to finally get the correct word.

- Using this word "AEROBACTERIOLOGICALLY" we know that there are 1
e, 1i, 2o, 1c. - By Filtering down, we are left with these 2 words, we can filter i.e '0
g' and we will getflareonisallaboutcats

Flag¶
There we have it the flag.
flareonisallaboutcats@flare-on.com
Pixel Poker¶
Challenge¶

Process¶
PE Profiling with DiE¶
- To check if application is Packed and the high level language used.

- It seems like C++ is used and executable is likely not packed.
Playing Around the Application¶
- We find the fail condition has some strings like "Womp womp... :(", "Please play again!"

Strings¶
-
Using strings (
shift+f12), we find the strings that make up the fail condition
-
Then we use the x-ref function to see location it has been referenced

-
Then we sift out only for the function that calls it.

Tricking the Program to think that we found the pixel¶
Unlimited Tries¶
- Then we trace back to before it is called. We see that the function does a
cmp 0Ahwhere0Ais10. This seems like the function to check if 10 tries has exceeded.
- To get unlimited tries we can use a very convenient function in Cutter the "Edit Instruction" .

- We change the instuction from
jnz/jnetojmp, after 10 tries, it will jump to the exit function, but go the next function.

Function that checks for correct pixel click¶
- Right after the 10 tries check, there are 2
jnzinstructions. As we are searching for pixels, I assume they are the X-axis and Y-axis.

- Again, we are back at Cutter, we use the "reverse jump" function to switch both of the
jnz/jneinstructions tojz/jeinstructions.

Flag¶
- We open the application, and after one click, and a lag, we get the picture below.
