When I learned assembly years ago, my favorite assignment was a binary bomb. The goal was to "defuse" the binary bomb, which you did by using gdb to disassemble and step through the code in order to figure out how to get to the next phase. There were 10-12 phases, IIRC. It was a great assignment - it helped you understand assembly better while learning how to use gdb - all in the form of a puzzle.<p>If anyone is interested, below is the first one I found via Google.<p><a href="http://stevebirstok.com/wp/?p=16" rel="nofollow">http://stevebirstok.com/wp/?p=16</a>
Before checking the tutorial I disassembled it myself to see how it's working. Based on my interpretation I entered<p><pre><code> 2 <enter> 1 <enter>
</code></pre>
This diffused the bomb. Later I found out that was not suppose to be the code.