Skip to content

List of helpful binary analysis tools and research materials

Notifications You must be signed in to change notification settings

open-crs/awesome-binary-analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Binary Analysis



Description

A list of helpful binary analysis tools and research materials can be found in this repository.

All resources are alphabetically organized and labeled, making it simple to locate them simply searching one item from the index on the entire page (with CTRL+F). The ones not having a link attached are present in the documents/ folder.

Labels Indexes

By Type

  • Type: awesome
  • Type: book
  • Type: brief
  • Type: code%20snippets
  • Type: dataset
  • Type: enumeration
  • Type: library
  • Type: paper
  • Type: publication
  • Type: study%20case
  • Type: tool
  • Type: website
  • Type: workshop

By Purpose

  • Purpose: attack%20surface%20approximation
  • Purpose: binary%20analysis
  • Purpose: binary%20rewriting
  • Purpose: control--flow%20analysis
  • Purpose: cyber%20reasoning%20system
  • Purpose: data--dependency%20analysis
  • Purpose: decompilation
  • Purpose: disassembly
  • Purpose: dynamic%20analysis
  • Purpose: emulator
  • Purpose: executables%20parsing
  • Purpose: exploit%20generation
  • Purpose: fuzzing
  • Purpose: instrumentation
  • Purpose: lifting
  • Purpose: loading
  • Purpose: research
  • Purpose: sandbox
  • Purpose: static%20analysis
  • Purpose: symbolic%20execution
  • Purpose: taint%20analysis
  • Purpose: taint--analysis
  • Purpose: value--set%20analysis
  • Purpose: vulnerability%20detection

Resources

  • (State of) The Art of War: Offensive Techniques in Binary Analysis
    • Description: angr's presentation
    • Type: Type: paper
    • Purpose: Purpose: exploit%20generation
  • A Honeybug for Automated Cyber Reasoning Systems
    • Description: presentation of Rubeus and honeybugs as in Cyber Grand Challenge
    • Type: Type: publication
    • Purpose: Purpose: cyber%20reasoning%20system
  • Address Sanitizer
    • Description: a memory error detector for C/C++
    • Type: Type: tool
    • Purpose: Purpose: vulnerability%20detection
  • AFL
    • Description: (Now unmaintained) mutational fuzzer
    • Type: Type: tool
    • Purpose: Purpose: fuzzing
  • AFL++
    • Description: fuzzer continuing AFL with additional features
    • Type: Type: library Type: tool
    • Purpose: Purpose: fuzzing
  • AFLgo
    • Description: AFL extension for directed fuzzing
    • Type: Type: tool
    • Purpose: Purpose: fuzzing
  • AFLNet
    • Description: AFL extension for fuzzing network fuzzer
    • Type: Type: tool
    • Purpose: Purpose: fuzzing
  • AFLSmart
    • Description: AFL extension that transforms it to a smart fuzzer by considering the input structure
    • Type: Type: tool
    • Purpose: Purpose: fuzzing
  • angr
    • Description: Python 3 library for static and dynamic binary analysis
    • Type: Type: library
    • Purpose: Purpose: control--flow%20analysis Purpose: data--dependency%20analysis Purpose: decompilation Purpose: disassembly Purpose: exploit%20generation Purpose: instrumentation Purpose: lifting Purpose: symbolic%20execution Purpose: value--set%20analysis
  • angr-management
    • Description: GUI for the above-mentioned angr
    • Type: Type: tool
    • Purpose: Purpose: control--flow%20analysis Purpose: data--dependency%20analysis Purpose: decompilation Purpose: disassembly Purpose: instrumentation Purpose: lifting Purpose: symbolic%20execution Purpose: value--set%20analysis
  • Approximating Attack Surfaces with Stack Traces
    • Description: identification of attack surface given a stack trace
    • Type: Type: paper
    • Purpose: Purpose: attack%20surface%20approximation
  • Awesome Fuzzing
    • Description: list with fuzzing resources
    • Type: Type: awesome
    • Purpose: Purpose: fuzzing
  • BAP
    • Description: binary analysis platform
    • Type: Type: library Type: tool
    • Purpose: Purpose: binary%20analysis Purpose: lifting Purpose: taint--analysis
  • boofuzz
    • Description: network fuzzer based on specifications
    • Type: Type: tool
    • Purpose: Purpose: fuzzing
  • cb-multios
    • Description: dataset with the samples used in DARPA's Cyber Grand Challenge, migrated to multiple operating systems (Windows, Linux, MacOS)
    • Type: Type: dataset
    • Purpose: Purpose: vulnerability%20detection
  • Connected Papers
    • Description: papers search engine and graphing tool
    • Type: Type: website
    • Purpose: Purpose: research
  • CWE Enumeration
    • Description: weaknesses enumeration
    • Type: Type: enumeration
    • Purpose: Purpose: vulnerability%20detection
  • Frida
    • Description: dynamic binary analysis framework for function hooking, tracing and scripting
    • Type: Type: tool
    • Purpose: Purpose: dynamic%20analysis Purpose: instrumentation
  • Fuzzgoat
    • Description: vulnerable C program with several memory corruption bugs
    • Type: Type: dataset
    • Purpose: Purpose: vulnerability%20detection
  • Fuzzing with AFL
    • Description: AFL fuzzing workshop
    • Type: Type: workshop
    • Purpose: Purpose: fuzzing
  • Ghidra
    • Description: reverse engineering tool
    • Type: Type: library Type: tool
    • Purpose: Purpose: decompilation
  • GhidraSnippets
    • Description: Python snippets for working with Ghidra API
    • Type: Type: code%20snippets
    • Purpose: Purpose: static%20analysis
  • go-fuzz-corpus
    • Description: corpus for fuzzing different file formats
    • Type: Type: dataset
    • Purpose: Purpose: fuzzing
  • HaCRS
    • Description: a human-assisted cyber reasoning system
    • Type: Type: tool
    • Purpose: Purpose: cyber%20reasoning%20system
  • Honggfuzz
    • Description: evolutionary, coverage-based fuzzer
    • Type: Type: tool
    • Purpose: Purpose: fuzzing
  • Instrumentarea dinamica a binarelor pentru fuzzing în SASHA
    • Description: study case for binary instrumentation as in SASHA
    • Type: Type: study%20case
    • Purpose: Purpose: instrumentation
  • LIEF
    • Description: Python 3 library for processing, modifying, and abstracting executable file
    • Type: Type: library
    • Purpose: Purpose: executables%20parsing
  • Manticore
    • Description: symbolic execution tool
    • Type: Type: tool
    • Purpose: Purpose: instrumentation Purpose: symbolic%20execution
  • Mayhem Solution Brief
    • Description: solution brief for Mayhem cyber reasoning system
    • Type: Type: brief
    • Purpose: Purpose: cyber%20reasoning%20system
  • Mechanical Phish
    • Description: GitHub organization containing the components of the Mechanical Phish cyber reasoning system
    • Type: Type: tool
    • Purpose: Purpose: cyber%20reasoning%20system
  • NIST's C Test Suite
    • Description: dataset containing the samples of C Test Suite
    • Type: Type: dataset
    • Purpose: Purpose: vulnerability%20detection
  • NIST's Juliet 1.3 Test Suite
    • Description: dataset containing the samples of Juliet 1.3
    • Type: Type: dataset
    • Purpose: Purpose: vulnerability%20detection
  • PDF.js
    • Description: dataset containing PDFs used to test the Mozilla's in-browser reader
    • Type: Type: dataset
    • Purpose: Purpose: fuzzing
  • Peach
    • Description: generational fuzzer
    • Type: Type: tool
    • Purpose: Purpose: fuzzing
  • Practical Binary Analysis
    • Description: cookbook for homemade binary analysis
    • Type: Type: book
    • Purpose: Purpose: binary%20analysis Purpose: disassembly Purpose: instrumentation Purpose: loading Purpose: symbolic%20execution Purpose: taint%20analysis
  • Qiling Framework
    • Description: cross-platform, multi arch and QEMU-based lightweight emulator
    • Type: Type: library
    • Purpose: Purpose: emulator Purpose: sandbox
  • retrowrite
    • Description: platform for instrumenting user-mode and kernel binaries with ASan and AFL
    • Type: Type: tool
    • Purpose: Purpose: binary%20rewriting Purpose: instrumentation Purpose: static%20analysis
  • revng
    • Description: static binary translator capable of instrumenting
    • Type: Type: tool
    • Purpose: Purpose: binary%20rewriting Purpose: instrumentation Purpose: static%20analysis
  • Rise of the HaCRS
    • Description: description of a human-assisted cyber reasoning system, HaCRS
    • Type: Type: paper
    • Purpose: Purpose: cyber%20reasoning%20system
  • River
    • Description: fuzzer using AI
    • Type: Type: tool
    • Purpose: Purpose: fuzzing
  • Sci-Hub
    • Description: papers database
    • Type: Type: website
    • Purpose: Purpose: research
  • Survey of Automated Vulnerability Detection and Exploit Generation Techniques in Cyber Reasoning Systems
    • Description: self-explanatory
    • Type: Type: paper
    • Purpose: Purpose: cyber%20reasoning%20system Purpose: exploit%20generation Purpose: vulnerability%20detection
  • The Fuzzing Book
    • Description: book with practical examples related to fuzzing
    • Type: Type: book Type: workshop
    • Purpose: Purpose: fuzzing
  • The Mayhem Cyber Reasoning System
    • Description: presentation of Mayhem as in Cyber Grand Challenge
    • Type: Type: publication
    • Purpose: Purpose: cyber%20reasoning%20system
  • Xandra: An Autonomous Cyber Battle System for the Cyber Grand Challenge
    • Description: presentation of Xandra as in Cyber Grand Challenge
    • Type: Type: publication
    • Purpose: Purpose: cyber%20reasoning%20system

Contribution

  1. Edit the resources.csv file.
  2. Push the changes into the GitHub repository.
  3. Wait for the GitHub action to automatically recompile README.md.

About

List of helpful binary analysis tools and research materials

Topics

Resources

Stars

Watchers

Forks

Languages