My ranking is 216/1250. I got 350 points and played by myself. I spent 6ish hours. I didn’t do as good as good as I hoped. I wish myself better luck next weekend.
In this reversing challenge, we are given an excel file. You will be greeted with a crackme in Excel, which looks like
After typing in something in the box and clicking Check flag, the Excel doc will determine whether your input is correct via a macro. A macro is a VBA (Visual Basic for Applications) script that automates tasks such as checking mouse clicks or key presses.
To access the macro, modify the excel file extension to a zip and unzip it. Look for a file called vbaProject.bin.
Next, I decompiled the VBA binary with pcode2code, running
pcode2code vbaProject.bin -o decompile.
I filtered out code that didn’t matter and modified a few things to make it more readable:
It still wasn’t that readable to me so I converted it into my own Python psuedocode:
I visualized this in my head and noticed that Row(h) * Col(r) = c where h, r, and c are of length guessed flag. This is equivalent to a simple matrix multiplication problem. So I wrote my code to solve it.