Horde is a suite of binary analysis tools for reverse engineering made in Rust with Python bindings. It aims to ease the analysis, modifying and generation of binary programs with various techniques.
Horde is a comprehensive suite of binary analysis tools designed for reverse engineering, developed in Rust with Python bindings. It simplifies tasks like analyzing, modifying, and generating binary programs through various advanced techniques. Inspired by projects like angr and miasm, Horde aims to streamline complex reverse engineering workflows for a wide range of architectures.
This project is motivated by the need to unify diverse binary analysis utilities into a cohesive, extensible framework.
Unlike existing tools that often specialize in specific areas, Horde integrates capabilities like intermediate representation (via GTIRB), dynamic program instrumentation (with Intel Pin), symbolic execution (using Triton), and disassembly (leveraging ddisasm, souffle and capstone) under a single ecosystem, without reinventing the wheel.
Its innovative approach lies in offering a seamless interface in Rust and Python, with plans to expand bindings to other languages, enabling flexibility and accessibility for developers and researchers. By merging these powerful tools, Horde minimizes the fragmentation of reverse engineering workflows, offering a centralized and efficient solution for tasks ranging from binary rewriting to advanced program analysis.
This integration, coupled with Rust's performance and safety guarantees, makes Horde a compelling choice for anyone seeking a modern and versatile reverse engineering framework.
To-do
We welcome contributions to Horde and are excited to have you involved! Whether you're fixing a bug, implementing a new feature, or improving documentation, your contributions make the project better.
Start by checking the issues to see if there's something you'd like to work on, or suggest your own ideas by opening a new issue. Please follow the established coding style and provide tests where applicable to ensure stability and maintainability. If you're adding a new feature, include documentation to help users understand and use your addition. For larger changes, consider opening a discussion or submitting a draft pull request to gather feedback early.
Thank you for helping make Horde a robust and innovative tool for the reverse engineering community!
To-do