๐๐ฅ
Description
Look at all those emoji, can you find the flag.
Both files are the same text just with different emojis, since Unicode is dumb and doesnโt play nice on all operating systems.
Other information
Value: 75 points
Included files: out.emoji, out2.emoji
Solution
This challenge was a single substitution cipher of all the characters in the Bee Movie script with the flag inserted in the middle.
For my solution I will be using a the file out2.emoji
as the cipher text. The same ideas apply to out.emoji
as well just with different emojis.
The way that I would approach this challenge is to first view the entropy of the file, in an attempt to find if the information we were given ahs a high likelihood of being plaintext with some form of substitution applied. Running these through CyberChefโs entropy tool, we can see that the entropy is very much within the range of english plaintext.
With this knowledge, there are a variety of attacks that can occur against this. With a good option being a character frequency analysis attack. With the text being so large, there is a large amount of data available to use to determine the most likely characters, and their potential substitutions. While this unlikely to get all of the characters, after getting the first small bit of the first part of the text According to all known laws of aviation
, we can determine that the text is the script from the Bee Movie, making it much easier to determine most of the missing characters. Another potential way tof igure this out is look at the title of the challenge, and realize the emojis are Bee and Movie.
Specifically this version of the script was used, but any copy would work to find the characters. This would leave us with the table below where 3 emojis do not have a substitution. That can be seen in the table below with NA being used to represent the unknown characters.
Character | Substitution | Character | Substitution | Character | Substitution |
---|---|---|---|---|---|
` ` (Space) | ๐ |
y |
๐จ |
W |
๐ |
a |
๐ญ |
z |
๐ฉ |
X |
โ |
b |
๐ฅ |
A |
๐ฆ |
Y |
๐ |
c |
๐ป |
B |
๐ฑ |
' |
๐ |
d |
๐ฝ |
C |
๐ฆ |
, |
๐ |
e |
๐ |
D |
๐ |
. |
๐ |
f |
๐ |
E |
๐งธ |
\n |
๐ |
g |
โจ |
F |
๐ฉ |
! |
๐ |
h |
๐ |
G |
๐ช |
? |
๐ธ |
i |
๐ |
H |
๐ |
- |
๐ |
j |
๐ |
I |
๐ฒ |
: |
๐ |
k |
๐ |
J |
๐ฅ |
" |
๐ |
l |
๐ |
K |
๐ธ |
NA |
๐ |
m |
๐ |
L |
๐ฎ |
NA |
๐ |
n |
๐ |
M |
๐ณ |
NA |
๐ |
o |
๐พ |
N |
๐พ |
0 |
๐ฅ |
p |
๐ค |
O |
๐ธ |
1 |
๐น |
q |
๐บ |
P |
๐ฅ |
2 |
๐บ |
r |
๐น |
Q |
๐ฅข |
3 |
๐ด |
s |
๐ฟ |
R |
๐ฅ |
4 |
๐ง |
t |
๐คก |
S |
๐ |
5 |
๐ |
u |
๐ช |
T |
๐ |
6 |
๐ฎ |
v |
๐ถ |
U |
๐ณ |
7 |
๐ |
w |
๐ฆ |
V |
๐ |
8 |
๐ป |
x |
๐ง |
9 |
๐ฑ |
Making a decoder with this table, we can decode most of the text, to see if there are context clues as to what they are. I created this first pass here that does all subistution while ignoring the 3 characters that do not have a substitution. This gives us the whole script of the Bee Movie, with a partially decoded flag right in the middle.
Not yet it isn't. But is this what it's come to for you? Exploiting tiny, helpless bees so you don't have to rehearse your part and learn your lines, sir?
sp00ky๐th4ts๐4l0t๐0f๐subs๐
Watch it, Benson! I could blow right now!
Knowing the flag format is sp00ky{flag}
, there smiling moon and sun can be swapped for the curly braces. Leaving a single emoji needing figured out. You could randomly guess, but the flag has leet speak for thats alot of subs
, so a good guess with context is _
which is common in leet speak spaces. Replacing these gives the final flag of sp00ky{th4ts_4l0t_0f_subs}
.
The final decoder, that will read in out2.emoji
and output the whole script with the flag is here.
Extra
If you are looking to do a similar challenge, both encoders have been included with the encoder pulling down the script upon running. Encoder and Encoder2.