Also on this site...
Decompiler Design
REC Decompiler
RED Debugger

Reverse Engineering Resources

Reverse Engineering is the conversion of information from a low-level format, usually readable only by a computer, into a higher level format, which is easily readable by humans. Typical examples of reverse engineering tools are disassemblers and decompilers, which translate an object file produced by some compiler into an ASCII representation.

Reverse engineering requires deep understanding in a variety of topics. You can learn about reverse engineering by accessing the following links:

Decompilers

Learn from the masters by seeing what decompilers are freely available on the net.

Object File Formats

Discover what kind of information is stored in executable files and how to extract it.

Specifications

The most fundamental information for the reverse engineer: microprocessor manuals and Application Binary Interface (ABI) specifications.

Tools

Tools related to reverse engineering, beyond decompilers, such as dumpers and debuggers.

Algorithms

Want to write your own decompiler? You'll need to implement these algorithms.