Binwalk supports Python 2.7 - 3.x. Although most systems have Python2.7 set as their default Python interpreter, binwalk does run faster in Python3. Installation procedures for both are provided below.
Binwalk supports Python 3.6+.
Installation
============
...
...
@@ -9,11 +9,6 @@ Installation
Installation follows the typical Python installation procedure:
```bash
# Python2.7
$ sudo python setup.py install
```
```bash
# Python3.x
$ sudo python3 setup.py install
```
...
...
@@ -25,40 +20,21 @@ Dependencies
Besides a Python interpreter, there are no installation dependencies for binwalk. All dependencies are optional run-time dependencies, and unless otherwise specified, are available from most Linux package managers.
Although all binwalk run-time dependencies are optional, the `python-lzma` module is highly recommended for improving the reliability of signature scans. This module is included by default in Python3, but must be installed separately for Python2.7:
```bash
$ sudo apt-get install python-lzma
```
Binwalk uses the `nosetest` library for tests and `coverage` for test-coverage:
```bash
$ sudo pip install nose coverage
```
Binwalk uses the `pycrypto` library to decrypt some known encrypted firmware images:
Binwalk uses the `pycryptodome` (`pycrypto`-compatible module that is still maintained) library to decrypt some known encrypted firmware images:
```bash
# Python2.7
$ sudo apt-get install python-crypto
```
```bash
# Python3.x
$ sudo apt-get install python3-crypto
$ sudo pip install pycryptodome
```
Binwalk uses [pyqtgraph](http://www.pyqtgraph.org) to generate graphs and visualizations, which requires the following:
Binwalk uses [pyqtgraph](http://www.pyqtgraph.org) to generate graphs and visualizations, which requires the following (exact dependencies may vary based on your distro refer to `deps.sh` for more details):