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.
Reverse Engineering Tools
Feel free to add suggestions to the comments
Angr
A binary analysis framework focusing on both static and dynamic symbolic analysis.
Apktool
A tool for reverse engineering Android apk files.
BinNavi
A tool to assist vulnerability researchers who look for vulnerabilities in disassembled code.
Binwalk
A tool for analyzing and extracting firmware images.
Capstone
A lightweight multi-platform, multi-architecture disassembly framework.
dex2jar
Tools to work with android .dex and java .class files.
dotPeek
A tool to decompile .NET assembly.
Frida
A JavaScript injector to explore native applications on Windows, Mac, Linux, iOS and Android.
ILSpy
A tool to browse and decompile .NET assembly to intermediate language.
Java Decompiler
A tool to decompile and analyze Java byte code.
Miasm
A reverse engineering framework in Python.
Pin
A dynamic binary instrumentation framework.
QEMU
A generic and open source machine emulator and virtualizer.
Radare
A portable reversing framework.
Snowman
A tool to decompile native code to C/C++.
Unicorn
A lightweight multi-platform, multi-architecture CPU emulator framework.
Wireshark
A network protocol analyzer for Unix and Windows.
x64dbg
An open-source x64/x32 debugger for windows.
Z3
A high-performance theorem prover being developed at Microsoft Research.