@@ -9,40 +9,40 @@ The classes, methods and objects in the binwalk modules are documented via pydoc
Binwalk Scripting
=================
Each of binwalk's features (signature scans, entropy analysis, etc) are implemented as separate modules. These modules can be invoked via `binwalk.execute`.
Each of binwalk's features (signature scans, entropy analysis, etc) are implemented as separate modules. These modules can be invoked via `binwalk.scan`.
In fact, the binwalk command line utility can be duplicated nearly entirely with just two lines of code:
```python
importbinwalk
binwalk.execute()
binwalk.scan()
```
The `execute` function accepts both args and kwargs, which correspond 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).
The `scan` function accepts both args and kwargs, which correspond 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:
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 command line switches passed via args must be preceeded by hyphens
* All file names must be passed via args, not kwargs
Accessing Scan Results
======================
`binwalk.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.
`binwalk.scan` 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):
...
...
@@ -66,7 +66,7 @@ binwalk.core.module.Error has the additional guarunteed attribute:
Thus, scan results and errors can be programatically accessed rather easily: