I had the pleasure of being a guinea pig for exercises of an upcoming reverse engineering course at Jyväskylä University of Applied Sciences JAMK. The course will be held by Marko Silokunnas later in Spring 2018. I enjoyed the experience, so here’s some highlights.
I was new completely new to doing reverse engineering, which made me an ideal ideal test subject for testing how long the challenges take to complete.
The exercises were fun, so I try not to leave spoilers in case they’re used again. Fifth lab contained a number guessing game, which required a serial before letting user to play. It was fun moment to realize that I should now create a keygen by reversing the game’s validator.
While the programs were simple, I found myself putting a similar amount of effort to each lab as each got one or two new tricks to solve. I had some reference material available, but the calling conventions for various standard functions such as _printf were always a surprise: is it going through stack or through registers this time?
Even though this was supposed to be a friendly introduction to reverse engineering (which it was), I also knew Marko was live at BlackHat 2017 getting nasty ideas from talks like “Breaking the x86 Instruction Set“. Maybe a future course can include “well known” (with heavy quotation marks) IDA bugs or some of the uncovered undocumented instructions that the chips just seem to support.