Reverse Engineering Technology (Decompilers
and File Formats)

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.
On this page: Decompilers - Wanted - Object
File Formats
Among reverse engineering tools the most useful are
decompilers. A decompiler tries to translate an object file into
a compilable source file. The following pages are about
decompilers:
C language
Java
Windows
Data Bases (4GL)
COBOL
Misc
Every reverse engineering tool needs to know about object file
formats.
The very basic tool for inspecting binary files is the hex editor.
|
An exceptionally good hex editor for reverse engineering is
available from SweetScape:
the 010 Editor - Hex
Editor understands file format specifications in the form of
templates, and makes it easy to impose a structure over
binary files. |
Several standard formats have specifications on the net.
A very good repository for object file format specifications
is The
Wotsit's Site.
Specific file format specification links:
- Executable File Formats
- Microsoft
Symbol and Type Information Spec., V1.0.
- Portable
Executable Format Specification for Windows, V1.0. The
Portable Executable (PE) format is the
format used by Windows NT and Windows 95
executable files (.EXE, .DLL).
- DJGPP
COFF format
- Relocatable Object Module Format (OMF),
V1.1. This is the old Microsoft
format for x86 executable files.
- Executable
and Linkable Format (ELF) V1.1. This is the
format used by many UNIX System
V Release 4 derivatives, including Solaris
and Linux.
- DWARF
Debug Information Format, V1.1.This is the
portion of an ELF file that describes
symbolic information, like variable types. This
should be standard on a UNIX System
V Release 4 compliant system. Unfortunately,
many system that use ELF don't use
DWARF: the GNU gcc compiler for Solaris
and Linux generates AOUT STABs in place of
DWARF.
- STABS:
the BSD AOUT format, like COFF, does not have a
separate debug info portion. Instead, special
entries in the AOUT symbol table carry symbolic
info and line numbers.
- BINHEX format
info (Finland)
- From the Graphical
Standards Format page:
- Another list
of formats
- Animation/movie formats:
- ANM Deluxe
Paint Animation, from CICA (5kbytes)
- FLI
from CICA (10kbytes)
- GRASP
from CICA (44kbytes)
- RIFF WAVE (.WAV) audio
format (from SimTel)
- MIDI format
- MUS
format
- 3D description formats
- Data base formats
- Text and Page description languages
Other sources for highly technical, not-so much publicized
information:

You can reach me at : g_caprino@katamail.com (remove the _ before sending your message)
Back to CG's home