CSC842 mirror of private Github repo
Find a file
2023-05-18 18:49:27 +00:00
binhop add README.md, etc. 2023-05-18 18:10:01 +00:00
doc add README.md, etc. 2023-05-18 18:10:01 +00:00
.gitignore add README.md, etc. 2023-05-18 18:10:01 +00:00
LICENSE add README.md, etc. 2023-05-18 18:10:01 +00:00
README.md add FAQ 2023-05-18 18:49:27 +00:00
requirements.txt add README.md, etc. 2023-05-18 18:10:01 +00:00
setup.py add README.md, etc. 2023-05-18 18:10:01 +00:00

Binhop Logo

binhop

binhop is a file carving visualizer, powered by binwalk.

It makes clear what parts of a blob can be extracted, so you can take action on the parts that didn't.
binhop relies entirely on a functioning installation of binwalk.

InstallationUsageFAQContributingLicense

Installation

To use this script, you need Python 3 and a functioning and "recent" version of binwalk installed on your system. You'll probably also want to install optional binwalk dependencies such as sasquatch, jefferson, and others. You can learn how to do that in the binwalk documentation.

When that's done, install the Python dependencies for binhop, running something like:

git clone https://github.com/darrylnixon/binhop.git
cd binhop
pip install -r requirements.txt
pip install .

Usage

To use the script, run the following command:

binhop <path-to-binary-file>

Alternatively, you can run binhop on data from STDIN like so:

binhop < <path-to-binary-file-or-stream>

FAQ

What problem does binhop solve?

binhop was written under the assumption that reverse engineers are blindly running binwalk -qeM on firmware images without validating what percentage of the image successfully extracted. I'm guilty of this in the past. binhop makes it easier to determine "coverage" of a walk/carve so that pieces that did not match any magic bytes can be analyzed further.

What are the future plans for binhop?

This repository is part of my coursework for CSC 842 - Security Tool Development at Dakota State University. Consequently, I may choose not to maintain this tool beyond the length of the course, but have selected a license that enables open contributions in any case.

Why did you select GPLv3? MIT is so much better.

GPLv3 still gives you the right to use, modify, and share binhop. It also has the benefit of requiring you to open-source software that uses it and share back any significant modifications or improvements to the code, and I like that.

How can I report a bug or request new features?

See Contributing below.

Contributing

If you would like to contribute to this project, feel free to submit a pull request or open an issue on GitHub.

License

This project is licensed under the GPLv3 License, because it's important to give back. See the LICENSE file for details.