A utility for Linux that attaches to a running process and searches the memory field for strings supplied by the user. Once found, you can then change the string to a different value. This works much like the pokefinder utilities on the 8-bit computers.
An open source decompilation application that helps the user reverse engineering applications. Retargetable to different CPUs, so you can (say) reverse a SPARC binary on a PowerPC machine. Modular.
A disassembler for Windows. One of the best in the field, and v2.0 just went beta. It's shareware, though it doesn't appear to lack any functionality if you haven't purchased it yet.
FDBG is a code debugger for code running in user mode (ring 3) in long mode (i.e., 64-bit native mode) on AMD CPUs. Ports for Windows and Linux are available. Written entirely in assembly language, includes source code. Extremely small executable.
BinNavi is a tool for performing static and dynamic reverse engineering of executables for a number of platforms - x86, ARM, PowerPC, and MIPS. Can connect to remote debuggers on other systems to examine running code. Extensible with scripts, can annotate call flow graphs. The source is on Github: https://github.com/google/binnavi
This is a free ebook about using the debugger/hex editor Radare2. It teaches basic techniques for using Radare2 all the way up to reverse engineering 64-bit executables. Free to download.