A month ago I had never typed a line of C. Concepts like pointers, structs and treating variables as actual blocks of memory rather than abstract values were alien to me. But I really wanted to get into C; I knew that knowing the language would be vital for this project and there was only so long that I could put off learning it. I needed a target.

Karl had already written a Windows app in C# that would extract files from an image of an SSD. The Flash format had been well documented by the fantastic Clive D W Feather in his invaluable collection of SIBO documentation known as The Psionics Files. So I decided to follow in Karl’s footsteps and write an SSD file extractor in C. Something that would be more portable than his C# app, that I could compile on Linux, *BSD, macOS and Windows. And so, armed with a copy of the second edition of K&R and a few pre-ripped SSD images, my journey began.