Skip to content

Thomas Shipley Posts

Using Ruby to Recover JPEGs from a Forensic Image

This is the second post in a series investigating different programming languages applied to a forensics recovery problem. More detail about the problem can be found in Using Go to Recover JPEGs from a Forensic Image. The code is available on GitHub. Continuing from the last post the next language I looked at was Ruby. As a brief recap, the problem was to recover 16 JPEG files from a forensic image which had been zero wiped before they were taken. About Ruby Ruby is a language that was popularised by the web framework Ruby on Rails. It can be best surmised by the quote…

Using Go to Recover JPEGs from a Forensic Image

CS50 is an introductory course offered by Harvard to students at the college and online via EdX and the Harvard Extension School. It teaches mostly through a series of problems sets which mostly focus on using C to solve them. One of the more interesting problem sets is Problem Set 4: Forensics. The Problem The original problem was solved in C as part of the course and here will be solved using Go. But before looking at any code it is important to give a little context (all code is available on GitHub for those that are interested). Key characteristics of the problem have been outlined below: What we…

Finding Lost Commit History using the GitHub API

It is quite easy to lose commit history in Git. A mistaken forced push is enough to rewrite the past and lose valuable work. Assuming the user in question has not done a git fetch in a while reflog won’t help you either. This happened to me while dealing with a branch that had a misconfigured remote pointing to the mainline. In my stupor, I forced the push. Outdated reflog! Perhaps GitHub has the Answer? All is not lost however you can access all the information you need via the GitHub API. Assuming you have stopped the team making anymore commits to the…