Chump is a table-driven assembler and dissembler with a very fast new architecture input format. Both the assembler and disassembler are created using a single description. It comes with descriptions for ARM, MIPS, Stump, and 6809. It is intended for use as a library compiled with other programs to allow line assembly and disassembly.
Debugtrace is a tool for printing execution traces that are helpful for debugging. It can generate instruction or call traces. It shows every instruction as it is executed, the values of registers that are written, and the memory that is read and written. It uses instrumentation rather than the debugging API, so it is much faster than doing the same thing with gdb. You can customize it to your own debugging needs. The tool works on Linux ARM, IA32, and EM64T.
KMD is a multi-processor debugger. It can debug with hardware boards over serial ports or with software emulators (ARM and MIPS emulators are included in the project). Using the pipe option you can debug over the network or any other communication medium. It can load many executable formats such as ELF, and display and follow the original source even from multiple source file programs. There is support for breakpoints and watchpoints which can trap on specific data (such as loading or executing specific instructions). Support for other features such as FPGA's is also available, allowing loading or any control required to drive a specific hardware device. The project uses chump to allow disassembly and line assembly. Chump also allows new architectures to be easily added without the need to recompile the system. Communication with the backend is done using two pipes/fifos using a simple set of codes. Back end communication program can be created using very little memory on the target device.
Linice is a source-level kernel debugger for x86 systems with the look and feel of SoftIce for MS Windows. It is designed for people who are already familiar with SoftIce, but anyone can quickly get used to it. It can break into a running kernel at any time using a hotkey and supports breakpoints and single step on modules, the kernel, or user programs. It supports the VGA frame buffer, the X Window System, serial connections, and monochrome adapters.
The Perl x86 Disassembler is a full x86 disassembler written in Perl, independent of objdump. The Perl script makes use of the opcode tables from libdisasm [derived from the bastard project] and is distributed as part of libdisasm. This is the same script that is included in the Perl-Disassembler-HOWTO; either the HOWTO or the libdisasm distribution will provide the required files [x86disasm.pl and 1386.opcodes.map] and documentation.
The Examiner is a tool to analyze foreign binary executables. Its goal is to provide a commented, disassembled version of the code without running the program. It analyzes possibly hostile executables that an intruder may have placed on a system. It was designed for forensic purposes but could be used for basic reverse-engineering goals as well.
The uda is program for disassembling a binary file. It is able to read different binary file formats and different instruction sets. The functionality is based on plugins and external definition of an instruction set. It has a plugin for reading the Unix ELF format, and a plugin for reading the instruction stream and instruction set for the Intel PIII processor.