Programming posts

Python tools for Windows forensics: Extracting a user’s Google Chrome history
 -  Web browsing data can tell an analyst a lot about what happened on a system before they got their hands on it. Here’s how to extract the history of the most popular browser – Google Chrome – with a new Python module for our forensics tool. What is the Chrome...
Raspberry Pi Home Hub: Building the news and weather screen
 -  Last month I introduced my new project for 2019 – building a Raspberry Pi Home Hub with Python. Now it’s time to start coding the modules to generate the information screens, starting with the latest news, weather, and Tube updates. How the news screen will work As per the specifications...
SQL ALTER TABLE: Adding, modifying, and dropping columns in a SQL table
 -  It’s been a while since I’ve written anything new for the series documenting my SQL learning, so this week I’m going to explain the various ways you can add, modify, and drop columns in a table using the ALTER TABLE statement. Many SQL database management systems provide nice graphical interfaces...
Python tools for Windows forensics: Windows Security event log
 -  This month’s new module for the MCAS Windows Forensic Gatherer queries the Windows Security event log to gather information on the user’s logon and logoff activities, helping us to determine exactly when they were using the system. What is the Windows Security event log and how does it help our...
Raspberry Pi Home Hub: Project intro, requirements and objectives
 -  It’s a new year, and it’s time for a new project! Over the course of 2019 I’ll be building a Raspberry Pi Home Hub to display useful information like news, budget updates, energy usage, and more on a screen small enough to sit in the corner of my desk. I...
How to approach your morning routine like a software developer
 -  In the last few months I’ve cut more than 30 minutes from my morning routine, freeing up time to sleep a little longer. When I thought about how my mornings have changed, I realised I’ve naturally followed a process used by software developers. Don’t worry – this isn’t one of...
SQL JOINs: INNER JOIN, LEFT JOIN, RIGHT JOIN and FULL OUTER JOIN
 -  My next post on SQL takes a look at JOINs, which allow you to compare and merge two tables in various ways and determine the relationship between two sets of data. Here’s what INNER, LEFT, RIGHT, and FULL OUTER JOINs are and how to use them. Having gotten to grips...
Python tools for Windows forensics: Deleted files in the Recycle Bin
 -  In a previous post I began building a Python tool that gathers Windows forensic artefacts and parses them into a timeline. In that post I wrote a function that gathers Windows Prefetch application data – this time, let’s take a look at the Recycle Bin. What is the Recycle Bin...
Python tools for Windows forensics: Parsing Prefetch program data
 -  Bit by bit, I’m going to build a Python tool to scrape a Windows system disk image for common forensic artefacts and build a CSV timeline from the evidence gathered. In this first post, I’ll parse and add the data stored in Windows Prefetch files. On my recent SANS course...
Basic SQL queries: SELECT, FROM, WHERE and other operators
 -  I recently dipped my toe into the world of SQL for the first time and got my head around the basic operators and statements. Here’s a summary of how to construct basic queries. I’d had brushes with SQL before. Even when I was a journalist, I would do the occasional...

Thinking about

Website v2.0
I've given my website its first major update since 2020, keeping the same general aesthetic but placing a greater focus on content. Now to come up with some blog post ideas...

Interests

  • Cyber security
  • Tech
  • Python
  • PowerShell
  • JavaScript
  • F1
  • Reading
  • Writing
  • Psychology
  • Philosophy
  • Exercise
  • Running
  • Gaming
  • Football
  • Music
  • Guitar