X3-ctf-2025, MVM writeup:

we are immediately given a txt file containing: MMVMVMVVMMVMVMVVMVMVVMVVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVVVVVMMMVMVMVVMMVVVVMMMVMVVVMVMMVVVVVMMMVMVVVMMMVMVMVVMMVMVMVVMMVMVMVVMMVMVMVVMMVMVVVMMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVVVMMMVMVVMVMVMVVMVVMMVMVVMVMMVVVVVMMMVMVMVVMMVMVMVVMMVMVMVVMMVMVMVVMMVMVVVMMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVVVMMMVMVMVVMMVVVVMMMVMVVVMVMMVVVVVMMMVMVVVMMMVVVVVMMMVMVVMVMVMVVMVVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVVMVMMVMVMVVMMVVVVMMMVMVVVMVMMVVVVMMMVMVVVM

This seems like a binary data file but the characters have been converted/swapped, meaning it is either binary or morse code, we will try to switch each 'M' to a 0 and each 'V' to a 1 firstly.

We are presented with this long chain:

0010101100101011010110110010110100101101001011010010110100101101001011010010110100101101001011010010110100111110001010110011110001011101001111100010111000101011001010110010101100101011001010110010101100101011001010110010101100101110001011010010110100101101001011010010110100101101001011010010110100101101001011100010110101011011001011010011111000101011001010110010101100101011001010110011110001011101001111100010110100101110001010110101101100101101001011010010110100101101001011010011111000101011001111000101110100111110001010110010111000101011001010110010101100101011001010110010101100101011001010110010101100101110001011010010110100101101001011010010110100101101001011010010110100101101001011100010110101011011001011010010110100101101001011010011111000101011001010110010101100101011001010110011110001011101001111100010110100101110001010110101101100101101001011010010110100101101001011010011111000101011001010110011110001011101001111100010101100101011001011100011111000101101010110110010110100101101001011010011111000101011001111000101110100111110001011010010110100101101001011100010110100101101010110110010110100111110001010110010101100101011001010110011110001011101001111100010101100101110001010110010101100101011001010110011110001011101001111100010101100101110001010110010101100101011001010110010101100101011001010110010101100101110001011010010110100101101001011010010110100101101001011010010110100101101001011100011111000101101001011010101101100101101001011010011111000101011001010110010101100111100010111010011111000101110

When converted to text it gives: ++[---------->+<]>.+++++++++.---------.-[->+++++<]>-.+[----->+<]>+.+++++++++.---------.-[---->+++++<]>.+[--->++<]>++.>-[--->+<]>---.--[->++++<]>+.++++++++.+++++.[-->+++++++++<]>.[--->+++++<]>.++++++++++.++++++++++++.-[----->+<]>.>-[--->+<]>.-[----->+<]>-.++++++++.------.-.++[->+++++<]>+.[----->++++<]>+.+++++++++.---------.>--[-->+++<]>.

This seems to be a line of BF code, we can tell because of the hyper minimalistic syntax, lets try running it:

Output: webmaster@4647c6356dee:/home/cg/root/679520f3d7fd9$ MVM{MVM_BRAIN_IS_FUCKED_MVM}webmaster@4647c6356dee:/home/cg/root/679520f3d7fd9$

And so there you have the flag: MVM{MVM_BRAIN_IS_FUCKED_MVM}