What are some fun reverse engineering problems?

Preferably problems that teach new concepts or language/frameworks that aren't used often.

Author
Anonymous (218.49)