Extracts files and information from Parrot firmware files.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitattributes
.gitignore
README.md
logger.py
plf.bt
vulture.py

README.md

#Vulture

Vulture provides information about Parrot firmware files. It can list and extract files from a given firmware, along with other filesystem information such a partitionning and bootstrapping.

##Usage

./vulture -r <firmware> -o <output_dir> [-v] [-t]

optional arguments:
  -h, --help            show this help message and exit

I/O Options:
  Input and output data options.

  -r INPUT, --read INPUT
                        Parrot firmware file to read.
  -o OUTPUT, --output OUTPUT
                        Output directory into which files will be extracted
                        to.
  -v, --verbose			Display additional information about decompression
                        process.
  -t, --test            Do not extract files. Only list them and output JSON
						data about its contents.

Once executed, Vulture will analyze the given Parrot firmware and extract entries out of it. All the information found within the file will be written in JSON format in a file called "meta.json" in the given output directory. Unless the -t argument is specified, all files within the firmware will be extracted to the output directory specified. Additionally, files in the bootloader entry and installation entry will be saved as "boot.bin" and "install.plf" in the root of the specified output directory.

##Examples

The example below will extract files from the 'nap_update.plf' file and extract all internal files to '/tmp/sky'.

.\vulture.py -r /home/resyst/targets/parrot/skycontroller/nap_update.plf -o /tmp/sky

##Notes

As of January 2017, Vulture was tested only on the Parrot SkyController 1.7.4 and Bebop2 4.0.3 firmware file. There is no guarantee that it will successfully extract contents from other firmware at this moment, but I'm confident it should do much of the work.

CRC checks are not conducted at this moment, as it is unclear how each CRC value is calculated. Additional work is being conducted on this. Feel free to assist if yo have more information.

Vulture was tested with the following firmwares:

##Citation

This software is free to use and modify as needed in your project. If you do, please cite usage of this application in your code/papers and linking to my GitHub. Thank you!

@Misc{racicot17,
author =   {Jonathan Racicot},
title =    {Reversing the Parrot SkyController Firmware},
howpublished = {\url{http://wp.me/p852om-8Q}},
year = {2017}
}

##Further Reading

Racicot, J., Reversing the Parrot SkyController Firmware, Infected Packets, http://wp.me/p852om-8Q (accessed on 2017-01-09)