I am currently doing one of the Honeynet.org challenges, specifically the 13th forensic challenge dealing with steganography. Several PNGs have been provided and participants are to find and extract steganographically hidden messages from said files.

Since all files seemed to have been edited with paint.NET, I suspected that a plugin had been used. Further, most of the available plugins seemed to embed messages by changing the least significant bit of the color values. Therefore, I wrote a small Python script. For every pixel in the image, it collects the least significant bits and concatenates them. If the result can be converted into a number that lies in the printable ascii range, it will be converted and is then added to a string. For each image, this string is printed.

Sadly, this didn't yield any results. I could obviously just try different things, for example parsing the image horizontally instead of vertically. To me, this seems like brute force. I'd much rather like to ask, if somebody here could think of a better way to approach this.

However, please refrain from just posting the solution. I know the challenge is already over but IMHO, one should always try to come up with his own solution first.


The best way to approach this is to look up HOW you could hide something in an image. I'll give you a hint, it has to do with how pixels are defined. Also have a look at these sites:

  • 2
    +1 for answering the question without ruining the fun of the challenge. – Adi Apr 9 '13 at 13:37
  • Do typos usually get corrected by other members? I feel kinda bad now. :) Anyway. Lucas, thanks for your answer. I will make sure to read up on that. Maybe I missed something in my initial research. – user24524 Apr 9 '13 at 23:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy