November 23rd 2016

Scalpel on MacOS Sierra

Recently, I’ve been exploring mobile forensics and I wanted to install Scalpel on my new Mac however, I encountered a few difficulties along the way. These steps seemed to resolve my issues so I thought I’d share what I did.

Download Scalpel from-

Unzip the file and navigate to the root of the folder. At this point, I attempted to run ./bootstrap however, this failed.

Part of the issue seems to be that under newer versions of Xcode, (around version 4.4.1 onwards), Apple doesn’t include Autoconf, Automake, and Libtool.

This link shows a manual way of installing these tools, although there’s an easier way….

If you have Macports installed-

sudo port install autoconf
sudo port install automake
sudo port install libtool

Note- choose automake rather than automake17

Following this, the machine should now be ready to install Scalpel-

sudo ./bootstrap
sudo ./configure 
sudo make install
November 11th 2015


Me with Legofy

It’s well known that I love Lego. I also really enjoy working on my photography skills. Recently I was sent a link to a tool which allows me to combine my love of Lego and photography.

The tool in question is called Legofy and it can be downloaded from the Legofy GitHub repository. What does it do? Using a Python script (and the Pillow and click modules), it turns your picture into a 2D Lego image. That’s it.

Neat, huh?

November 11th 2015

The Enigma Machine talk

At the end of September, I was lucky enough to attend a talk by Dr Mark Baldwin in Dundee about the Enigma machine and the role of Bletchley Park during World War II.

The talk was fascinating, providing a full history of the Enigma machine, and explained the inner workings of the machine. Whilst I knew of the machine (and the great Alan Turing), I didn’t know the full details of how the machine generated a code for the day or how the team at Bletchley attempted to crack it. I also hadn’t realised 3 Polish men broke Enigma first in the early 1930’s. They knew the Germans were going to invade Poland so they shared all their intelligence with the British and the French, before destroying all evidence in their country.

I just missed the end of the talk (had to catch the last bus home). The talk has been given all over the UK so, if you get the chance, go and have a listen.

On a side note, I’ve supported the Saving Bletchley Park book by Dr Sue Black on Unbound. It should be a nice companion piece to go along with the information included in the talk.

October 18th 2015

Wireless Printing/AirPrint Server via the Raspberry Pi [updated guide]

NOTICE: This blog post is based on my original post from 2012 which you can find here-

Before going any further, update your Pi:

sudo apt-get update
sudo apt-get update

Next, install the following packages required for printing. I think the avahi-discover package is still required (I installed it anyway)

sudo apt-get install avahi-discover cups cups-pdf python-cups

Grab a cup of tea whilst the packages install. You’ll need to add your username to the CUPS server so you’re able to add printers, view print queues, etc.

sudo usermod -aG lpadmin pi

Check that CUPS has installed correctly and that the service works.

sudo /etc/init.d/cups start

You’ll need to check the Avahi service works too (it finds various devices on the network which are discoverable). Again, I’m not 100% sure this is required with the more up-to-date versions of CUPS. You can try omitting it if you wish.

sudo /etc/init.d/avahi-daemon start

Next, you’ll need to edit the CUPS config file:

sudo nano /etc/cups/cupsd.conf

You’ll need to set-up the port we’re going to be listening on. Comment out the line that reads “Listen localhost:631”. Add in “Port 631”. It should look something like this:

#Listen localhost:631
Port 631

The config file will also need to be edited to control access to the server by adding “Allow @Local” in several places e.g.:

# Restrict access to the server...
Order allow,deny
Allow @Local

You need to include it in these areas of the config file:

# Restrict access to the server...
# Restrict access to the admin pages...
# Restrict access to configuration files...

Save the config file and restart the CUPS service:

sudo /etc/init.d/cups restart

Now, find the IP address of your Pi. It’ll be something like 192.168.1.x


Navigate to the CUPS configuration page by typing the IP address you just retrieved and the port number CUPS uses (so it’ll be an address like 192.168.1.x:631). A security exception message may pop up but that’s ok.

Click on the Admin tab and view the server settings which are towards the right-hand side of the screen. Tick the box that says “share printers connected to this system”.   You’ll be asked for the username and password of the Raspberry Pi.

Plug your printer into one of the USB ports on the Pi. Click “add printer” in the CUPS web interface and it should appear under local printers. You’ll have to fill in details for the printer, such as name and location. You can enter whatever you want in here but the important part is ensuring you tick the “share this printer” box.

Following this, you’ll have to select the appropriate printer driver from a (large) list that appears. Enter print and paper settings too. You’re now ready to click on maintenance > print test page. If everything has gone to plan, the test page will print successfully.

Wireless printing should now work!

In the past, I have included a section regarding AirPrint, with details on how to set that up. AirPrint is now supported by CUPS and it should (and I emphasise “should”) work. Personally, I have tested it on both i0S 9.0.2 and iOS 6.1.6 and had no problems printing.

The section on printing with Windows has been omitted this time around too- I use OS X, iOS or, Raspbian 99% of the time. Sorry.

May 20th 2015

Using multiple Firefox profiles on OS X

If you’re developing Firefox extensions, it may be useful to have multiple profiles: one for every day use containing the extensions/setting you use regularly, and another as a development environment. Separate profiles ensure that if you accidentally break something during development, your usual browser environment will remain the same. I’ve found this to be particularly useful so thought I’d write a post about it. Before I get started, I should point out this post is geared towards OS X users.

First of all, you will need to access Firefox’s profile manager tool. To do this, type the following into the Terminal-

/Applications/ --profilemanager

This will cause the Profile Manager window to appear. If you’re already a Firefox user, your default profile should appear. Click on the Create Profile button to make a new profile. Give it a name (remember this name) and choose the folder in which you wish to store your profile information. For the purpose of this post we’ll call our profile “devProfile”. That’s all there is to creating a new profile however, if you wish to use it as a development environment, you must launch it with Firefox. The next part of this tutorial will show you how to create a second instance of Firefox for your development profile.

Open the Script Editor app. On Yosemite, this can be found in Applications > Utilities > Script Editor. Type in the following-

do shell script "/Applications/ -P devProfile"

When typing in the script, watch the quote- ensure they are regular double quotes, rather than smart quotes. Save the file as an Application. Now we need to Info.plist file. This can be found by right-clicking on the Application you just saved > Show Package Contents > Contents. Find these 2 lines-


Under the true tag, add the following 2 lines-


LSUIElement is a Launch Key in OS X. Launch keys help to launch apps and figure out which apps should open certain document types. According to Apple’s Documentation, LSUIElement Specifies whether the app is an agent app, that is, an app that should not appear in the Dock or Force Quit window.

That’s really all there is to it. You can change the icon on the new Launcher Application you have just created (or leave it as the default script icon, but that’s a bit boring). When clicked, the Application will cause another Firefox icon to appear in the Dock. This instance of Firefox will launch with the development profile you created.

Of course, an alternative way of launching a new instance of Firefox with a development profile is to use the Automator app.