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.
Fenris is a multipurpose tracer, debugger, and code analysis tool that detects and documents high-level language constructions, can recover symbols, graph program execution flow, detect internal functions, recover symbol tables, and deal with anti-debugging protection. It features a command-line interface as well as a SoftICE-alike GUI and Web frontend.
joeq is a Java 2 (JDK 1.3 and 1.4) compatible virtual machine. It is unique in that it is entirely implemented in Java, leading to greater reliability, portability, maintainability, and efficiency. It is also language-independent, so code from any supported language can be seamlessly compiled, linked, and executed dynamically.
The bastard disassembler is a disassembler written for x86 ELF targets on Linux. Other file formats/CPUs can be 'plugged in'. It has a command-line interface and is meant to be used as a backend or engine. Support for controlling the disassembler via pipes is provided. Note that this disassembler does not rely on libopcodes to do its disassembly. Rather, the 'libi386' plugin is a standard .so that can be reused by other projects.