An extended list of the free software you might find in a reverse engineer toolbox.

Introduction

In computer sciences reverse engineering is the process of taking a software program's binary code to reproduce it, to see how it works or to find certain bugs.

We created a list of free software in active development with an emphasis on innovation and renewal.

Lexicon

A hex editor is a computer program that allows to view and edit binary data that constitutes a computer file.

A disassembler is a computer program that translates machine language into assembly language.

A debugger is a computer program that is used to test and debug other programs.

A decompiler is a computer program that translates executable programs into source code in a high level language.

Feel free to add suggestions to the comments

A binary analysis framework focusing on both static and dynamic symbolic analysis.

A tool for reverse engineering Android apk files.

A tool to assist vulnerability researchers who look for vulnerabilities in disassembled code.

A tool for analyzing and extracting firmware images.

A lightweight multi-platform, multi-architecture disassembly framework.

Tools to work with android .dex and java .class files.

A tool to decompile .NET assembly.

A JavaScript injector to explore native applications on Windows, Mac, Linux, iOS and Android.

A tool to browse and decompile .NET assembly to intermediate language.

A tool to decompile and analyze Java byte code.

A reverse engineering framework in Python.

A dynamic binary instrumentation framework.

A generic and open source machine emulator and virtualizer.

A portable reversing framework.

A tool to decompile native code to C/C++.

A lightweight multi-platform, multi-architecture CPU emulator framework.

A network protocol analyzer for Unix and Windows.

An open-source x64/x32 debugger for windows.

A high-performance theorem prover being developed at Microsoft Research.