Let's begin with a quick course overview.

After this course overview, we'll begin with an introduction to steganography.

We'll begin by exploring steganography, familiarising ourselves with the terminology used to describe steganographic systems, and comparing and contrasting steganography against encryption.

We'll then move on to working with different forms of covertext. We will explore the core concepts involved when choosing a covertext, which are consistent, regardless of the kind of file you are using to hide your message.

We will then apply these core concepts by embedding messages into images using three separate methods. We will begin with these straightforward examples before progressing to more sophisticated techniques. All exercises are hands-on and include interactive labs, which you can access using your web browser.

We will start by looking at how metadata can store messages, moving on to file stuffing. Two relatively straightforward concepts and practical exercises. Don't worry if you're not a programmer. All code is explained as we work through the exercises, and more verbose guidance is available in a handy course companion book.

We will then progress to LSB. A fairly common method of digital steganography that will begin to introduce the concepts and code needed to manipulate files at the individual bit level.

We will then look at audio files—not music nerds, but audio data—and how they can be used to conceal messages. No offence is intended to any music nerds attending the course. I assure you your awesome music setup has way more cool factor than my collection of software-defined radios and repurposed Gameboy devices! We won't use the old trick of embedding images in the spectral output of a waveform. I don't believe that qualifies as steganography because the audio is so distorted by the inclusion of an image that it is immediately apparent that there is something else in the audio. Our messages will be imperceivable to the listener unless they're an audio nerd, of course :p

We will then look at the video, and how we can use some of its unique data to hide messages. As always, we will build our tools to do this from scratch.

We will then examine how to manipulate text to hide messages in plain sight. As always, we won't use off-the-shelf tooling for this—we'll build our own tools from scratch. In this course, I'll teach you how to fish, not simply tell you where Tesco is. We'll learn the theory behind a steganographic principle and then create code to exploit that principle.

Finally, we will examine how network traffic can carry hidden messages in addition to their payload. We won't cover commonly used techniques like DNS or ICMP tunnelling, which can be easily detected; plenty of tooling already exists for those. Instead, we will introduce a more stealthy technique and implement it in Python.

Next, you'll have a chance to learn a little more about your genial guide through this digital adventure - Your instructor, Scotty.