angr alternatives

Looking for an alternative tool to replace angr? During the review of angr we looked at other open source tools. Based on their category, tags, and text, these are the ones that have the best match.

Top 3

  1. BAP (binary analysis toolkit)
  2. pyelftools (ELF parsing toolkit)
  3. Frida (reverse engineering tool)

These tools are ranked as the best alternatives to angr.

Alternatives (by score)

85

BAP (Binary Analysis Platform)

Introduction

The main purpose of BAP is to provide a toolkit for program analysis. This platform comes as a complete package with a set of tools, libraries, and related plugins. There are bindings available for C, Python, and Rust.

Project details

BAP is written in OCaml.

Strengths and weaknesses

  • + More than 25 contributors
  • + More than 500 GitHub stars
  • + The source code of this software is available

    Typical usage

    • Binary analysis
    • Malware analysis

    BAP review

    76

    pyelftools

    Introduction

    This toolkit is used by other software, or standalone. Its main purpose is to parse binary ELF files and DWARF debugging information. This can be useful during malware analysis or troubleshooting issues with programs.

    Project details

    pyelftools is written in Python.

    Strengths and weaknesses

    • + More than 25 contributors
    • + More than 500 GitHub stars
    • + The source code of this software is available

      Typical usage

      • Binary analysis
      • Malware analysis

      pyelftools review

      100

      Frida

      Introduction

      Frida allows developers and researchers to inject custom scripts into black box processes. This way it can provide a hook into any function, allowing to trace executed instructions. The source code is not needed. Frida even allows direct manipulation and see the results. The tool comes with bindings for different programming languages, allowing to interact with processes. Example of the bindings that Frida provides include Python, Swift, .NET, Qt/Qml, and C API.

      Project details

      Frida is written in C.

      Strengths and weaknesses

      • + More than 10 contributors
      • + More than 2000 GitHub stars
      • + Many releases available
      • + Project is mature (5+ years)
      • + The source code of this software is available

        Typical usage

        • Black-box testing
        • Reverse engineering

        Frida review

        85

        Manticore

        Introduction

        Manticore is a so-called symbolic execution tool to perform a binary analysis. It supports Linux ELF binaries and Ethereum smart contracts. The tool helps with researching binaries and their behavior. This might be useful to learn how malware works and troubleshooting.

        Project details

        Manticore is written in Python.

        Strengths and weaknesses

        • + More than 25 contributors
        • + More than 1000 GitHub stars
        • + The source code of this software is available

          Typical usage

          • Binary analysis
          • Malware analysis
          • Reverse engineering

          Manticore review

          60

          Bandit

          Introduction

          Bandit is a tool that can be used during development or afterward. Typically this is used by developers to find common security issues in Python code before putting the code in production. Another use-case would be to use this tool to analyze existing projects and find possible flaws.

          Project details

          Bandit is written in Python.

          Strengths and weaknesses

          • + More than 50 contributors
          • + The source code of this software is available
          • + Supported by a large company

            Typical usage

            • Code analysis

            Bandit review

            93

            Cppcheck

            Introduction

            Cppcheck is a static code analysis tool for C and C++ code. It helps to discover bugs that would not be picked up by compilers, yet avoid any false positives.

            Project details

            Cppcheck is written in C++.

            Strengths and weaknesses

            • + Project is mature (10+ years)
            • + The source code of this software is available

              Typical usage

              • Code analysis

              Cppcheck review

              85

              gosec

              Introduction

              Gosec is a security tool that performs a static code analysis for Golang projects for security flaws. The scan is performed on the so-called abstract syntax tree (AST). Gosec checks for common flaws that may be part of the selected project.

              Project details

              gosec is written in Golang.

              Strengths and weaknesses

              • + More than 25 contributors
              • + More than 1000 GitHub stars
              • + The source code of this software is available

                Typical usage

                • Code analysis
                • Safe software development

                gosec review

                93

                graudit

                Introduction

                Analysis of source code helps to find programming flaws including those that can lead to software vulnerabilities. Graudit helps to uncover these by searching through the files and discover possible flaws. The tool supports languages like ASP, C, Perl, PHP, Python, and others.

                Project details

                graudit is written in shell script.

                Strengths and weaknesses

                • + The source code is easy to read and understand
                • + Tool is easy to use
                • + Used language is shell script
                • + The source code of this software is available

                  Typical usage

                  • Code analysis

                  graudit review

                  60

                  PyT (Python Taint)

                  Introduction

                  Python Taint (or PyT) is a static code analyzer for Python scripts and applications. It tries to discover vulnerabilities or other possible weaknesses.

                  Project details

                  PyT is written in Python.

                  Strengths and weaknesses

                  • + The source code of this software is available

                    Typical usage

                    • Code analysis

                    PyT review

                    68

                    yasca (Yet Another Source Code Analyzer)

                    Introduction

                    Yasca is a tool to perform code analysis and linting. It can be used by developers and security professionals to evaluate the code quality.

                    Project details

                    yasca is written in PHP.

                    Strengths and weaknesses

                    • + The source code of this software is available

                      Typical usage

                      • Code analysis

                      yasca review

                      68

                      Shellharden

                      Introduction

                      Shellharden helps to detect flaws in shell scripts that may result in vulnerabilities. While being similar to Shellcheck, this tool can apply the suggested changes to a shell script.

                      Project details

                      Shellharden is written in Rust.

                      Strengths and weaknesses

                      • + Tool is easy to use
                      • + More than 3000 GitHub stars
                      • + The source code of this software is available
                      • - Full name of author is unknown

                      Typical usage

                      • Code analysis

                      Shellharden review

                      78

                      PyREBox

                      Introduction

                      PyREBox is short for Python scriptable Reverse Engineering Sandbox. It provides dynamic analysis and debugging capabilities of a running QEMU virtual machine. The primary usage is the analysis of running processes to perform reverse engineering. PyREBox can change parts of the running system by changing data in memory or within processor registers.

                      Project details

                      PyREBox is written in C++, Python.

                      Strengths and weaknesses

                      • + The source code of this software is available

                        Typical usage

                        • Binary analysis
                        • Malware analysis
                        • Reverse engineering

                        PyREBox review

                        60

                        Jackhammer

                        Introduction

                        The tool uses RBAC (Role Based Access Control) with different levels of access. Jackhammer uses several tools to do dynamic and static code analysis (e.g. for Java, Ruby, Python, and Nodejs). It checks also for vulnerabilities in libraries. Due to its modular architecture, it can use several scanners out of the box, with options to add your own.

                        The Jackhammer project was initially added to GitHub on the 8th of May, 2017.

                        Project details

                        Jackhammer is written in Ruby.

                        Strengths and weaknesses

                        • + The source code of this software is available

                          Typical usage

                          • Collaboration
                          • Information sharing

                          Jackhammer review

                          64

                          Binary Analysis Next Generation (BANG)

                          Introduction

                          BANG is a framework to unpack files recursively and scan them. The files can be firmware, binaries, or malware. The main goal is to scan all files and perform classification and labeling. This way each file can be further analyzed based on the characteristics.

                          Project details

                          Binary Analysis Next Generation is written in Python.

                          Strengths and weaknesses

                          • + The source code of this software is available
                          • - No releases on GitHub available

                          Typical usage

                          • Binary analysis
                          • Malware analysis
                          • Malware scanning

                          Binary Analysis Next Generation review

                          89

                          Cutter

                          Introduction

                          Cutter is a graphical user interface for radare2, the well-known reverse engineering framework. It focuses on those who are not familiar enough with radare2, or rather have a graphical interface instead of the command-line interface that radare2 provides.

                          Project details

                          Cutter is written in C++, Qt.

                          Strengths and weaknesses

                          • + More than 50 contributors
                          • + More than 3000 GitHub stars
                          • + The source code of this software is available

                            Typical usage

                            • Binary analysis
                            • Malware analysis
                            • Reverse engineering

                            Cutter review

                            60

                            elf2json

                            Introduction

                            The elf2json converts an ELF binary into JSON output and helping with reverse engineering and malware analysis.

                            Project details

                            89

                            LIEF

                            Introduction

                            LIEF is short for Library to Instrument Executable Formats.

                            Project details

                            LIEF is written in Python.

                            Strengths and weaknesses

                            • + The source code of this software is available

                              Typical usage

                              • Binary analysis
                              • Malware analysis
                              • Reverse engineering

                              LIEF review

                              64

                              PEDA

                              Introduction

                              PEDA is an extension for GDB (GNU DeBugger) to help with the development of exploit code. It can be used by reverse engineers and pentesters.

                              Project details

                              PEDA is written in Python.

                              Strengths and weaknesses

                              • + More than 2000 GitHub stars
                              • + The source code of this software is available

                                Typical usage

                                • Debugging
                                • Exploit development
                                • Reverse engineering

                                PEDA review

                                100

                                radare2

                                Introduction

                                Radare2 is a popular framework to perform reverse engineering on many different file types. It can be used to analyze malware, firmware, or any other type of binary files. Besides reverse engineering, it can be used for forensics on filesystems and do data carving. Tasks can be scripted and support languages like JavaScript, Go, and Python. Even software exploitation is one of the functions it can be used in.

                                Project details

                                radare2 is written in C.

                                Strengths and weaknesses

                                • + More than 500 contributors
                                • + More than 8000 GitHub stars
                                • + Many releases available
                                • + The source code of this software is available

                                  Typical usage

                                  • Digital forensics
                                  • Reverse engineering
                                  • Software exploitation
                                  • Troubleshooting

                                  radare2 review

                                  89

                                  r2frida

                                  Introduction

                                  Both Radare2 and Frida have their own area of expertise. This project combines both, to allow a more extensive analysis of files and processes.

                                  Project details

                                  r2frida is written in C, JavaScript.

                                  Strengths and weaknesses

                                  • + The source code of this software is available

                                    Typical usage

                                    • Application testing
                                    • Binary analysis
                                    • Memory analysis

                                    r2frida review

                                    100

                                    Brakeman

                                    Introduction

                                    Brakeman is a static code analysis tool for Ruby on Rails to perform a security review. It comes as an open source project with optional commercial support.

                                    Project details

                                    Brakeman is written in Ruby.

                                    Strengths and weaknesses

                                    • + Commercial support available
                                    • + More than 5000 GitHub stars
                                    • + The source code of this software is available
                                    • - Commercial usage is restricted to some extent

                                    Typical usage

                                    • Code analysis

                                    Brakeman review

                                    56

                                    Shellyzer

                                    Introduction

                                    Shell scripts are easy to create and often used by system administrator and developers. Although the language is fairly easy, there is a good number of best practices when creating them. Tools like Shellyzer can help auditing these scripts and improve the code or discover vulnerabilities.

                                    Project details

                                    Shellyzer is written in Python.

                                    Strengths and weaknesses

                                    • + The source code of this software is available
                                    • - Unknown project license

                                    Typical usage

                                    • Code analysis

                                    Shellyzer review

                                    Some relevant tool missing as an alternative to angr? Please contact us with your suggestion.