Signsrch is a tool that searches for signatures inside raw files and executables. It can recognize a large number of compression, multimedia, and encryption algorithms and many other things like known strings and portions of anti-debugging code. Definitions can be manually added, since they are based on an ease-to-modify text signature file that is read at runtime. It also supports the scanning of processes, conversion of executable memory offsets, 8, 16, 32 and 64 bits, float and double, plus automatic CRC table creation and C style strings.
AgileJ StructureViews is an Eclipse plugin that generates highly configurable reverse engineered class diagrams for Java programmers. It specializes in supporting agile project development through the automated production of high presentation quality class diagrams with project-specific content generated and regenerated with minimal user effort.
UMLGraph facilitates the declarative specification and drawing of UML class and sequence diagrams. One can specify a class design using the Java syntax complemented by Javadoc tags. Running the UmlGraph doclet on the specification generates a Graphviz diagram specification that can be automatically processed to create Postscript, GIF, SVG, JPEG, fig, or Framemaker drawings. Similarly, sequence diagrams are specified using declarative pic macros and compiled with the GNU plotutils pic2plot program into a PNG, PNM, (pseudo) GIF, SVG, AI, Postscript, CGM, FIG, PCL, HPGL, Regis, or TEK drawing.
Netzob supports the expert in reverse engineering, evaluation, and simulation of communication protocols. Its main goals are to help security evaluators to assess the robustness of proprietary or unknown protocol implementations, simulate realistic communications to test third-party products (IDS, firewalls, etc.), and create an Open Source implementation of a proprietary or unknown protocol. Netzob provides a semi-automatic inferring process, and includes everything necessary to passively learn the vocabulary of a protocol and actively infer its grammar. The learnt protocol can afterward be simulated. Netzob handles text protocols (like HTTP and IRC), fixed field protocols (like IP and TCP), and variable field protocols (like ASN.1-based formats).
EmilPRO is a graphical disassembler for most architectures. It supports quick navigation through the code, visualizing jump destinations, and easy lookup of symbols and addresses. It also supports cross-referencing symbols and displays data (or instructions) in a hexview. Instruction types can be easily edited by the user and shared with others via a Web service. For binaries with debugging information, the high-level source code is shown in addition to the disassembled instructions. EmilPRO can open binaries of many formats, including ELF, Mach-O, and PE executables, with or without symbols.
ERDesignerNG is a Java-based entity relationship design and database modeling tool. It has a powerful WYSIWYG interface for physical database design, supports 2D and 3D database modeling, browsing, and design, handles tables, relations, indexes, and comments, supports a central repository for all models (Model Repository), supports subject areas, supports domains, supports MySQL, Oracle, Microsoft SQLServer, PostgreSQL, and H2, creates the SQL DDL statements for schema creation, has an integrated schema version control system, can generate schema migration scripts for every change, stores the database definition as XML files for further processing, can export the database schema as GIF, BMP, JPEG, or SVG files, has an integrated reverse engineering module for existing schemas, has a build in schema compare feature, can generate schema documentation as PDF, HTML, RTF, and other formats, and supports schema conversion between different dialects.
6jack is a framework for testing, analyzing, and fuzzing network applications. 6jack runs a command, intercepts calls to common network-related system calls, and passes them through an external filter. A filter can be written in any language supporting the MessagePack serialization library. 6jack is especially useful for writing tests for clients and servers, debugging and reverse engineering protocols, sketching filtering proxies, and fuzzing.
DatabaseToUML reverse engineers a database schema from an existing relational JDBC database. Tables and fields are reversed to classes and attributes, constraints are reversed to association, and tables composed only of foreign keys are converted to many-to-many associations. The main idea is to reuse the reversed model in a generator, taking UML2.x (EMF XMI 2.0/2.1) models as input.