OllyDbg is a 32-bit assembler level analysing debugger for Microsoft® Windows®. Emphasis on binary code analysis makes it particularly useful in cases where source is unavailable.
OllyDbg’s primary strength is working with code that you don't have the source for. It does superb job of disassembling apps and augmenting the dissasembly with analysis that includes visual indications of function entry and exit points, loops, switch statements, common Win32 API calls and window messages (including cracking the parameters!), dynamically showing current stack, good tracing/logging, and support for patching. When you step through code it shows you even more …
ref:
OllyDbg - http://www.ollydbg.de/ , http://www.ollydbg.de/download.htm
OllyDbg Wiki - http://en.wikipedia.org/wiki/OllyDbg
OllyDbg Tutorial - http://www.pcdebug.com/debugging/ollydbg-tutorial-reverse-engineering-olly-dbg-plugins.html
SoftICE, OllyDbg, W32DASM - http://www.programmersheaven.com/2/Inject-code-to-Portable-Executable-file-Page-2
Programmer’s tools - http://weblogs.asp.net/sjoseph/archive/2007/05/21/programmer-s-tools.aspx
Windows Debuggers - http://blogs.msdn.com/b/tonyschr/archive/2004/01/17/59828.aspx
An Anti-Reverse Engineering guide - http://www.codeproject.com/KB/security/AntiReverseEngineering.aspx