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 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.
Classfile Reader & Writer is a Java package that makes it easy to read and write Java class files. It does not provide any help with displaying the contents of a class file (besides debug output) or disassembe the byte codes, but can read "obfuscated" class files such as those generated by Crema.
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.
The Java Binary Enhancement Tool (JBET) is a general Java program analysis and manipulation tool. Existing class files can be disassembled, eassembled, or edited programmatically through the JBET API. JBET can also be used to create new Java class files from scratch. It uses a convenient internal representation of all the contents of Java binary (.class) files, allowing the user to edit the classes easily, in a structured manner.