Skip to main content

Tokyo Westerns 2019 - Meow

· One min read

Category: reverse

Points: (dependant on solve time)


A 7zip archive was provided, along with an ASCII art picture of a cat.



The 7zip archive contained two files:

  • meow.n
  • flag_enc.png

The meow.n file was a NekoVM executable. Running it produced...

andrew@WOPR /tmp/meow % neko meow.n
Usage: meow INPUT OUTPUT

When run with flag_enc.png, it produced a similarly broken image.

We couldn't immediatly find any tools for RE'ing NekoVM executables, so @BaileyBelisario wrote a script to keep feeding the output image back in as input, saving each file along the way.


#neko meow.n flag_enc.png flag_dec0.png

for ((i = 1 ; i < 10000 ; i++)); do
let k=$i-1
neko meow.n flag_dec$k.png flag_dec$i.png

Eventually, some of them started to look like a Nyan Cat image (although still severely broken). However even after several thousand iterations they never became clean enough to read.

Iteration #2098


Iteration #2108


On a whim I opened one in GIMP, and carefully deleted all of the incorrect pixels around the flag. To my suprise, it was just enough to make it readable!