BlackBerry Thumbnail Parser
Python
Latest commit 3fcdc15 Oct 17, 2011 Sheran Gunasekera Restructured try/except block

README

bbt.py v0.7b - Parser for BlackBerry ThumbsxxxXxxx.key file

bbt will read a BlackBerry "key" thumbnail file and print out the record id of each thumbnail and corresponding offset of the record found inside the "dat" file.  bbt
will also read the older BBThumbs.dat file found on devices pre OS5

Usage: bbt.py [options]
  -h, --help: This cruft
  -k, --key <bbthumbs key file>: Process post OS5 thumbs.key file (requires thumbs.dat file in same directory)
  -b, --bbthumbs <old bbthumbs file>: Process pre OS5 BBThumbs.dat file
  -x, --extract: Extracts the thumbnails into directory specified by -o
  -o, --output <output directory>: Directory to extract thumbs to (used only with -x)
  -f, --offset: Show record ID and Offset of each thumbnail (BBThumbs.dat has no record ID)

Example 1: python bbt.py -k thumbs76x76.key -x -o output

The above example processes the files thumbs76x76.key and thumbs76x76.dat in the current directory, creates a directory named "output" 
and extracts all thumbnails into this directory.

Example 2: python bbt.py -b BBThumbs.dat -x -o output

The above example processes the file BBThumbs.dat in the current directory, creates a directory named "output" 
and extracts all thumbnails into this directory.

Known Issues:

* Currently minimal error checking

Change Log:

+ 0.7b - Fixed issue with duplicate record IDs and records having invalid offsets. (Many thanks to Shafik Punja and John Thompson for finding this bug)
+ 0.6b - Added support for displaying record ID and offset. 
       - Fixed issue with how the output path is created
       - Added feature to generate sparse HTML report. Code is fugly, but still works. The HTML report will be generated to the output 
         directory when you select the -x option. The report is called bbt.html
+ 0.5b - Fixed an issue with how timestamps are handled (thanks to Nanni Bassetti for pointing this out)

License GPLv2:

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.