Can someone give a list of websites with good (and free) reverse engineering training exercises ?
The organisation OpenSecurityTraining offers free training materials under creative commons type licenses. Many of the training's are videos, while others are slide decks and related class materials (scripts, malware samples and so on). The course-ware comes under 3 categories and features the following items (Which I have edited to include the RE related material):
- Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration
- Introduction to ARM
- The Life of Binaries
- Malware Dynamic Analysis
- Introduction to Trusted Computing
- Intermediate Intel x86: Architecture, Assembly, Applications, & Alliteration
- Introduction to Software Exploits
- Exploits 2: Exploitation in the Windows Environment
- Rootkits: What they are, and how to find them
- Introduction to Reverse Engineering Software
- Reverse Engineering Malware
- Advanced x86: Virtualization with Intel VT-x
Disclosure: I am not associated with OpenSecurityTraining in any way and have only worked through a small portion of their total offerings. Seems like a great resource though.
The Legend of R4ndom has a long series on a variety of reversing topics.
I typed out this answer and then realized that you wanted free (as in beer) materials. Minus 100 points for me. This answer assumes that you want to learn how to reverse engineer in a software environment.
Under this assumption, and assuming you have a base understanding of a programming or scripting language, such as C/C++ or Python respectively, there are many, many topics to begin with to learn how to "reverse engineer" in a software environment. A good first task for a beginner is to obtain a working knowledge of the Assembly Language. A good resource for this (at least for me) was the Windows Debugging: Practical Foundations book by Dmitry Vostokov. The book costs $14.
The objective of the book is to teach you how to use WinDbg to debug Windows Applications; however, along the way you will get an excellent, hands on introduction to the Assembly Language.
Please Note: I am in no way associated with Dmitry; however, I did buy the e-book.
The classes by Dan Guido at http://pentest.cryptocity.net/ are pretty good too. I used them as a reference when I first started getting into RE. They cover a large subject area in addition to RE and are well taught.