Here's my recommendations on books and sites:
"Fuzzing for Software Security Testing and Quality Assurance" - Charlie Miller, Jared DeMott, Ari Takanen (de-facto must have)
"Fuzzing: Brute Force Vulnerability Discovery" - Pedram Amini, Michael Sutton, Adam Greene (must have)
"Reversing: Secrets of Reverse Engineering" - Eldad Eilam
"The IDA Pro Book" - Chris Eagle
OpenRCE -
http://www.openrce.org/articles/As for tools, usual suspects, IDA, Olly, Immunity Debugger however, I also suggest learning WinDBG as best as possible. Finding bugs via way of fuzzing is difficult if you don't understand programming (assembly to a good degree) nor the operating system and the protocols. For Microsoft, I suggest MSDN become your friend.