I am very excited to announce that Hindsight v1.5.0 is here!
Graphical User Interface
The core Hindsight functionality continues to see incremental improvements, along with quite a few internal changes to support new features that will appear in subsequent releases. However, the major change is that there is now a graphic interface available for Hindsight, thanks in large part to Dave Holland (@).
The interface is basically a wrapper for the command line Hindsight script; if you have used it previously, the output in the black screen on the left side of the GUI should look familiar. To use the graphical version of Hindsight (hindsightGUI.exe), launch it and use the ‘Browse’ button in the top right to locate the Chrome profile you’d like to examine. The Output File and Log File sections are optional, just like in the command line version. If you neglect to specify a value the defaults are used. If you would like to change the output format to JSON or SQLite, rather than the default XLSX, click the ‘Browse’ button for ‘Output File Name’ and change the format in the dropdown box.
Click ‘Process’ in the bottom right, and wait for Hindsight to analyze the Chrome data. Once it has finished running, you can view the same output as from the command line version, which has details including the detected Chrome version, counts for different artifacts, and a summary of what plugins ran.
Ease-of-use vs. Flexibility
One big advantage to the graphical version is that is it portable. Everything is contained within a single executable, making it much easier to use. All the required Python modules and the current Hindsight plugins are bundled inside it, so you won’t need to install any dependencies to get it working. However, the GUI version sacrifices flexibility for ease-of-use. You cannot edit the existing Hindsight plugins or add your own custom ones to it, like you can with command line version. It also is lacking a few features: decryption on Mac (which is kind of a moot point, since this is a Windows application), the different output overwrite modes (mainly used for batch scripting), and the ability to enter any timezone/place by name. I hope to add some of these features in on future releases.
However, if you would like to use some of the advanced functionality, there also is a PyInstaller-packaged command line version of Hindsight (hindsight.exe) in this release. The command line version has all the Python dependencies bundled in it, but it will look for a ‘plugins’ folder in the same directory as the executable. I think this is a good balance of ease-of-use vs. flexibility, as you avoid having to hassle with Python and dependencies, but you still have access to the plugins. The command line version is handy for use in scripts and having the plugins folder available allows users to add, remove, or edit Hindsight plugins. Of course, there also is the original Python script (hindsight.py) that these other versions are built off of. The Python version affords the most flexibility, as it can run on multiple operating systems (once dependencies are installed) and can be modified or incorporated into other Python projects.
I’ve started using GitHub’s releases with this version, which hopefully makes getting just the files you want a little easier. View the Hindsight v1.5.0 release on GitHub to download the graphical interface (hindsightGUI.exe), packaged command line version (hindsight.exe), the Python script (hindsight.py), or the complete source, which includes documentation and PyInstaller .spec files if you want to package it yourself.