Commit abaf29e0 authored by Gianfranco Costamagna's avatar Gianfranco Costamagna Committed by Sophie Brun

Imported Debian patch 2.0.1+dfsg-1

parents 4dc082d6 923f7dbf
Description
===========
The binwalk python module can be used by any python script to programmatically perform binwalk scans and obtain the results of those scans.
The classes, methods and objects in the binwalk modules are documented via pydoc, including examples, so those interested in using the binwalk module are encouraged to look there. However, several common usage examples are provided here to help jump-start development efforts.
Binwalk Scripting
=================
Each of binwalk's features (signature scans, entropy analysis, etc) are implemented as separate modules. These modules can be invoked via the binwalk.core.module.Modules class, which makes scripting trivial through its execute method.
In fact, the binwalk command line utility can be duplicated nearly entirely with just two lines of code:
```python
import binwalk
binwalk.Modules().execute()
```
The Modules class constructor as well as the execute method accept both Python args and kwargs corresponding to the normal command line options accepted by the binwalk command line utility, providing a large amount of freedom in how you choose to specify binwalk options (if none are specified, sys.argv is used by default).
For example, to execute a signature scan, you at the very least have to specify the --signature command line option, as well as a list of files to scan. This can be done in a number of ways:
```python
binwalk.Modules().execute('firmware1.bin', 'firmware2.bin', signature=True)
binwalk.Modules().execute('firmware1.bin', 'firmware2.bin', **{'signature' : True})
binwalk.Modules().execute(*['firmware1.bin', 'firmware2.bin'], signature=True)
binwalk.Modules().execute(*['--signature', 'firmware1.bin', 'firmware2.bin',])
binwalk.Modules().execute('--signature', 'firmware1.bin', 'firmware2.bin')
```
All args and kwargs keys/values correspond to binwalk's command line options. Either args or kwargs, or a combination of the two may be used, with the following caveats:
* All command line switches passed via args must be preceeded by hyphens (not required for kwargs)
* All file names must be passed via args, not kwargs
Accessing Scan Results
======================
binwalk.Modules.execute returns a list of objects. Each object corresponds to a module that was run. For example, if you specified --signature and --entropy, then both the Signature and Entropy modules would be executed and you would be returned a list of two objects.
The two attributes of interest for each object are the 'results' and 'errors' objects. Each is a list of binwalk.core.module.Result and binwalk.core.module.Error objects respectively. Each Result or Error object may contain custom attributes set by each module, but are guarunteed to have at least the following attributes (though modules are not required to populate all attributes):
| Attribute | Description |
|-------------|-------------|
| offset | The file offset of the result/error (usually unused for errors) |
| description | The result/error description, as displayed to the user |
| module | Name of the module that generated the result/error |
| file | The file object of the scanned file |
| valid | Set to True if the result if value, False if invalid (usually unused for errors) |
| display | Set to True to display the result to the user, False to hide it (usually unused for errors) |
| extract | Set to True to flag this result for extraction (not used for errors) |
| plot | Set to Flase to exclude this result from entropy plots (not used for errors) |
binwalk.core.module.Error has the additional guarunteed attribute:
| Attribute | Description |
|-------------|-------------|
| exception | Contains the Python execption object if the encountered error was an exception |
Thus, scan results and errors can be programatically accessed rather easily:
```python
for module in binwalk.Modules().execute('firmware1.bin', 'firmware2.bin', signature=True):
print ("%s Results:" % module.name)
for result in module.results:
print ("\t%s 0x%.8X %s" % (result.file.name, result.offset, result.description))
```
Module Exceptions
=================
The only expected exception that should be raised by binwalk.Modules is that of binwalk.ModuleException. This exception is thrown only if a required module encountered a fatal error (e.g., one of the specified target files could not be opened):
```python
try:
binwalk.Modules().execute()
except binwalk.ModuleException as e:
print ("Critical failure:", e)
```
Before You Start
================
Binwalk supports Python 2.7 - 3.x. Although binwalk is slightly faster in Python 3, the Python OpenGL bindings are still experimental for Python 3, so Python 2.7 is recommended.
The following installation procedures assume that you are installing binwalk to be run using Python 2.7. If you want to use binwalk in Python 3, some package
names and installation procedures may differ slightly.
Installation
============
Installation follows the typical configure/make process (standard development tools such as gcc, make, and Python must be installed in order to build):
$ ./configure
$ make
$ sudo make install
Binwalk's core features will work out of the box without any additional dependencies. However, to take advantage of binwalk's graphing and extraction capabilities, multiple supporting utilities/packages need to be installed.
To ease "dependency hell", a shell script named `deps.sh` is included which attempts to install all required dependencies for Debian and RedHat based systems:
$ ./deps.sh
If you are running a different system, or prefer to install these dependencies manually, see the Dependencies section below.
Dependencies
============
The following dependencies are only required for optional binwalk features, such as file extraction and graphing capabilities. Unless otherwise specified, these dependencies are available from most Linux package managers.
Binwalk uses [pyqtgraph](http://www.pyqtgraph.org) to generate graphs and visualizations, which requires the following:
libqt4-opengl
python-opengl
python-qt4
python-qt4-gl
python-numpy
python-scipy
Binwalk relies on multiple external utilties in order to automatically extract/decompress files and data:
mtd-utils
zlib1g-dev
liblzma-dev
ncompress
gzip
bzip2
tar
arj
p7zip
cabextract
p7zip-full
openjdk-6-jdk
firmware-mod-kit [https://code.google.com/p/firmware-mod-kit]
Bundled Software
================
For convenience, the following libraries are bundled with binwalk and will not conflict with system-wide libraries:
libmagic
libfuzzy
pyqtgraph
Installation of any individual bundled library can be disabled at build time:
$ ./configure --disable-libmagic --disable-libfuzzy --disable-pyqtgraph
Alternatively, installation of all bundled libraries can be disabled at build time:
$ ./configure --disable-bundles
If a bundled library is disabled, the equivalent library must be installed to a standard system library location (e.g., `/usr/lib`, `/usr/local/lib`, etc) in order for binwalk to function properly.
**Note:** If the bundled libmagic library is not used, be aware that:
1. Some versions of libmagic have known bugs that are triggered by binwalk under some circumstances.
2. Minor version releases of libmagic may not be backwards compatible with each other and installation of the wrong version of libmagic may cause binwalk to fail to function properly.
3. Conversely, updating libmagic to a version that works with binwalk may cause other utilities that rely on libmagic to fail.
Currently, the following libmagic versions are known to work properly with binwalk (other versions may or may not work):
5.18
5.19
Specifying a Python Interpreter
===============================
The default python interpreter used during install is the system-wide `python` interpreter. A different interpreter (e.g., `python2`, `python3`) can be specified at build time:
$ ./configure --with-python=python3
Uninstallation
==============
The following command will remove binwalk from your system. Note that this will *not* remove manually installed packages, or utilities installed via deps.sh:
$ sudo make uninstall
The MIT License (MIT)
Copyright (c) 2010-2014 Craig Heffner
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
export CC=@CC@
export CFLAGS=@CFLAGS@
export SONAME=@SONAME@
export SOEXT=@SOEXT@
export prefix=@prefix@
export exec_prefix=@exec_prefix@
export LIBDIR=@libdir@
export INSTALL_OPTIONS=@INSTALL_OPTIONS@
export PLATFORM=@PLATFORM@
export BUILD_MAGIC=@BUILD_MAGIC@
export BUILD_FUZZY=@BUILD_FUZZY@
export BUILD_PYQTGRAPH=@BUILD_PYQTGRAPH@
export PYLIBDIR="./binwalk/libs"
BUILD_C_LIBS=@BUILD_C_LIBS@
BUILD_BUNDLES=@BUILD_BUNDLES@
PYTHON=@PYTHON@
SRC_C_DIR="./src/C"
SRC_BUNDLES_DIR="./src/bundles"
ifeq ($(strip $(prefix)),)
PREFIX=""
else
PREFIX="--prefix=$(prefix)"
endif
.PHONY: all install build deps clean uninstall
all: build
install: build
$(PYTHON) ./setup.py install $(PREFIX)
build:
if [ "$(BUILD_C_LIBS)" -eq "1" ]; then make -C $(SRC_C_DIR); fi
if [ "$(BUILD_BUNDLES)" -eq "1" ]; then make -C $(SRC_BUNDLES_DIR); fi
$(PYTHON) ./setup.py build
deps:
./deps.sh
clean:
if [ "$(BUILD_C_LIBS)" -eq "1" ]; then make -C $(SRC_C_DIR) clean; fi
if [ "$(BUILD_BUNDLES)" -eq "1" ]; then make -C $(SRC_BUNDLES_DIR) clean; fi
$(PYTHON) ./setup.py clean
distclean: clean
if [ "$(BUILD_C_LIBS)" -eq "1" ]; then make -C $(SRC_C_DIR) distclean; fi
if [ "$(BUILD_BUNDLES)" -eq "1" ]; then make -C $(SRC_BUNDLES_DIR) distclean; fi
rm -rf Makefile config.* *.cache
uninstall:
$(PYTHON) ./setup.py uninstall --pydir=`find $(prefix)/lib -name binwalk | head -1` --pybin=`find $(prefix)/bin -name binwalk | head -1`
Description
===========
Binwalk is a fast, easy to use tool for analyzing, reverse engineering, and extracting firmware images.
Installation
============
Binwalk follows the standard Unix configure/make installation procedure:
$ ./configure
$ make
$ sudo make install
For convenience, optional dependencies for automatic extraction and graphical visualizations can be installed by running the included `deps.sh` script:
$ ./deps.sh
If your system is not supported by `deps.sh`, or if you wish to manually install dependencies, see `INSTALL.md`.
For advanced installation options, see `INSTALL.md`.
Usage
=====
Basic usage is simple:
$ binwalk firmware.bin
For additional examples and desriptions of advanced options, see the [wiki](https://github.com/devttys0/binwalk/wiki).
This diff is collapsed.
AC_PREREQ([2.65])
AC_INIT()
AC_PROG_CC
AC_LANG(C)
AC_TYPE_SIZE_T
AC_FUNC_MALLOC
AC_ARG_WITH([python],
[AS_HELP_STRING([--with-python=python], [explicitly install using the specified python interpreter (python2, python3, etc)])],
[PYTHON=$withval],
[PYTHON=python])
AC_ARG_ENABLE([clibs],
[AS_HELP_STRING([--disable-clibs], [do not build/install binwalk c libraries])],
[BUILD_C_LIBS=0],
[BUILD_C_LIBS=1])
AC_ARG_ENABLE([bundles],
[AS_HELP_STRING([--disable-bundles], [do not build/install any bundled software])],
[BUILD_BUNDLES=0],
[BUILD_BUNDLES=1])
AC_ARG_ENABLE([libmagic],
[AS_HELP_STRING([--disable-libmagic], [do not build/install the bundled libmagic library])],
[BUILD_MAGIC=0],
[BUILD_MAGIC=1])
AC_ARG_ENABLE([libfuzzy],
[AS_HELP_STRING([--disable-libfuzzy], [do not build/install the bundled libfuzzy library])],
[BUILD_FUZZY=0],
[BUILD_FUZZY=1])
AC_ARG_ENABLE([pyqtgraph],
[AS_HELP_STRING([--disable-pyqtgraph], [do not build/install the bundled pyqtgraph module])],
[BUILD_PYQTGRAPH=0],
[BUILD_PYQTGRAPH=1])
CFLAGS="-Wall -fPIC $CFLAGS"
INSTALL_OPTIONS="-m644"
if test "$prefix" != "NONE"
then
echo "install prefix: $prefix"
fi
if test "$(uname)" == "Darwin"
then
SONAME="-install_name"
SOEXT="dylib"
else
SONAME="-soname"
SOEXT="so"
fi
if test "$BUILD_BUNDLES" == "0"
then
BUILD_MAGIC=0
BUILD_FUZZY=0
BUILD_PYQTGRAPH=0
fi
if test "$BUILD_MAGIC" != "0"
then
rm -rf $(ls ./src/bundles/file-*.tar.gz | sed -e 's/\.tar\.gz//')
(cd ./src/bundles && tar -zxvf file-*.tar.gz > /dev/null)
(cd ./src/bundles/file-*/ && ./configure) || exit 1
fi
if test "$BUILD_FUZZY" != "0"
then
rm -rf $(ls ./src/bundles/ssdeep-*.tar.gz | sed -e 's/\.tar\.gz//')
(cd ./src/bundles && tar -zxvf ssdeep-*.tar.gz > /dev/null)
(cd ./src/bundles/ssdeep-*/ && ./configure) || exit 1
fi
if test "$BUILD_PYQTGRAPH" != "0"
then
(cd ./src/bundles && tar -zxvf pyqtgraph-*.tar.gz > /dev/null)
fi
AC_SUBST(BUILD_C_LIBS, $BUILD_C_LIBS)
AC_SUBST(BUILD_BUNDLES, $BUILD_BUNDLES)
AC_SUBST(BUILD_MAGIC, $BUILD_MAGIC)
AC_SUBST(BUILD_FUZZY, $BUILD_FUZZY)
AC_SUBST(BUILD_PYQTGRAPH, $BUILD_PYQTGRAPH)
AC_SUBST(PYTHON, $PYTHON)
AC_SUBST(SONAME, $SONAME)
AC_SUBST(SOEXT, $SOEXT)
AC_SUBST(PLATFORM, $(uname -s))
AC_SUBST(INSTALL_OPTIONS, $INSTALL_OPTIONS)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
The src/bundles directory has been removed, since ssdeep contains a non-free
source file edit_dist.c (debian bug: #764357) and we embed it.
Since bundled deps are not used they are all stripped from the source tarball.
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.44.1.
.TH BINWALK "1" "August 2014" "binwalk v2.0.1" "User Commands"
.SH NAME
binwalk \- tool for searching binary images for embedded files and executable code
.SH SYNOPSIS
.B binwalk
[\fIOPTIONS\fR] [\fIFILE1\fR] [\fIFILE2\fR] [\fIFILE3\fR] ...
.SH DESCRIPTION
Binwalk v2.0.0
Craig Heffner, http://www.binwalk.org
.SS "Signature Scan Options:"
.TP
\fB\-B\fR, \fB\-\-signature\fR
Scan target file(s) for common file signatures
.TP
\fB\-R\fR, \fB\-\-raw=\fR<str>
Scan target file(s) for the specified sequence of bytes
.TP
\fB\-A\fR, \fB\-\-opcodes\fR
Scan target file(s) for common executable opcodes
.TP
\fB\-C\fR, \fB\-\-cast\fR
Cast offsets as a given data type (use \fB\-y\fR to specify the data type / endianness)
.TP
\fB\-m\fR, \fB\-\-magic=\fR<file>
Specify a custom magic file to use
.TP
\fB\-b\fR, \fB\-\-dumb\fR
Disable smart signature keywords
.SS "Extraction Options:"
.TP
\fB\-e\fR, \fB\-\-extract\fR
Automatically extract known file types
.TP
\fB\-D\fR, \fB\-\-dd=\fR<type:ext:cmd>
Extract <type> signatures, give the files an extension of <ext>, and execute <cmd>
.TP
\fB\-M\fR, \fB\-\-matryoshka\fR
Recursively scan extracted files
.TP
\fB\-d\fR, \fB\-\-depth=\fR<int>
Limit matryoshka recursion depth (default: 8 levels deep)
.TP
\fB\-j\fR, \fB\-\-size=\fR<int>
Limit the size of each extracted file
.TP
\fB\-r\fR, \fB\-\-rm\fR
Cleanup extracted / zero\-size files after extraction
.TP
\fB\-z\fR, \fB\-\-carve\fR
Carve data from files, but don't execute extraction utilities
.SS "Entropy Analysis Options:"
.TP
\fB\-E\fR, \fB\-\-entropy\fR
Calculate file entropy
.TP
\fB\-J\fR, \fB\-\-save\fR
Save plot as a PNG
.TP
\fB\-N\fR, \fB\-\-nplot\fR
Do not generate an entropy plot graph
.TP
\fB\-Q\fR, \fB\-\-nlegend\fR
Omit the legend from the entropy plot graph
.SS "Binary Diffing Options:"
.TP
\fB\-W\fR, \fB\-\-hexdump\fR
Perform a hexdump / diff of a file or files
.TP
\fB\-G\fR, \fB\-\-green\fR
Only show lines containing bytes that are the same among all files
.TP
\fB\-i\fR, \fB\-\-red\fR
Only show lines containing bytes that are different among all files
.TP
\fB\-U\fR, \fB\-\-blue\fR
Only show lines containing bytes that are different among some files
.TP
\fB\-w\fR, \fB\-\-terse\fR
Diff all files, but only display a hex dump of the first file
.SS "Fuzzy Hash Options:"
.TP
\fB\-F\fR, \fB\-\-fuzzy\fR
Perform fuzzy hash matching on files/directories
.TP
\fB\-u\fR, \fB\-\-cutoff=\fR<int>
Set the cutoff percentage
.TP
\fB\-S\fR, \fB\-\-strings\fR
Diff strings inside files instead of the entire file
.TP
\fB\-s\fR, \fB\-\-same\fR
Only show files that are the same
.TP
\fB\-p\fR, \fB\-\-diff\fR
Only show files that are different
.TP
\fB\-n\fR, \fB\-\-name\fR
Only compare files whose base names are the same
.TP
\fB\-L\fR, \fB\-\-symlinks\fR
Don't ignore symlinks
.SS "Heuristic Compression Options:"
.TP
\fB\-H\fR, \fB\-\-heuristic\fR
Heuristically classify high entropy data
.TP
\fB\-a\fR, \fB\-\-trigger=\fR<float>
Set the entropy trigger level (0.0 \- 1.0, default: 0.90)
.SS "Raw Compression Options:"
.TP
\fB\-X\fR, \fB\-\-deflate\fR
Scan for raw deflate compression streams
.SS "Binary Visualization Options:"
.TP
\fB\-3\fR, \fB\-\-3D\fR
Generate a 3D binary visualization
.TP
\fB\-2\fR, \fB\-\-2D\fR
Project data points onto 3D cube walls only
.TP
\fB\-Z\fR, \fB\-\-points=\fR<int>
Set the maximum number of plotted data points
.TP
\fB\-V\fR, \fB\-\-grids\fR
Display the x\-y\-z grids in the resulting plot
.SS "General Options:"
.TP
\fB\-l\fR, \fB\-\-length=\fR<int>
Number of bytes to scan
.TP
\fB\-o\fR, \fB\-\-offset=\fR<int>
Start scan at this file offset
.TP
\fB\-K\fR, \fB\-\-block=\fR<int>
Set file block size
.TP
\fB\-g\fR, \fB\-\-swap=\fR<int>
Reverse every n bytes before scanning
.TP
\fB\-I\fR, \fB\-\-invalid\fR
Show results marked as invalid
.TP
\fB\-x\fR, \fB\-\-exclude=\fR<str>
Exclude results that match <str>
.TP
\fB\-y\fR, \fB\-\-include=\fR<str>
Only show results that match <str>
.TP
\fB\-f\fR, \fB\-\-log=\fR<file>
Log results to file
.TP
\fB\-c\fR, \fB\-\-csv\fR
Log results to file in CSV format
.TP
\fB\-t\fR, \fB\-\-term\fR
Format output to fit the terminal window
.TP
\fB\-q\fR, \fB\-\-quiet\fR
Suppress output to stdout
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Enable verbose output
.TP
\fB\-h\fR, \fB\-\-help\fR
Show help output
binwalk (0.4.5-1) kali; urgency=low
binwalk (2.0.1+dfsg-1) unstable; urgency=medium
* Initial release
* Tweak rules/clean target.
* Bump standard version to 3.9.6, no changes required.
* Remove bundled deps, ssdeep has a non-free file inside.
(cfr: #764357).
* Removed bundled depds inside copyright.
* Add a README.source file explaining why we remove bundles
directory.
* Remove libfuzzy2 as b-d, upstream says the feature will be removed
in the next release), avoding an autoremoval.
* d/copyright: add src/bundles to Files-Excluded, thanks Vincent Cheng!
-- Gianfranco Costamagna <costamagnagianfranco@yahoo.it> Wed, 01 Oct 2014 14:44:28 +0200
binwalk (2.0.1-1) unstable; urgency=medium
* Imported Upstream version 2.0.1 (Closes: #727553, Closes: #754317)
- Updated docs location
* Tweak rules file to remove binary files when cleaning.
* debian/control: add X-Python-Version: >= 2.7 and
some new dependencies such as python-pyqtgraph.
* debian/control: add python-opengl python-qt4 and python-qt4-gl
as depdencies, to force the right pyqtgraph render engine.
* patch destdir.patch, add DESTDIR to install path.
* Add dh-autoreconf as build-dependency, and some missing
runtime dependencies, needed to correctly extract the various
kind of supported files.
* Bump standard version to 3.9.5, no changes required.
* Add myself to uploaders.
* debian/{control,watch,copyright} New website (Closes: #734708)
* Update VCS fields to canonical.
* Update man page.
* Update copyright file.
-- Gianfranco Costamagna <costamagnagianfranco@yahoo.it> Mon, 30 Jun 2014 12:24:41 +0200
binwalk (1.0-1) unstable; urgency=low
* [c78b7e93] Imported Upstream version 1.0
- full rewrite in python
* [5eb6c54c] migrate to new python rewrite
* [be1394d6] add python API to /u/s/docs/binwalk
-- Leo Costela <costela@debian.org> Wed, 20 Feb 2013 18:21:37 +0100
binwalk (0.5.0-1) unstable; urgency=low
* [e62042e2] Imported Upstream version 0.5.0
* [c04a9633] add patch to fix DESTDIR handling during install
-- Leo Costela <costela@debian.org> Thu, 17 Jan 2013 17:12:32 +0100
binwalk (0.4.5-1) unstable; urgency=low
* [6b44b155] Imported Upstream version 0.4.5
-- Leo Costela <costela@debian.org> Sat, 08 Sep 2012 13:19:20 +0200
binwalk (0.4.4-1) unstable; urgency=low
* [658252c0] Imported Upstream version 0.4.4
* [30f6357d] debian/copyright: add copyrighted blocks in magic.* files
* [d3607624] drop use_cppflags.patch (merged upstream)
* [f7060555] don't build with --enable-libmagic and drop README.source
-- Leo Costela <costela@debian.org> Mon, 06 Aug 2012 17:56:57 +0200
binwalk (0.4.3+dfsg-1) unstable; urgency=low
* First debian package (closes: #660654)
-- Leo Costela <costela@debian.org> Sun, 15 Jul 2012 15:55:22 +0200
-- dookie <dookie@kali.org> Mon, 05 Nov 2012 11:19:25 -0700
Source: binwalk
Section: unknown
Priority: extra
Maintainer: dookie <dookie@kali.localdomain>
Build-Depends: debhelper (>= 8.0.0)
Standards-Version: 3.9.3
Homepage: <insert the upstream URL, if relevant>
#Vcs-Git: git://git.debian.org/collab-maint/binwalk.git
#Vcs-Browser: http://git.debian.org/?p=collab-maint/binwalk.git;a=summary
Section: devel
Priority: optional
Maintainer: Leo Costela <costela@debian.org>
Uploaders: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
Build-Depends: debhelper (>= 9),
python-all-dev,
dh-autoreconf
Standards-Version: 3.9.6
X-Python-Version: >= 2.7
Homepage: https://github.com/devttys0/binwalk
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/binwalk.git
Vcs-Git: git://anonscm.debian.org/collab-maint/binwalk.git
Package: binwalk
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>
Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends},
python-matplotlib,
python-pyqtgraph,
libmagic1,
python-opengl,
python-qt4,
python-qt4-gl
Recommends: mtd-utils,
ncompress,
bzip2,
arj,
p7zip,
p7zip-full,
openjdk-7-jdk | openjdk-8-jdk
Description: tool for searching binary images for embedded files and executable code
Binwalk is a tool for searching a given binary image for embedded files
and executable code. Specifically, it is designed for identifying files
and code embedded inside of firmware images. Binwalk uses the libmagic
library, so it is compatible with magic signatures created for the Unix
file utility.
.
Binwalk also includes a custom magic signature file which contains
improved signatures for files that are commonly found in firmware images
such as compressed/archived files, firmware headers, Linux kernels,
bootloaders, filesystems, etc.
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: binwalk
Source: <url://example.com>
Upstream-Contact: Craig Heffner <heffnercj@gmail.com>
Files-Excluded: src/bundles
Source: https://github.com/devttys0/binwalk
Files: *
Copyright: <years> <put author's name and email here>
<years> <likewise for another author>
License: <special license>
<Put the license of the package here indented by 1 space>
<This follows the format of Description: lines in control file>
Copyright: 2010-2012, Craig Heffner <heffnercj@gmail.com>
License: Expat
Files: src/C/compress/compress42.c
Copyright: 1984-1992 Spencer W. Thomas, Jim McKie, Steve Davies, Ken Turkowski, James A. Woods, Joe Orost
1984-1992 Dave Mack <csu@alembic.acs.com>
1984-1992 Peter Jannesen, Network Communication Systems <peter@ncs.nl>
License: Expat
Files: src/C/miniz/tinfl.c
Copyright: 2011 Rich Geldreich <richgel99@gmail.com>
License: unlicense
Files: src/binwalk/magic/binwalk
src/magic/compressed
Copyright: 2003 Andrew Tridgell
License: other
You may do whatever you want with this file
Comment: this applies only to a small block inside the files
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell